procedure tform1.button1click(sender:TObject);
begin
try
dataset1.post;
adoconnetion1.CommitTrans;
except
showmessage('error');
adoconnection1.RollbackTrans;
end;
end;
begin
try
dataset1.post;
adoconnetion1.CommitTrans;
except
showmessage('error');
adoconnection1.RollbackTrans;
end;
end;
好像忘记一句:
ADOCONNECTION1.BEGINTRANS;
AdoDataset.Post;
execept
// 弹出你自己的信息框
Exit;
end;
详细请参阅:李维<Delphi 5.X ADO_MTS_COM+高级程序设计篇>
第三章,第5小节最后部分!因文字陈述过多,恕不原文摘抄!
你可以自己写一个错误处理机制,其实楼上的各位所学的,系统的错误提示还会出来
如
DataSetPostError:
if EDBEngineError(E).Errors[0].ErrorCode='BDE-***' then
......
>>try
>> AdoDataset.Post;
在DBGrid中它是自动Post的(比如说我换到另一行),好像不能这样。>>你可以自己写一个错误处理机制,其实楼上的各位所学的,系统的错误提示还会出来
该怎么写错误处理呢?关键是在哪捕获错误呢???
如:
在DataSetPostError事件中
if EDBEngineError(E).Errors[0].ErrorCode='BDE-****' then
........
...;
catch (exeception e) begin
// 弹出你自己的信息框
end;
没关系,依然会跳出很不友好的出错对话框,但是这是你在调试状态下(就是Delphi的run),如果你在资源管理器里运行你的应用程序,你试试看...^_^
begin
try
Post;
except
On:E.ErrorCode = -3434234234 then
begin
showmessage('关键字冲突!');
exit;//Abort;
end;
end;
end;
{
好象ADO类没有ErrorCode属性吧?我记得以前是用类型强制转换方式处理这个问题的。关于E.ErrorCode值是多少么?纯属经验学范畴。呵呵。。
}