数据库异常处理的疑问?

luckyly 2003-11-27 05:34:07
void __fastcall TForm1::Table1DeleteError(TDataSet *DataSet,
EDatabaseError *E, TDataAction &Action)
{
if ( E->ClassType() == __classid(EDBEngineError) ) {
if (((EDBEngineError *)E)->Errors[0]->ErrorCode ==
DBIERR_DETAILRECORDSEXIST)
{
MessageDlg("请首先删除Orders.db和Items.db的相关记录",
mtWarning ,TMsgDlgButtons()<<mbOK,0);
Abort() ;
}
}
}
请问:
// 1、 if ( E->ClassType() == __classid(EDBEngineError) )这一行有什么用?
// 2、EDBEngineError *)E)什么意思?
...全文
35 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
踏岸寻柳 2003-11-27
  • 打赏
  • 举报
回复
第一个问题:判断异常类的类名称,根据不同的异常类好进行不同的处理;
第二个问题:EDBEngineError类是从EdatabaseError类继承下来的,二者是父子关系;进行一个类型强制转换,好使用子类提供的属性(Errors)和方法。
踏岸寻柳 2003-11-27
  • 打赏
  • 举报
回复
判断异常类的类名称,根据不同的异常类进行不同的处理
叶子哟 2003-11-27
  • 打赏
  • 举报
回复
判断错误

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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