小编Moh*_*mad的帖子

Delphi中的reintroduce和override指令的含义是什么?

overridereintroduce指令有什么区别?什么时候不应该inherited在重写方法中使用关键字?

delphi overriding

27
推荐指数
3
解决办法
1万
查看次数

从另一台服务器获取@@ Identity(链接服务器)

我有一个链接服务器,我想在链接服务器上的表中添加一条记录,是否可以从具有链接服务器的另一台服务器获取@@ identity?(SQL Server 2005)

sql-server identity linked-list

6
推荐指数
1
解决办法
8655
查看次数

在delphi中终止一个线程

如何以正确的方式终止线程?线程完成后,它仍然在内存中.我正在使用Delphi 2010(Update 5).

delphi multithreading terminate

6
推荐指数
1
解决办法
8354
查看次数

使用Delphi XE2中的TidTCPClient和TidTCPServer发送和接收流

在Delphi XE2中,我有一个具有以下结构的记录类型:

  TMachinInfoRec = record
    IPStr: string[15];
    Username: string[50];
    Computername: string[100];
    SentTime: TDateTime;
    HasCommand: integer; 
    ClientCommands: array[0..9] of TMachineCommand;
  end;
Run Code Online (Sandbox Code Playgroud)

我在客户端和TMemoryStream变量上定义了一个变量,并使用TidTCPClient组件发送流:

var
  MIRec: TMachinInfoRec;
  msRecInfo: TMemoryStream;

begin
  MIRec.IPStr = '192.168.100.101';
  MIRec.Username := 'user-a';
  MIRec.Computername := 'Computer-a';
  MIRec.SentTime := Now();

  idTCPClient.Host := '192.168.100.138';
  idTCPClient.Port := 6000;

  idTCPClient.Connect;

  msRecInfo := TMemoryStream.Create;
  msRecInfo.Write(msRecInfo, SizeOf(Client));

  msRecInfo.Position := 0;
  idTCPClient.IOHandler.Write(msRecInfo);
end;
Run Code Online (Sandbox Code Playgroud)

并使用TidTCPServer获取服务器端的信息:

procedure TFrmMainServer.TCPServerExecute(AContext: TIdContext);
var
  MIRec: TMachinInfoRec;
  msRecInfo: TMemoryStream;
begin
  msRecInfo:= TMemoryStream.Create;

  AContext.Connection.IOHandler.ReadStream(msRecInfo, SizeOf(MIRec));

  msRecInfo.Read(msRecInfo, sizeOf(MIRec));

  ShowMessage(MIRec.IPStr);
  ShowMessage(MIRec.Computername)
end;
Run Code Online (Sandbox Code Playgroud)

但是以这种格式显示的字符串:

MZ?......... .. YY,....... @ …

delphi indy delphi-xe2

6
推荐指数
1
解决办法
1万
查看次数

检测SQL Server中客户端的断开连接

当切断与SQL Server(来自客户端)的客户端连接时,如何在SQL Server(2008或2012)中检测到此断开连接?

我可以用服务器触发器解决这个问题吗?

sql-server client triggers

5
推荐指数
1
解决办法
1586
查看次数

Delphi和XML CDATA

如何使用Delphi从XML文件中提取CData?这是我的XML文件:

<?xml version="1.0"?>
<root>
  <PartoBeetaXMLVersion value="0.1">
    <VersionID value="111"/>
    <Developer value="1Dev"/>
    <CDate value="10/12/2011"/>
    <Script>
      <![CDATA[
      alter table tblPersonels
      add UID int null, 
          RID int null
    ]]>
    </Script>
  </PartoBeetaXMLVersion>
</root>
Run Code Online (Sandbox Code Playgroud)

xml delphi cdata

4
推荐指数
1
解决办法
2849
查看次数

Where子句中Int和Varchar(SQL Server)之间的区别?

AID = 10或者AID = '10'当AID是INTSQL Server中的类型时有什么区别?

Select *
from ATable
where AID = '10'
Run Code Online (Sandbox Code Playgroud)

Select *
from ATable
where AID = 10
Run Code Online (Sandbox Code Playgroud)

sql-server types where-clause

3
推荐指数
1
解决办法
1600
查看次数

Constructor和Class函数之间有什么区别

在Delphi中,构造函数和类函数之间用于实例化对象有什么区别?

TPersonnel = class(TPersistent)
public
  class function Create: TPersonnel; overload;
  constructor Create(APersonelID: integer); overload;
end;

class function TPersonnel.Create: TPersonnel;
begin
  result := inherited Create;
end;

constructor TPersonnel.Create(APersonelID: integer);
begin
  inherited Create;
end;
Run Code Online (Sandbox Code Playgroud)

我知道类函数Create会隐藏默认构造函数.

无论构造函数Create参数

有理由我应该使用构造函数吗?

delphi

2
推荐指数
1
解决办法
677
查看次数

阻止运行主窗体OnActivate事件

我有一个简单的程序(在delphi 7中),它的主要形式是一个按钮.当我单击主窗体上的按钮时,我将打开第二个窗体.当我关闭第二个表单时,如何阻止运行主表单OnActivate事件?(此代码除外:MainForm.OnActivate = nil)

谢谢

forms delphi events

1
推荐指数
1
解决办法
966
查看次数

Delphi 7和UTF-8 base64解码

在Delphi 7中,我有一个用Base64编码的宽字符串(我从Web服务收到的具有WideString结果的字符串):

PD94bWwgdmVyc2lvbj0iMS4wIj8 + DQo8c3RyaW5nPtiq2LPYqjwvc3RyaW5nPg ==

当我对其进行解码时,结果不是UTF-8:

<?xml version="1.0"?>
<string>???³??</string>
Run Code Online (Sandbox Code Playgroud)

但是当我通过base64decode.org对其进行解码时,结果为true:

<?xml version="1.0"?>
<string>???</string>
Run Code Online (Sandbox Code Playgroud)

我已将EncdDecd单元用于DecodeString函数。

delphi delphi-7

1
推荐指数
1
解决办法
6726
查看次数

使用 TWriter.WriteString 节省了两个额外的字节

在 Delphi 10.4.2 中,当我使用 TWriter.WriteString 时,会保存两个额外的字节:

var
  FileStream: TFileStream;
  Writer: TWriter;
begin
    FileStream := TFileStream.Create('stream.txt', fmCreate or fmOpenWrite or fmShareDenyNone);
    Writer := TWriter.Create(FileStream, $FF);
    try
      Writer.WriteString('2');
    finally
      Writer.Free;
      FileStream.free;
    end
end;
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这两个字节是什么?我怎么能忽略它们?

delphi

1
推荐指数
1
解决办法
121
查看次数

ado和bde之间的差异

ado和bde之间的区别是什么?

delphi ado bde

0
推荐指数
1
解决办法
2483
查看次数

在 Delphi 中通过 TADOCommand 插入数据

我有一个包含四个字段的表,其中一个字段是主键。当我运行以下命令时:

var
  iAffectedRows: integer;
begin
  ADOCommand1.CommandText := 'insert into table_1(Field_1, Field_2, Field_3)   values(:A_Field_1, :A_Field_2, :A_Field_3)';      

  ADOCommand1.Parameters.FindParam('A_Field_1').Value := '100';
  ADOCommand1.Parameters.FindParam('A_Field_2').Value := '200';
  ADOCommand1.Parameters.FindParam('A_Field_3').Value := '300';

  ADOCommand1.Execute(iAffectedRows);
end;
Run Code Online (Sandbox Code Playgroud)

结果是:

在此处输入图片说明

所述Field_1值是0。

(这个结果是由于运行命令:ADOCommand1.Execute(iAffectedRows)

但是有了这个命令,一切都是正确的:ADOCommand1.Execute()

这个问题有解决方案吗?

delphi ado delphi-xe5

0
推荐指数
1
解决办法
1616
查看次数