gpt4 book ai didi

mysql - Delphi查找异常的具体原因

转载 作者:行者123 更新时间:2023-11-29 14:29:47 25 4
gpt4 key购买 nike

我有一个数据库连接的应用程序。
使用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

谁能告诉我有什么方法可以在不进行消息比较的情况下区分这些错误。
提前致谢

最佳答案

如果您使用的是 BDE,则异常应该是 EDBEngineError,而不是 EDatabaseError。你可以这样做:

try
Query1.ExecSQL;
except
on E: EDBEngineError do
begin
for i := 0 to E.ErrorCount - 1 do
begin
err := E.Errors[i];
case err.ErrorCode of
... stuff ...
end;
end
end;
end

关于mysql - Delphi查找异常的具体原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10229186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com