ストアドプロシジャのエラーを検出する (ADO)

 Delphiの ADO Express を使ってストアドプロシジャを実行し、エラーが発生したかどうかを確認する方法です。ADOでストアドプロシジャを使うと、ストアド内でエラーが起きても Delphi 側で例外が発生しません。ですのでプログラムでエラーがあったかどうかを ADOConnection の Errors を使ってチェックする必要があります。

■ エラー検出の例
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  //ストアドプロシジャのパラメータ設定
  ADOStoredProc1.Parameters.ParamByName('@IN年月').Value  :=  200309; 
  //ストアドプロシジャの実行
  ADOStoredProc1.ExecProc;
  if  (ADOConnection1.Errors.Count > 0) then  begin
    //エラーがあった場合はエラー内容をMemoに書き出す
    for i :=  0 to  ADOConnection1.Errors.Count - 1 do  begin
      Memo1.Lines.Add(IntToStr(i));
      Memo1.Lines.Add(ADOConnection1.Errors[i].Source);
      Memo1.Lines.Add(ADOConnection1.Errors[i].Description);
      Memo1.Lines.Add(ADOConnection1.Errors[i].SQLState);
    end;
  end;
end;