[菜鸟问题]怎样截获数据库的错误信息?

NetCobra 2002-06-24 08:55:06
我用ADOConnection连接ODBC数据源,连接语句如下:
try
ADOConnection.Connected := False;
ADOConnection.ConnectionString := ……;// 设置连接字符串
ADOConnection.Connected := True;
except
Application.MessageBox('连接数据库时发生错误!', '提示',
MB_OK + MB_ICONHAND + MB_DEFBUTTON1 + MB_APPLMODAL);
end;

如果发生错误,我现在只能在except段中提示这样一个错误信息,而发生错误的时候数据库通常都会返回一个“指定数据库无效”之类的错误信息的,我想知道在except段中如何获得这个错误信息?,这样在MessageBox中就可以提示连接“数据库时发生错误,错误原因:指定数据库无效。”
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
NetCobra 2002-06-25
  • 打赏
  • 举报
回复
To jishiping(JSP 季世平):
谢谢,问题已经解决,但是还有一个问题:我用msg := '数据库时发生错误,错误原因:' + Message拼出了错误信息,但是在Application.MessageBox(PChar(msg), ……时却只能显示系统的错误信息,没有我加上去的'数据库时发生错误,错误原因:'一段,请问是怎么回事?
NetCobra 2002-06-25
  • 打赏
  • 举报
回复
To jishiping(JSP 季世平):
谢谢,已经成功了,但是还是有一个问题:我拼除了msg := '数据库时发生错误,错误原因:' + Message,但是在显示MessageBox时只显示除了系统的错误信息,没有我在前面加上的“数据库发生错误,错误原因:”这一部分,请问这是怎么一回事?
zhptj 2002-06-24
  • 打赏
  • 举报
回复
还可以在编译时作出出错环境
然后看信息是什么错误
再try
except
on newexception do
end
newexception是新捕捉到的错误
robinhunter 2002-06-24
  • 打赏
  • 举报
回复
try

except
on e:exception do
showmessage(e.message);
end;
jishiping 2002-06-24
  • 打赏
  • 举报
回复
var
msg: AnsiString;

try
ADOConnection.Connected := False;
ADOConnection.ConnectionString := ……;// 设置连接字符串
ADOConnection.Connected := True;
except
on E: EDatabaseError do
begin
msg := '数据库时发生错误,错误原因:' + Message;
Application.MessageBox(PChar(msg)+, '提示', MB_OK
+ MB_ICONHAND + MB_DEFBUTTON1 + MB_APPLMODAL);
end;
end;

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧