ADOのエラー情報を取得するには?

解決


ECO  2007-05-18 02:25:17  No: 26152

SQL Explorerでテーブル構成と一致しないINSERTを実行したとき
【挿入エラー:列名または列数の値がテーブルの定義と不一致です】
とメッセージが表示されます。
INSERTに限らずADOで起きたエラー全てのエラー情報を取得するにはどうしたらいいでしょうか?
知ってる方いらっしゃいましたら教えてください。
開発ツール=Delphi6
コンポーネント=TADOQuery
です。


igy  2007-05-18 18:31:52  No: 26153

TADOQueryは、使ったことがありませんが、

>ADOで起きたエラー全てのエラー情報

とは、
try...except 文で取得できるエラーメッセージや
TADOQueryのOn?????Errorイベントで取得できる情報
のほかに?ってことですか?


まごたん  2007-05-24 01:17:58  No: 26154

参考になりますかどうか?翔泳社の「ADO集中講座」のなかに<ADOとエラー>の章があり、ErrorValueEnum列挙型に定義されている、とありました。どうすればそれがみえるのかは、調べてはいません。


ECO  2007-05-24 21:22:20  No: 26155

with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELeeCT * ');
    try
      Open;
    except
      on E: EADOError do
      begin
        ShowMessage(E.Message);
      end
      else
      begin
        ShowMessage('取得できません。');
      end;
    end;
  end;

これで間違っていないと思うのですが、
elseに入ってしまいます。。。
誰か助けてください。


SQL  2007-05-24 21:38:33  No: 26156

> SQL.Add('SELeeCT * ');

通常は、'SELECT 項目名 FROM テーブル名' では?
FROM句っていらないの?


igy  2007-05-24 21:59:29  No: 26157

on E: EADOError do

on E: Exception do
にしたらどうなりますか?


ECO  2007-05-24 22:46:29  No: 26158

OnErrorを使用しやないというか
ADOQueryじゃなくTADOConnectionからエラーを取得できました。

ADOConnection1.Errors.Item[ADOConnection1.Errors.Count-1].Description

こんな感じです。
みなさん色々コメントありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加