我有一个连接数据库的应用程序。
使用 BDE 组件和数据库连接的是 MySQL。
现在我正在做一些验证,以检查执行插入语句时是否重复条目。
以下是检查主键属性是否重复条目的代码。
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
谁能告诉我有什么方法可以在不进行消息比较的情况下区分这些错误。
提前致谢