私はデータベースに接続されたアプリケーションを持っています。
BDEコンポーネントを使用して接続し、データベースはMySQLです。Delphiが例外の特定の原因を見つける
今、私は、挿入ステートメントが実行されている間に重複したエントリがあるかどうかを確認するためにいくつかのバリデーションを行っています。
以下は、主キー属性のエントリが重複しているかどうかを確認するコードです。誰も私を伝えることができ
var
error :string;
cmpres:integer;
begin
...
/* all my data queries */
try
Query1.ExecSQL;
Except
on E: Exception do
/*check if its a Duplicate entry or other exception*/
begin
error := E.Message;
error := copy(error,length(error)-16,length(error)-2);
cmpres :=CompareStr(LowerCase(error),'for key '+#39+'primary'+#39) ;
if cmpres = 0 then
MessageDlg('Entry already exist',mtError,[mbok],0)
else
MessageDlg('Invalid Data Entries',mtError,[mbok],0);
exit;
end;
end;
end;
データベース例外が広くEDatabaseError
の内側に入れて、私はメッセージの比較を行うことなく、これらのエラーを区別することができますどのような方法があります。
ありがとうございます。
デバッガはあなたに何を伝えますか? –
@DavidHeffernanデバッガが私にこのエラーメッセージを表示しています 'エラー'キー違反 '#$ D#$ A' [MySQL 5.1.5] [mysqld-5.5.11] PRIMARY '' '' ' – Shirish11
いいえ、** class **はエラーで、そのクラスが提供するプロパティは何ですか。 –