如何在DELPHI应用程序中截获sql server 的出错信息(error message),并自动处理,而不显示错误?(100分)

  • 主题发起人 主题发起人 jasonfu
  • 开始时间 开始时间
J

jasonfu

Unregistered / Unconfirmed
GUEST, unregistred user!

如何在DELPHI应用程序中截获sql server 的出错信息(error message),并自动处理,而不显示错误?
TRY
EXCEPT
...

END;
 
你不已经写出来了吗?
 
按你所写的,在调试时还有错误提示,在可执行程序中就没有了出错提示了。

单独执行可执行程序试一下就知道了。

 
TRY
EXCEPT
...
//你只要不在这里显示错误信息,那么错误信息就不会出来。
END;
 
但我不知道到底出了什么错!
即如何获得sql 的错误message./messageid
 
如果是违反唯一性的,则:
在tquery或ttable的OnupdateError写:
if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].Errorcode=9729 then
begin
messagedlg('编号重复,请重新输入!',mtinformation,[mbyes],0);

abort;
end;
 
在query1中
insert into table 后
execsql;
如果是数据库级的错误,如duplicate key,就会返回错误代码,
就是不知道如何获取该错误代码,而类似onupdateerror的事件是不处理这种错误的。
 
>>但我不知道到底出了什么错!
>>即如何获得sql 的错误message./messageid

调试时 delphi 会有一个出错窗口,里面不是就有出错信息,
将其 copy 下来看看行不行。
 

try

except on e : exception do
s := e.message
end;
e.message中有详细的错误记录,你捕获它就行了。
 
Application.OnException
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部