以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  再问事务处理  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44178)

--  作者:yedaoan
--  发布时间:2013/12/24 20:08:00
--  再问事务处理

上次有个贴问了事务的问题,如下

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=43350&skin=0

 

狐爸说可以编程解决,可惜我太菜了,搞不了,狐爸能不能搞个通用的解决示例 ,这个必须有啊,否则没有办法做下去了,

bin说用SQLCOMMAND也不能解决事物的问题,请指教!

 

这是我用ADO做的一个函数,是不是有参考意义

Public Function Trans(Optional ByVal strSQL1 As String, Optional ByVal strSQL2 As String, Optional ByVal strSQL3 As String, Optional ByVal strSQL4 As String, Optional ByVal strSQL5 As String, Optional ByVal strSQL6 As String, Optional ByVal strSQL7 As String, Optional ByVal strSQL8 As String, Optional ByVal strSQL9 As String, Optional ByVal strSQL10 As String) As Boolean
On Error GoTo Err_Trans
   Dim CN As ADODB.Connection
   Set CN = CurrentProject.Connection
   Trans = True
   CN.BeginTrans
   If Nz(strSQL1, "") <> "" Then CN.Execute strSQL1
   If Nz(strSQL2, "") <> "" Then CN.Execute strSQL2
   If Nz(strSQL3, "") <> "" Then CN.Execute strSQL3
   If Nz(strSQL4, "") <> "" Then CN.Execute strSQL4
   If Nz(strSQL5, "") <> "" Then CN.Execute strSQL5
   If Nz(strSQL6, "") <> "" Then CN.Execute strSQL6
   If Nz(strSQL7, "") <> "" Then CN.Execute strSQL7
   If Nz(strSQL8, "") <> "" Then CN.Execute strSQL8
   If Nz(strSQL9, "") <> "" Then CN.Execute strSQL9
   If Nz(strSQL10, "") <> "" Then CN.Execute strSQL10
   CN.CommitTrans
   CN.Close
   Exit Function
Err_Trans:
   CN.RollbackTrans
   Trans = False
   MsgBox Err.Description & " [操作失败,请检查!]", 0 + 64
   CN.Close
End Function


--  作者:有点甜
--  发布时间:2013/12/24 20:21:00
--  
 直接拼凑sql语句吧,这样简单

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

cmd.ExecuteNonQuery

--  作者:yedaoan
--  发布时间:2013/12/25 7:34:00
--  
这种方法,还是不够灵活,如果能写成函数模式,直接调用,就好了
--  作者:lsy
--  发布时间:2013/12/25 8:06:00
--  

这个功能,还是狐爸统一来做,少不了。


--  作者:yedaoan
--  发布时间:2013/12/25 9:09:00
--  
狐爸在那里呢?
--  作者:狐狸爸爸
--  发布时间:2013/12/25 9:13:00
--  

如果急需的话,就先自己做吧。

用foxtable开发的用户,需要事务的并不多,我需要考虑用何种方式提供,又不影响普通用户的习惯。


--  作者:包头123
--  发布时间:2013/12/25 14:41:00
--  
确实需要版主多多指导啊。
--  作者:yinyb36
--  发布时间:2013/12/25 22:46:00
--  

--  作者:xubing051018
--  发布时间:2014/2/12 16:25:00
--  回复:(狐狸爸爸)如果急需的话,就先自己做吧。用...
事务的功能必须要有啊...之前用的平台,开发都是写事务写习惯的...想换foxtable,可是没有事务控制,都不知道该怎么写了....
写出来的东西也都不放心用...
还有独占式编辑....能不能foxtable实现自动控制啊...比如在foxtable中编辑每笔资料前,foxtable自动将后台数据锁上,编辑完后,再自动解锁,
不需要开发者自己写代码控制....
这两点若能实现,,那foxtable处理数据就更严谨更方便了....