2010-10-21 62 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