首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回滚exec和sp_OA方法

回滚exec和sp_OA方法
EN

Stack Overflow用户
提问于 2014-12-30 21:20:11
回答 1查看 195关注 0票数 1

我们有一个实例,其中需要实现一个旧的vb6 dll,并强制我们使用sp_OACreate和sp_OAMethod。考虑到代码将在事务中,是否有人知道回滚是否适用于该程序集中的代码?程序集将访问数据并对其进行更改。或者程序集中的sp_OAMethod调用和db代码会在事务之外创建自己的独立会话吗?

谢谢。

代码语言:javascript
复制
      begin tran
            declare @hr int
            declare @Object int
            declare @Return int
            declare @Output varchar(255)

            exec @hr= sp_OACreate 'DIssues32.Iclass',@object out
            IF @hr <> 0

            BEGIN

                EXEC sp_Getoaerrorinfo @object, @hr,@output out
                select @output

            END

            else
             begin


                exec @hr = sp_OAMethod @object,'Transfer', @Return , @LOCATION_NAME,
                    @TO_LOCATION_NAME, @QTY_REQUESTED,  @SYSUSER_ID, '', @CONNSTRING, True, '',  False, True

                IF @hr <> 0
                BEGIN
                    EXEC sp_Getoaerrorinfo @object, @hr,@output out
                    select @output
                    rollback
                END

                exec @hr= sp_OADestroy @object out

                print @return
             end

提交

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-02 20:40:07

您必须使用sp_bindsession进行第二个连接(来自VB6组件),以加入主锁空间并共享事务。

您可以使用sp_getbindtoken获取令牌并将其传递给连接字符串,但显然,如果在@CONNSTRING末尾找到令牌,则必须调整VB6代码以绑定会话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27712725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档