连接正忙于另一个命令的结果

时间:2018-06-22 04:08:04

标签: sql-server delphi ado.net ado delphi-xe

我正在使用通过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查询。

有帮助吗?我的代码有什么问题或改进吗?谢谢。

0 个答案:

没有答案