在一個事件中需要處理插入多個數據表,怎樣實現數據要不一次性全操作完畢,要不全不操作。
解决方案 »
- 如何发消息给其他程序syslistview32控件让其选中某一行
- Invalid use of keyword. Token: = Line Number:1 错误,请帮忙
- 请做过移动CMPP程序的来看看
- 抢分时间: 怎么用Socket 来传输一组 数据包
- 关于 RAVE 设置 RaveText值的问题,大家都这写,我怎么就不对呢??
- 一个连续整数相加到1000有多少对
- 用delphi怎么修改注册表中某个键值的值呢???
- idftpserver的问题
- 请问各位大侠:怎样得到桌面的“我的文档”的实际目录
- 如何能得到SQL SERVER中的所有数据库名
- 一个简单问题!关于ADOTABLE的
- 关于短信,小弟现在手里有一些C方面的短信资料,哪位大哥手上有关于SMS的Delphi资料。或者把我的C转变为Delphi也可以
with ADOQuery1 do
beign
connection.Begintrans;
數據操作
end;
with ADOQueyr2 do
beign
Connection.Begintrans;
數據操作
end;
with ADOQuery3 do
beign
數據操作
end;
try
begin
ADOQuery1.Connection.committrans;//這個提交成功
ADOQuery2.Connection.Committrans;//提交成功
ADOQuery3.Connection.committrans;//提交失敗
end;
except
begin
ADOQuery1.Connection.Rollback;//不回滾
ADOQuery2.Connection.Rollback;//不回滾
ADOQuery3.Connection.RollBack;//回滾end;這樣一來,數據就寫了一半?
數據操作
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans
end;
应该针对ADOConnection如果你的ADOQuery连接的是同一个ADOConnection的话,就直接
像楼上的那样就行了如果是多个ADOConnection的话就判断其ADOConnection.InTransaction属性是否为真,为真就是当前已经进行事务(未提交)
beign
connection.Begintrans;
數據操作
end;
with ADOQueyr2 do
beign
Connection.Begintrans;
數據操作
end;
with ADOQuery3 do
beign
數據操作
end;数据操作应该放在try...except中间,要不然事务是没用的