我是用ADO + ADOTable + DataSetProvider + ClientDataSet 这样的方法来实现数据的保存和提交,一般用户一个操作我都要同时update两到三张表中的数据,
我的问题是如何能保证数据在提义的都程中
要不就同时提交成功,
如果有一个不成功全部都CancelUpdates呢?谢谢!
我的问题是如何能保证数据在提义的都程中
要不就同时提交成功,
如果有一个不成功全部都CancelUpdates呢?谢谢!
解决方案 »
- 求教 BHO插件的 执行javascript代码!
- 散分.混个脸
- 存储过程的调用
- 如何显示出小数点,急急急
- [dbnetlib]connectionopen(connect())sql sever 不存在或被拒绝。
- Delphi输入助手,节省代码录入一半的时间,以后可以偷懒了(测试中)
- API函数——WriteFile()函数的用法求助!!!???
- 报表问题怎样显示数据库中是同一年的纪录??用的控件事query
- 文件读写:前一部分是文肩头,含几个概括性数据;后一部分是数量不定的大量整形数据。该怎么办?我想用块读写的方式,不知可否?解决了保
- Delphi修改注册表
- 哪位老大用过APRO控件?请进来帮帮我呀!
- 计算的精度问题!
FQuery.OpenDatabase.StartTransaction; try //成功
FQuery.OpenDatabase.Commit;
except //失败
FQuery.OpenDatabase.Rollback;
end;
比如我现在执行
ClientDataSet1.applyupdate(0);
ClientDataSet2.applyupdate(0);
ClientDataSet3.applyupdate(0); 那么到底要如何写呢,本人刚学,还请各位帮帮忙
请大家帮忙看看if not Pos_DataModule.DM_DataModule.ADO_Connect_Pos.InTransaction then
begin Pos_DataModule.DM_DataModule.ADO_Connect_Pos.BeginTrans ; // ---- 开始一个事务 ---- //
try
AQy_list_table.Close;
AQy_list_table.SQL.Clear;
AQy_list_table.SQL.ADD ('update tblTable set SOID = ''' +Fs_order_id+ ''' , OrderTime = getdate() , TableState = ''' + '1' + ''' where TableEname = ''' + Trim(DBCBx_TableNo.Text) + '''');
AQy_list_table.ExecSQL; ; CDS_tblSalesOrder.ApplyUpdates(0);
cds_tblFoodOrder.ApplyUpdates(0); Pos_DataModule.DM_DataModule.ADO_Connect_Pos.CommitTrans ; // ---- 事务提交 ---- // except
CDS_tblSalesOrder.CancelUpdates ;
cds_tblFoodOrder.CancelUpdates ; Pos_DataModule.DM_DataModule.ADO_Connect_Pos.RollbackTrans ; // ---- 回滚一个事务 ---- //
end;请问这样写对不对呢