如何处理动态创建的ADOQuery出错事件!

jminp 2006-08-28 07:45:22
我在程序里动态创建了一个TADOQuery *qry = new TADOQuery(NULL),
如果我用这个qry 删除表符合条件的纪录:
比如 sql语句为 "delete table where ID = '1'";
大家都知道,如果在table中不存在"ID"这个字段,就会跳出一个异常。
我现在的问题时,我不想让这个异常中断我的程序,该怎么捕获这个异常?
如果在类声明是静态创建这个qry,我可以在OnDeleteError函数中处理这个异常。
但在动态创建时,我就不知道该怎么做了。
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shensh 2006-08-29
  • 打赏
  • 举报
回复
这样可以呀!当然最好在ExecSQL前有个Prepare().

.....;
sqlstr = "delete table where ID = '1'";
qry->SQL->Clear();
qry->SQL->Add(sqlstr);
try{
qry->Prepare();
qry->ExecSQL();
}
catch(...)
{
ShowMessage("Error!");
}
ssyqcwj 2006-08-28
  • 打赏
  • 举报
回复
你可以创建一个New_DeleteError函数然后把这个错误处理函数赋给OnDeleteError:
qry->OnDeleteError=New_DeleteError;
jminp 2006-08-28
  • 打赏
  • 举报
回复
关键是我用try catch不到这个异常。
我的程序大体如下:

.....;
sqlstr = "delete table where ID = '1'";
qry->SQL->Add(sqlstr);
try{
qry->ExecSQL();
}
catch(...)
{
; //do nothing
}

sl19831983 2006-08-28
  • 打赏
  • 举报
回复
try
{
"delete table where ID = '1'";
....
}
catch(...)
{
//处理方法
}
lurel 2006-08-28
  • 打赏
  • 举报
回复
try
{

}
catch(...)
{

}

1,178

社区成员

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

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