在一个事务中提交多个CDS
我在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;
以上代码有何问题?或者有其他方法吗?
多谢指教