こんにちは。
Delphi7を使用しています。
データベースへのInsertの際、
主キー違反で帰ってきたときにかぎり、'主キーが重複しています'
とメッセージダイアログを出したいのですが...
except on エラー名 で、エラー名に該当するものがどうしても!見つかりません。
小さな質問で大変恐縮なのですが、ご教示いただけませんか?
小さな質問だからと言って出す情報も最小限では誰も分かりません。
せめて何のデータベースを使用しているか、
それに接続する方法は何かくらいは書きましょう。
返答が大変遅くなりました。よろしければご回答くだされば幸いです。
ODBC(Oracle8i)への接続をしています。
また、このようなデータベースへの接続エラーで発生する例外が、
どこかのHP上でまとめられていれば、是非ご教示いただきたいです。
よろしくお願い致します。
Delphi7なのでBDE経由での接続だと思いますが
except
on E: EDBEngineError do
begin
if E.Errors[0].ErrorCode = DBIERR_KEYVIOL then
ShowMessage('主キーが重複しています')
else
ShowMessage('何らかのDBエラー '+E.Message);
end;
end;
でどうでしょうか?
これでダメなら
except
on E: Exception do
begin
ShowMessage(E.Message);
end;
end;
として、主キー違反の時にそれを特定できる文字列を探して
except
on E: Exception do
begin
if Pos('特定の文字列', E.Message) > 0 then
ShowMessage('主キーが重複しています')
else
ShowMessage('何らかのDBエラー '+E.Message);
end;
end;
って方法もあります。