我正在使用通过ADO连接的Delphi XE在SQL Server 2014上执行查询。请参见下面的SQL Server信息:
---------------------- SQL Server 2014 INFO----------------------
Microsoft SQL Server Management Studio - 12.0.4522.0
Microsoft Analysis Services Client Tools - 12.0.4522.0
Microsoft Data Access Components (MDAC) - 10.0.17134.1
Microsoft MSXML - 3.0 6.0
Microsoft Internet Explorer - 9.11.17134.0
Microsoft .NET Framework - 4.0.30319.42000
Operating System - 6.3.17134
---------------------- SQL Server 2014 INFO----------------------
这是我执行ADOQuery的方式
function TdataInterface.Query(SQLStr: String): TAdoQuery;
begin
Result := TADOQuery.Create(Self);
Result.Prepared := True;
try
Result.Connection := <-- My AdoConnection Here -->;
Result.SQL.Text := SQLStr;
if SQLStr <> '' then
Result.Open;
except
On E:Exception do
begin
ErrorLog('EException : ' + E.Message);
{$IFDEF DEBUG}
ErrorLog('Query : [' + SQLStr + ']');
{$ENDIF}
Connected := False;
end;
end;
end;
(*
Calling my ADOQuery function
*)
function THouseStark.AryasKill : Integer;
var
ADOKill : TADOQuery;
begin
ADOKill := TdataInterface.Query('SELECT COUNT(*) KillCount FROM got.AryasKill');
try
Result := ADOKill.FieldByName('KillCount').AsInteger
finally
FreeAndNil(ADOKill);
end;
end;
我的代码运行正常,但是在某些情况下我遇到了此异常
EException:连接正忙于另一个命令的结果
每次发生此异常时,它都不能使用任何ADO查询。
有帮助吗?我的代码有什么问题或改进吗?谢谢。