【问题标题】:How to return a database connection from a function?如何从函数返回数据库连接?
【发布时间】:2010-10-21 18:41:51
【问题描述】:

我需要修改一些用经典 ASP (VBscript) 编写的遗留代码。

我有一行这样设置数据库连接:

set m_conn=OpenConn()

我相信OpenConn() 函数在某个DLL 中。这是个坏消息,因为我们无法找到该 dll 的来源。所以,我一直在努力替代该功能。这是我到目前为止所拥有的:

function OpenConn()

dim conn
set conn = server.CreateObject("adodb.connection")
conn.open "XXXXconnection-stringXXXXX"  
OpenConn = conn

end function

当我尝试运行原始行 set m_conn=OpenConn()(第 50 行)时,出现 ASP 错误:

Microsoft VBScript runtime error '800a01a8' 

Object required: '[string: "Provider=SQLOLEDB.1;"]' 

/path/to/include.asp, line 50 

我不太清楚这种语法应该如何工作。通常,我在 C# 中工作,但当我需要在 ASP 中执行此类操作时,我会使用如下语法:

set conn = server.createobject("adodb.conection")
conn.activeconnection = "connectionstring"
conn.execute "sql"
set conn = nothing

无论如何,我正在寻找OpenConn() 的正确语法,以便set m_conn=OpenConn() 能够正常工作。

感谢您的帮助。

【问题讨论】:

    标签: vbscript asp-classic ado


    【解决方案1】:

    经过一番摸索,我想通了。

    函数定义应该是:

    function OpenConn() 
    
        dim conn 
        set conn = server.CreateObject("adodb.connection") 
        conn.open "XXXXconnection-stringXXXXX"   
    
        set OpenConn = conn  ' change - added "set"
    
    end function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-08
      • 2015-04-06
      • 2016-07-24
      • 2015-07-07
      • 1970-01-01
      • 2018-06-22
      • 2013-11-26
      • 1970-01-01
      相关资源
      最近更新 更多