データベースに接続されたアプリケーションを使用しています。
BDEコンポーネントとデータベースを使用して接続されているのはMySQLです。
現在、insertステートメントの実行中に重複エントリがあるかどうかを確認するための検証を行っています。
以下は、主キー属性のエントリが重複していないかどうかを確認するためのコードです。
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
メッセージの比較を行わずにこれらのエラーを区別できる方法はありますか?
前もって感謝します