以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  狐爸看过来,事务处理  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46234)

--  作者:yedaoan
--  发布时间:2014/2/19 16:24:00
--  狐爸看过来,事务处理
狐爸,2014版,还是没有事务处理,参照论坛上的做了一个事务函数,还是有问题,一执行整个SQL 就死在那里,
所以,狐爸,狐表一定要支持事务(SQL SERVER 事务),或者你写一个示例,我参考一下
卡在这里有半年了,没有办法进行下去了(已经买了两个开发版,本来近期还准备再买一个,老板已经签字了,如果还是做不出来,想放弃了。整了很久了,唉!)

--  作者:yedaoan
--  发布时间:2014/2/19 16:28:00
--  
已经用ACCESS +SQL SERVER 2008 R2 为公司开发了一个ERP产品(从网页里的了解更多对比看来,我原来的ERP产品,比他们复杂多了),,由于ACCESS不能编译,所有转向了FOXTABLE


--  作者:狐狸爸爸
--  发布时间:2014/2/19 16:29:00
--  
收到,我会考虑的。
--  作者:逛逛
--  发布时间:2014/2/19 16:52:00
--  
以下是引用yedaoan在2014-2-19 16:24:00的发言:
狐爸,2014版,还是没有事务处理,参照论坛上的做了一个事务函数,还是有问题,一执行整个SQL 就死在那里,
所以,狐爸,狐表一定要支持事务(SQL SERVER 事务),或者你写一个示例,我参考一下
卡在这里有半年了,没有办法进行下去了(已经买了两个开发版,本来近期还准备再买一个,老板已经签字了,如果还是做不出来,想放弃了。整了很久了,唉!)

把你的函数发上来,看看。


--  作者:狐狸爸爸
--  发布时间:2014/2/19 16:54:00
--  

呵呵,逛逛是牛人,楼主赶快发上来

 

图片点击可在新窗口打开查看


--  作者:逛逛
--  发布时间:2014/2/19 18:19:00
--  
我写了个函数,放在我前面的 事务处理 的帖子里
--  作者:有点甜
--  发布时间:2014/2/19 20:33:00
--  
 逛逛的例子 链接


--  作者:yedaoan
--  发布时间:2014/2/20 7:39:00
--  
我用得就是逛逛的例子改得,执行多条SQL语句,会造成SQL SERVER服务器无响应,函数如下:
\'向服务器提交数据的事务函数  Args(i) 表示SQL 语句

\'Dim cn As New System.Data.sqlDb.sqlDbConnection(Connections("Local_EAERP"))
\'Dim cn As  new System.Data.SqlClient.SqlConnection( Connections("EAERP").ConnectionString   )


Dim cn As  new System.Data.SqlClient.SqlConnection("Server = 192.168.2.51;Database = EAERP;User ID = SA;Password = 123456;")   
\'Dim cn As  new System.Data.SqlClient.SqlConnection("EAERP")
\'If(cn.state<>1) Then
cn.Open()
\'End If
Dim cmd  As New System.Data.SqlClient.SqlCommand()
cmd.Connection = cn
\'cmd.Transaction = cn.BeginTransaction()
cn.BeginTransaction()

Try
    For i As Integer =0 To args.length-1
         If args(i) Is Nothing Then
            Exit For
        Else
            cmd.CommandText = args(i)
            cmd.ExecuteNonQuery
        End If
    Next
   \' MessageBox.Show(cn.State,"")

    
Catch ex As Exception
    cmd.Transaction.Rollback()
    CN.CLOSE()
    MessageBox.Show(ex.tostring,"向服务器提交数据错误!",MessageBoxButtons.OK)
    Return False
End Try
CN.CLOSE()
Return True

--  作者:yedaoan
--  发布时间:2014/2/20 7:40:00
--  
我自已也写了一下,经测试不会回滚事务
\'向服务器提交数据的事务函数  Args(i) 表示SQL 语句


Dim cmd  As New SQLCommand
Dim strSQL As String
cmd.C
Try
    For i As Integer =0 To args.length-1
        If args(i) Is Nothing Then
            Exit For
        Else
            strSQL=strSQL & args(i) & ";"
        End If
    Next
    cmd.CommandText = "Begin Transaction;" & strSQL &  "Commit Transaction"
    cmd.ExecuteNonQuery
    Return True
Catch ex As Exception
    \'cmd.CommandText = "Begin Transaction;" & strSQL &  "RollbackTrans"
    cmd.CommandText = "RollbackTrans"
    cmd.ExecuteNonQuery
    Return False
    MessageBox.Show("向服务器提交数据错误!","提示",MessageBoxButtons.OK)
End Try

--  作者:逛逛
--  发布时间:2014/2/20 9:19:00
--  
我重写了一个函数放在那里,你试试看。希望能用。