如何从函数返回数据库连接?

时间:2010-10-21 18:41:51

标签: vbscript asp-classic ado

我需要修改一些用经典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()正常工作。

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

再多一点后,我想出来了。

函数定义应该是:

function OpenConn() 

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

    set OpenConn = conn  ' change - added "set"

end function