2010-10-21 65 views
1

我需要修改一些以传统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()将工作正确。

感谢您的任何帮助。

回答

5

经过多一点点刺激后,我发现了它。

函数定义应该是:

function OpenConn() 

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

    set OpenConn = conn ' change - added "set" 

end function