2009-10-06 93 views
0

您好我不斷收到錯誤:SQL Server錯誤 - 3709

錯誤(3709) - /mysite/Pages_Secure/mypage.asp ADODB.Recordset。

「的連接不能用於執行此操作。正是在這樣的背景下關閉或無效的。」打開後

strQuery = "" 
strQuery = strQuery + "SET ROWCOUNT 0 " 
strQuery = strQuery + "SELECT FIRSTNAME, LASTNAME, EMAIL, USER_TEAM_ID, USER_SERVICE_ID, USER_DIRECTORATE_ID " 
strQuery = strQuery + "FROM Web_Users " 
strQuery = strQuery + "WHERE USER_ID = '" + Cstr(lOwnerID) + "'" 

CALL subOpenConnection("", "") 

Set RS = Server.CreateObject("ADODB.RecordSet") 

RS.Open strQuery, objDBConnection 

錯誤發生在這裏....

SUB subOpenConnection(strErrorPage, strErrorQueryArguments) 

    Set objDBConnection = Server.CreateObject("ADODB.Connection") 

    objDBConnection.ConnectionTimeout = Application("ConnectionTimeout") 
    objDBConnection.CommandTimeout = Application("CommandTimeout") 
    objDBConnection.CursorLocation = Application("CursorLocation") 
    objDBConnection.Open Application("ConnectionString") 

END SUB 

有什麼建議嗎?

+0

此代碼容易受到sql注入 – 2011-12-01 19:26:18

回答

1

我認爲這是因爲你使用SUB而不是FUNCTION。該子程序不會返回連接對象(這就是爲什麼你會得到一個關閉它的錯誤),而一個函數可以返回連接對象。這部分工作在其他地方嗎?或者這是它唯一使用的時間?

+0

這就是事情,它用於else .... – thegunner 2009-10-06 16:12:11

+0

我唯一能想到的其他事情是從SQL字符串中刪除設置rowcount,因爲我通常會運行類似在存儲過程中。我一直認爲ADO無法爲每個記錄集創建超過1條語句。 – 2009-10-06 17:06:22

0

確定設法得到這個工作...不能記得如何 - 但是我錯過了! D'哦!