在一个事务中提交多个CDS

greenlaw110 2002-08-15 07:58:49
我在D6中使用dbexpress openodbc driver连接MS SQL Server。我希望能在同一个事务中提交两个ClientDataSet(分别连接两个一对一表),我该怎样做?

下面的方法我试过了,没有作用:

...
TD.TransactionID := 111;
TD.IsolationLevel := xilREADCOMMITTED;
Conn.StartTransaction(TD);
try
// 假设成功,并有一行插入table1
DataSet1.ApplyUpdates(-1);

// 假设失败,我希望刚插入table1的那一行回滚
DataSet2.ApplyUpdates(-1);

Conn.Commit(TD);
except
// 代码确实运行到此处,但数据库中发现table1的新纪录,
// 也就是说,下面的代码没有作用!!!
Conn.Rollback(TD);
end;

以上代码有何问题?或者有其他方法吗?

多谢指教



...全文
27 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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