//这是一个按钮按下的事件,按下后删除一条记录。
//当删除到有外键关系约束的记录时,会报错,我想把这个错误捕捉到进行再处理,下面的代码一点用都没
//有!这段代码错在哪里呢?还是方法不对?谢谢。
procedure TForm5.ToolButton3Click(Sender: TObject);
begin
try
adotable1.Delete;
except
showmessage('你不能删除这条记录,这个部门正在被别的记录所引用。');
abort;
else
end;end;
//当删除到有外键关系约束的记录时,会报错,我想把这个错误捕捉到进行再处理,下面的代码一点用都没
//有!这段代码错在哪里呢?还是方法不对?谢谢。
procedure TForm5.ToolButton3Click(Sender: TObject);
begin
try
adotable1.Delete;
except
showmessage('你不能删除这条记录,这个部门正在被别的记录所引用。');
abort;
else
end;end;
解决方案 »
- 可能很简单,大家不要打脸
- 【如何在一套应用系统空闲一段时间后(时间可设定)自动弹出密码对话框】
- 简单问题:是用soap技术做三层系统中,客户端调用应用层,任何string类型是参数都必须按base64编码吗
- 为什么要用B/S架构,为什么要用J2EE/.NET???
- 在Delphi中如何得到桌面的路径,如何得到当前用户的开始菜单路径?
- 如何跟踪调试动态链接庫(*.dll)?
- 如何获得本机网卡号?
- 求Delphi5开发人员指南或Delphi6开发人员,VCL架构剖析
- 如何抓取屏幕??使占用内存最小,抓取速度最快??可能要用的directx的知识。
- 要想吃Delphi这碗饭,必须掌握那些知识呢?
- 为什么用DELPHI的ADO来查询SYBASE数据库的时候特别慢呀?
- 关于actlveform,难道csdn里就没人了吗?
begin
try
adotable1.Connection.BeginTrans;
adotable1.Delete;
adotable1.Connection.CommitTrans;
except
on E: Exception do
begin
adotable1.Connection.RollbackTrans;
if Pos('COLUMN REFERENCE',UpperCase(E.Message))>0 then
Application.MessageBox('你不能删除这条记录,这个部门正在被别的记录所引用!',PChar(Application.Title),MB_OK+MB_ICONERROR)
else
Application.MessageBox(PChar('记录删除时错误:'+#13+#10+' '+E.Message),PChar(Application.Title),MB_OK+MB_ICONERROR);
end;
end;
end;
showmessage('你不能删除这条记录,这个部门正在被别的记录所引用。');
//abort;