SQL Server错误 - 3709

问题描述:

您好我不断收到错误: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

我认为这是因为你使用SUB而不是FUNCTION。该子程序不会返回连接对象(这就是为什么你会得到一个关闭它的错误),而一个函数可以返回连接对象。这部分工作在其他地方吗?或者这是它唯一使用的时间?

+0

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

+0

我唯一能想到的其他事情是从SQL字符串中删除设置rowcount,因为我通常会运行类似在存储过程中。我一直认为ADO无法为每个记录集创建超过1条语句。 – 2009-10-06 17:06:22

确定设法得到这个工作...不能记得如何 - 但是我错过了! D'哦!