当返回某个结果集后发生异常时,TADOConnection不想引发异常。例如:
ADOConnection1.Execute('SET NOCOUNT ON; SELECT 0; THROW 50000, ''Custom error'', 1;');
上面的代码不会抛出,因为有一个由SELECT 0;
引起的结果集
在这种情况下如何强制TADOConnection引发异常?我无法避免返回结果集。我尝试过的事情:
OnInfoMessage
事件,但从未触发。我找到了针对此问题的文章,但涉及到.NET:
答案 0 :(得分:2)
我可以像这样使用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;