戏耍Transaction,多个连接的Transaction处理(非COM+)
处理事务的方法很多,其中最常用的是.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.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+)相关推荐
- Active Spring transaction synchronization or active JTA transaction with specifi
1,写了一个保存日志方法,在无事务方法体里执行. 2,使用hibernate的save方法保存时报错 java.lang.IllegalStateException: Active Spring tr ...
- 内连接(等值、非等值连接)、外连接(左外连接、右外连接、全连接)、自然连接、自连接
目录 一.交叉连接(笛卡尔积) 二.内连接(等值.非等值连接) 三.外连接(左外连接.右外连接.全连接) 四.自然连接 五.自连接 一.交叉连接(笛卡尔积) 交叉联接返回左表中的所有行,左表中的每一行 ...
- MySQL多表连接查询——等值连接、非等值连接和自连接
MySQL多表连接查询 1. 含义: 又称多表查询,当查询的字段来自于多个表时,就会用到连接查询 笛卡尔乘积现象: 表1 有m行, 表2 有 ...
- transaction缩写为什么是tx_TX Transaction locks常见的4种情况
TX锁最常见的有以下4种情况: 由于行被活动事务锁住导致的等待. 由于唯一约束或主键约束导致的等待. 由于数据块ITL槽不足导致的等待. 由于行包含在同一个位图索引片段中导致的等待. 在LDY用户下创 ...
- 小白终是踏上了这条不归路----小文的mysql学习笔记(6)----连接查询-----等值连接、非等值连接、自链接、外连接、交叉连接
** 小白终是踏上了这条不归路----小文的mysql学习笔记(1) 小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询 小白终是踏上了这条不归路----小文的mysql学 ...
- 音响器材输出、输入连接的平衡与非平衡接驳端口问题
线路电平的信号线可以划分为平衡和不平衡两大类,平衡信号线可由其3芯的XLR插头来加以辨认,而不平衡的信号线则往往端接以RCA插头. 1.平衡信号线的使用 那么为何在音响器材中使用这两种互不兼容的信号线 ...
- 关于安卓19的板子通过usb连接打印机打印问题 (非小票打印机器)
很多打印机有提供windows,linux的打印驱动,但是安卓的驱动几乎没有厂家提供,这就导致很多想通过安卓平板控制打印机连接打印的用户无法实现,而市面上面大多数打印软件也是通过蓝牙或者网络来进行连接 ...
- DB2配置SSL连接(只是连接通道加密,非免密)
简单步骤,没太多说明 vim /etc/services 添加SSL连接通道端口,我给原来的50000中间加443 db2cs_db2inst1 54430 定义变量给后面命令使用.库名DB,密钥库文 ...
- 【MySQL】十五、内连接(等值连接,非等值连接,自连接)
文章目录 1. 内连接 2. 非等值连接 3. 自连接 1. 内连接 内连接最大的特点是:条件是等量关系. 案例:查询每个员工的部门名称,要求显示员工名和部门名. 从emp表中取ename,从dept ...
最新文章
- Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据
- scp遇到路径中有空格
- arx对正在操作的文件进行保存
- idea普通java项目引入lombok_Intellij IDEA 安装lombok及使用详解
- 平衡二叉树平衡因子怎么计算_平衡二叉树(AVL Tree)旋转机制分析
- 机器学习知识点(十)马尔可夫链
- android+动画+锯齿,Android当中的防锯齿(Bitmap Canvas )
- 工业以太网在工业领域的应用特点详解
- html怎么把一段文字设置为连接到下一个网页的按钮,网页设计三合一模拟试题(一)...
- PostgreSQL11.7逻辑复制的搭建
- “跨界养猪”这件事,华为正式回应了
- ES6——Symbol
- bzoj 2131: 免费的馅饼(树状数组+DP)
- php 环境优化,[笔记] 使用 opcache 优化生产环境 PHP
- 21.5 英寸 iMac 供应减少:是新品发布的节奏吗?
- mac连续互通相机功能小技巧
- Centos7下安装svnadmin
- java查询mongodb数据_从mongodb中查询数据
- js实现逐行打字,逐段打字效果(最全)
- 电影感悟-豆瓣TOP3
热门文章
- Java笔记-非对称加密RSA的使用
- Android逆向文档阅读笔记-Android Application Fundamentals
- Kafka笔记-搭建及单机生产者、消费者操作
- HTTP|Qt实践-Qt编写某平台刷评论软件(含代码与思路)
- Qt学习笔记-SQL的基本操作【创建、查询、添加、索引等】
- java 内存调优_JVM内存模型以及性能调优
- 国盾量子等参与中国量子通信行业首批标准编制 量子通信商用再加速
- python小城市创业好项目_小城市创业好项目有哪些?
- Libevent源码分析-----配置event_base
- Qt中对main.cpp的代码解释