override和reintroduce指令有什么区别?什么时候不应该inherited在重写方法中使用关键字?
我有一个链接服务器,我想在链接服务器上的表中添加一条记录,是否可以从具有链接服务器的另一台服务器获取@@ identity?(SQL Server 2005)
如何以正确的方式终止线程?线程完成后,它仍然在内存中.我正在使用Delphi 2010(Update 5).
在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,....... @ …
当切断与SQL Server(来自客户端)的客户端连接时,如何在SQL Server(2008或2012)中检测到此断开连接?
我可以用服务器触发器解决这个问题吗?
如何使用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) 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) 在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 7中),它的主要形式是一个按钮.当我单击主窗体上的按钮时,我将打开第二个窗体.当我关闭第二个表单时,如何阻止运行主表单OnActivate事件?(此代码除外:MainForm.OnActivate = nil)
谢谢
在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 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)
这两个字节是什么?我怎么能忽略它们?
我有一个包含四个字段的表,其中一个字段是主键。当我运行以下命令时:
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 ×10
sql-server ×3
ado ×2
bde ×1
cdata ×1
client ×1
delphi-7 ×1
delphi-xe2 ×1
delphi-xe5 ×1
events ×1
forms ×1
identity ×1
indy ×1
linked-list ×1
overriding ×1
terminate ×1
triggers ×1
types ×1
where-clause ×1
xml ×1