我遇到了Server 2012 R2 Foundation和我编写的应用程序(Delphi 7 Pro)的问题。
有一项服务通过TCP接收数据,对MS SQL服务器数据库进行检查,并通过TCP返回数据。
此服务目前在所有Server 2008上的多个其他服务器上运行。
从DB
读取数据的过程的一部分qry := TADOQuery.Create(nil);
try
qry.ConnectionString := msConnectionString;
LogEntry('Set SQL');
qry.SQL.Text := 'Select * ' +
'from Users ' +
'where UserID = ' + QuotedStr(sUserID) +
' and Password = ' + QuotedStr(sPassword);
LogEntry('Open Qry');
qry.Open;
LogEntry('Open Qry - Done');
if qry.RecordCount = 0 then begin
sUserName := '';
iStatus := 0;
end else begin
LogEntry('Set User Variables');
sUserName := qry.FieldByName('UserName').AsString;
iStatus := qry.FieldByName('Status').AsInteger;
end;
finally
FreeAndNil(qry);
end;
* LogEntry是一个客户程序,它写入带有时间戳的日志文件。
奇怪的是,在上面的代码中," qry.SQL.Text"是需要很长时间的部分,需要2秒钟。记录下面的提取物:
[15:48:45] Create Qry
[15:48:45] Set Sql
[15:48:47] Open Qry
[15:48:47] Open Qry Done
简单的属性赋值可能导致这么长的原因。
如果我将代码移动到Simple project1应用程序,结果是即时的。