以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何最大程度保持数据处理的完整性  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26827)

--  作者:jinruan
--  发布时间:2012/12/15 9:39:00
--  如何最大程度保持数据处理的完整性
如:
保存单据时,如果有10条新增的记录要保存,
如何处理才能保证这10条记录要么都保存了,要么遇到异常都不保存

--  作者:lin_hailun
--  发布时间:2012/12/15 9:57:00
--  
 狐表目前不支持事务,只能自己通过代码去完成这件事情了。

 比如,多条插入语句写在一个事务里去,然后检测是否有错误,出错的话,就RollBack

Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "Begin Transaction test; update 订单 set 单价 = 999; Commit Transaction test"
\'cmd.CommandText = "Begin Transaction test; update 订单 set 单价 = 999; ROLLBACK Transaction test"

cmd.ExecuteNonQuery
[此贴子已经被作者于2012-12-15 10:48:24编辑过]

--  作者:jinruan
--  发布时间:2012/12/15 10:16:00
--  

Try
   语句1

Catch ex
As Exception
   
语句2
End
Try


用try语句是否可以


--  作者:lin_hailun
--  发布时间:2012/12/15 10:48:00
--  
 DataTables().Save 封装以后不会抛出异常,再有就是,即便报错能捕捉到也不能恢复。

 在狐表如果要使用事务,只能是自己合成sql语句了,这个过程很麻烦的。
[此贴子已经被作者于2012-12-15 10:49:10编辑过]

--  作者:jinruan
--  发布时间:2012/12/15 11:08:00
--  
不用 DataTables().Save

用下面方式可以吧:
Try
For Each ...
  
update 订单 set 单价 = 999  
Next
Catch ex As Exception
   
 语句2
End
 Try
[此贴子已经被作者于2012-12-15 11:07:58编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/12/15 11:18:00
--  
Foxtable以后会加上事务的。
--  作者:小猪鑫鑫
--  发布时间:2012/12/15 11:24:00
--  
呵呵,等待ing,兄弟不才,不知何为事务,难怪当年一鸟人说我学的FOXTABLE连事务都没有,很是看不起,搞得我恼怒了半天,狐爸加油!
--  作者:jinruan
--  发布时间:2012/12/15 11:25:00
--  
期待中 先用 DataTables().Save了