【发布时间】:2012-01-09 17:20:28
【问题描述】:
我们正在将旧版 VB6 应用程序从 Sybase 后端迁移到 SQL Server 2008 R2。大多数应用程序都很好地进行了转换,但是我有一个应用程序使用命名事务在代码中使用严格的事务控制。根据一些彻底的测试,客户端或服务器似乎根本不支持“begin”、“commit”和“rollback”命令。
执行如下命令:
conSQL.Execute "begin tran CaptureSch" ', , adExecuteNoRecords
然后在其后面加上@@trancount 总是产生 0。此外,任何在代码中稍后提交事务的尝试都会产生 3902 错误。
使用这个命令:
conSQL.BeginTrans
似乎确实会产生某种行为改变,但是@@trancount 仍然为零,并且此方法不支持嵌套事务,这是代码所要求的。
我尝试更改隐式事务模式、各种连接字符串参数等,但无济于事。有人对如何使此类功能正常工作有任何建议吗?我在网上找到的此类功能示例表明,如果在代码中显式执行,则支持嵌套命名事务。
感谢您的帮助。
【问题讨论】:
标签: sql sql-server sql-server-2008 tsql transactions