处理事务的方法很多,其中最常用的是.NET和sql server的事务处理,^_^,COM+俺不懂,听说用于事务处理很强,可惜了
(有机会 定要研究研究)。

下面的说明是SQL server:
通常的Tranaction的使用是基于一个sqlconnection的,使用BeginTransaction来开始和用Commit提交,rollback来回滚。我要说的多个连接的实质还是这样,只是自己使用了一个小伎俩,利用.net的捕捉异常的机制,不再一一提交,而是统一提交和回滚。

下面是处理多个Transaction的一个类。ProcessTransaction.vb
处理多个连接时只要把相应的ConnectionString和相应的Sql语句传入就搞定了。注意的时,ConnectionString存放在一个collection(cCN)中,Sql语句放在一个类型时string的数组中commandText(),注意把在一个Transaction的sql语句统一放在里面啊!

Code:

Imports System.Data
Imports System.Data.SqlClient

Public Class ProcessTransactionClass ProcessTransaction


    Private c As New Collection

    Public Sub ptExecuteNonQuery()Sub ptExecuteNonQuery(ByVal commandText() As String, ByVal cCN As Collection)

        Dim s As String

        Dim flag As Boolean
        For Each s In cCN
            If Not ptExecuteNonQuery_test(commandText, s) Then
                flag = False
                Exit For
            Else
                flag = True
            End If
        Next

        Dim sqlTa As SqlTransaction
        If flag Then
            For Each sqlTa In c
                sqlTa.Commit()
            Next
        Else
            For Each sqlTa In c
                sqlTa.Rollback()
            Next
        End If

    End Sub


    Private Function ptExecuteNonQuery_test()Function ptExecuteNonQuery_test(ByVal commandText() As String, ByVal cn As String) As Boolean

        Dim sqlcn As New SqlConnection(cn)
        Dim sqlCmd As New SqlCommand
        Try
            sqlcn.Open()
            Dim sqlTa As SqlTransaction = sqlcn.BeginTransaction()
            c.Add(sqlTa)

            sqlCmd.CommandType = CommandType.Text
            sqlCmd.Connection = sqlcn
            sqlCmd.Transaction = sqlTa
            Dim CommStr As String
            For Each CommStr In commandText
                sqlCmd.CommandText = CommStr
                sqlCmd.ExecuteNonQuery()
            Next
            Return True
        Catch ex As Exception
            Return False
        Finally
            sqlCmd.Dispose()
            sqlcn.Close()
            sqlcn.Dispose()
        End Try

    End Function
End Class

转载于:https://www.cnblogs.com/rippleyong/archive/2004/08/18/34499.html

戏耍Transaction,多个连接的Transaction处理(非COM+)相关推荐

  1. Active Spring transaction synchronization or active JTA transaction with specifi

    1,写了一个保存日志方法,在无事务方法体里执行. 2,使用hibernate的save方法保存时报错 java.lang.IllegalStateException: Active Spring tr ...

  2. 内连接(等值、非等值连接)、外连接(左外连接、右外连接、全连接)、自然连接、自连接

    目录 一.交叉连接(笛卡尔积) 二.内连接(等值.非等值连接) 三.外连接(左外连接.右外连接.全连接) 四.自然连接 五.自连接 一.交叉连接(笛卡尔积) 交叉联接返回左表中的所有行,左表中的每一行 ...

  3. MySQL多表连接查询——等值连接、非等值连接和自连接

    MySQL多表连接查询 1. 含义: 又称多表查询,当查询的字段来自于多个表时,就会用到连接查询 笛卡尔乘积现象: 表1 有m行,                               表2 有 ...

  4. transaction缩写为什么是tx_TX Transaction locks常见的4种情况

    TX锁最常见的有以下4种情况: 由于行被活动事务锁住导致的等待. 由于唯一约束或主键约束导致的等待. 由于数据块ITL槽不足导致的等待. 由于行包含在同一个位图索引片段中导致的等待. 在LDY用户下创 ...

  5. 小白终是踏上了这条不归路----小文的mysql学习笔记(6)----连接查询-----等值连接、非等值连接、自链接、外连接、交叉连接

    ** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...

  6. 音响器材输出、输入连接的平衡与非平衡接驳端口问题

    线路电平的信号线可以划分为平衡和不平衡两大类,平衡信号线可由其3芯的XLR插头来加以辨认,而不平衡的信号线则往往端接以RCA插头. 1.平衡信号线的使用 那么为何在音响器材中使用这两种互不兼容的信号线 ...

  7. 关于安卓19的板子通过usb连接打印机打印问题 (非小票打印机器)

    很多打印机有提供windows,linux的打印驱动,但是安卓的驱动几乎没有厂家提供,这就导致很多想通过安卓平板控制打印机连接打印的用户无法实现,而市面上面大多数打印软件也是通过蓝牙或者网络来进行连接 ...

  8. DB2配置SSL连接(只是连接通道加密,非免密)

    简单步骤,没太多说明 vim /etc/services 添加SSL连接通道端口,我给原来的50000中间加443 db2cs_db2inst1 54430 定义变量给后面命令使用.库名DB,密钥库文 ...

  9. 【MySQL】十五、内连接(等值连接,非等值连接,自连接)

    文章目录 1. 内连接 2. 非等值连接 3. 自连接 1. 内连接 内连接最大的特点是:条件是等量关系. 案例:查询每个员工的部门名称,要求显示员工名和部门名. 从emp表中取ename,从dept ...

最新文章

  1. Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据
  2. scp遇到路径中有空格
  3. arx对正在操作的文件进行保存
  4. idea普通java项目引入lombok_Intellij IDEA 安装lombok及使用详解
  5. 平衡二叉树平衡因子怎么计算_平衡二叉树(AVL Tree)旋转机制分析
  6. 机器学习知识点(十)马尔可夫链
  7. android+动画+锯齿,Android当中的防锯齿(Bitmap Canvas )
  8. 工业以太网在工业领域的应用特点详解
  9. html怎么把一段文字设置为连接到下一个网页的按钮,网页设计三合一模拟试题(一)...
  10. PostgreSQL11.7逻辑复制的搭建
  11. “跨界养猪”这件事,华为正式回应了
  12. ES6——Symbol
  13. bzoj 2131: 免费的馅饼(树状数组+DP)
  14. php 环境优化,[笔记] 使用 opcache 优化生产环境 PHP
  15. 21.5 英寸 iMac 供应减少:是新品发布的节奏吗?
  16. mac连续互通相机功能小技巧
  17. Centos7下安装svnadmin
  18. java查询mongodb数据_从mongodb中查询数据
  19. js实现逐行打字,逐段打字效果(最全)
  20. 电影感悟-豆瓣TOP3

热门文章

  1. Java笔记-非对称加密RSA的使用
  2. Android逆向文档阅读笔记-Android Application Fundamentals
  3. Kafka笔记-搭建及单机生产者、消费者操作
  4. HTTP|Qt实践-Qt编写某平台刷评论软件(含代码与思路)
  5. Qt学习笔记-SQL的基本操作【创建、查询、添加、索引等】
  6. java 内存调优_JVM内存模型以及性能调优
  7. 国盾量子等参与中国量子通信行业首批标准编制 量子通信商用再加速
  8. python小城市创业好项目_小城市创业好项目有哪些?
  9. Libevent源码分析-----配置event_base
  10. Qt中对main.cpp的代码解释