SQL Explorerでテーブル構成と一致しないINSERTを実行したとき
【挿入エラー:列名または列数の値がテーブルの定義と不一致です】
とメッセージが表示されます。
INSERTに限らずADOで起きたエラー全てのエラー情報を取得するにはどうしたらいいでしょうか?
知ってる方いらっしゃいましたら教えてください。
開発ツール=Delphi6
コンポーネント=TADOQuery
です。
TADOQueryは、使ったことがありませんが、
>ADOで起きたエラー全てのエラー情報
とは、
try...except 文で取得できるエラーメッセージや
TADOQueryのOn?????Errorイベントで取得できる情報
のほかに?ってことですか?
参考になりますかどうか?翔泳社の「ADO集中講座」のなかに<ADOとエラー>の章があり、ErrorValueEnum列挙型に定義されている、とありました。どうすればそれがみえるのかは、調べてはいません。
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.Add('SELeeCT * ');
通常は、'SELECT 項目名 FROM テーブル名' では?
FROM句っていらないの?
on E: EADOError do
を
on E: Exception do
にしたらどうなりますか?
OnErrorを使用しやないというか
ADOQueryじゃなくTADOConnectionからエラーを取得できました。
ADOConnection1.Errors.Item[ADOConnection1.Errors.Count-1].Description
こんな感じです。
みなさん色々コメントありがとうございました。
ツイート | ![]() |