在返回某些结果集后发生异常时,TADOConnection不希望抛出异常。例如:
ADOConnection1.Execute('SET NOCOUNT ON; SELECT 0; THROW 50000, ''Custom error'', 1;');
上面的代码不会抛出因为SELECT 0;
导致的结果集
在这种情况下如何强制TADOConnection抛出异常?我无法避免返回结果集。我试过的事情:
OnInfoMessage
事件,但它永远不会被解雇。我发现了一篇针对此问题的文章,但它涉及到.NET:
我能够使用像这样的Custom Error
来显示TADOQuery
:
var
t : integer;
begin
ADOQuery1.SQL.Text := 'SET NOCOUNT ON; SELECT 0; THROW 50000, ''Custom error'', 1;';
ADOQuery1.Open;
t := 0;
ADOQuery1.NextRecordset(t); // exception thrown here
end;