オプション1)ADO接続エラーコレクションを使用します。
try
....
....
....
ADOQuery1.Open;//Execute your sql statement
except
LastErrorIndex :=ADOConnection1.Errors.Count-1;
SourceError :=ADOConnection1.Errors.Item[LastErrorIndex].Source;
NumberError :=ADOConnection1.Errors.Item[LastErrorIndex].Number;
DescriptionError:=ADOConnection1.Errors.Item[LastErrorIndex].Description;
SQLStateError :=ADOConnection1.Errors.Item[LastErrorIndex].SQLState;
NativeError :=ADOConnection1.Errors.Item[LastErrorIndex].NativeError;
end;
オプション2)@@ error変数を使用して、SQLサーバーから最後のエラーを取得できます。
select @@error
SQL Serverでエラーが発生した場合、取得できるのは@@ERRORグローバル変数を使用したエラー番号だけです。エラーの説明を取得するための@@ERROR_MESSAGEグローバル変数はありません。完全なエラーメッセージについては、エラー番号を使用してmaster..sysmessagesテーブルにクエリを実行できます。
SELECT Description FROM master..sysmessages WHERE error= @@ERROR AND msglangid=1033
ただし、これらのメッセージのほとんどにはプレースホルダー(%s、%ldなど)があり、このストアドプロシージャを使用することもできます。
詳細については、この記事「 SQL Serverでのエラー処理–背景」をお読みください。
さよなら。