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

解決


ECO  2007-05-17 17:25:17  No: 26152  IP: 192.*.*.*

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

編集 削除
igy  2007-05-18 09:31:52  No: 26153  IP: 192.*.*.*

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

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

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

編集 削除
まごたん  2007-05-23 16:17:58  No: 26154  IP: 192.*.*.*

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

編集 削除
ECO  2007-05-24 12:22:20  No: 26155  IP: 192.*.*.*

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 12:38:33  No: 26156  IP: 192.*.*.*

> SQL.Add('SELeeCT * ');

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

編集 削除
igy  2007-05-24 12:59:29  No: 26157  IP: 192.*.*.*

on E: EADOError do

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

編集 削除
ECO  2007-05-24 13:46:29  No: 26158  IP: 192.*.*.*

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

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

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

編集 削除