Excel SQL Server ADO连接错误处理策略

时间:2018-06-06 10:37:29

标签: excel-vba ado vba excel

我有一个基于Excel VBA / ADO的应用程序,它使用ADO接口连接到SQL服务器。 我想知道在事务中间连接丢失时错误处理策略是什么。

交易是使用

开始的
con.BeginTrans

使用

提交或回滚事务
con.CommitTrans

con.RollbackTrans

其中 con 是使用以下代码创建的类<​​strong> ADODB.Connection 的对象

Const sConnectionString as String ="some valid connection string beleive me"
Const sCatalog as String ="my data base name"
Set con= New ADODB.Connection
With con
    .ConnectionTimeout = 30
    .Provider = "sqloledb" 
    .ConnectionString = sConnectionString
    .Open
    .DefaultDatabase = sCatalog
 End With

我传递细节以处理多次重试,以防它第一次没有成功(但这也是实现的),这不是在这种情况下困扰我的。

如果 con.BeginTrans con.CommitTrans 之间的连接丢失,我无法使用 con.RollbackTrans 。 参考VBA ADO文档说

  

如果在事务进行过程中Connection对象超出范围,ADO会自动回滚事务

我无法关闭连接,因为ADO抱怨正在运行的事务似乎与参考文档相矛盾。

那么可能有哪些选择? 创建一个新的 ADODB.Connection 实例对象?

0 个答案:

没有答案