sql Server错误-3709

sql Server错误-3709,sql,sql-server,tsql,asp-classic,ado,Sql,Sql Server,Tsql,Asp Classic,Ado,嗨,我一直收到错误信息: 错误(3709)-/mysite/Pages\u Secure/mypage.asp ADODB.Recordset “该连接无法用于执行此操作。它在此上下文中已关闭或无效…” 错误发生在打开 SUB subOpenConnection( strErrorPage, strErrorQueryArguments ) Set objDBConnection = Server.CreateObject("ADODB.Connection") objDBC

嗨,我一直收到错误信息:

错误(3709)-/mysite/Pages\u Secure/mypage.asp ADODB.Recordset

“该连接无法用于执行此操作。它在此上下文中已关闭或无效…”

错误发生在打开

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

有什么想法吗?

我想这是因为您使用的是SUB而不是FUNCTION。sub不会返回连接对象(这就是为什么会出现关闭的错误),而函数可以返回连接对象。这个子系统在其他地方工作吗?或者这是唯一一次使用它吗?

好的,我设法让它工作了……我不太记得是怎么用的——但我错过了一些东西!哦

我唯一能想到的另一件事是从SQL字符串中删除set rowcount,因为我通常会在存储过程中运行类似的操作。我一直认为ADO只能对每个记录集执行1条语句。这段代码容易受到sql注入的攻击
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