操作无法执行对象是关闭asp

时间:2012-05-25 06:41:48

标签: asp-classic

我在执行.vbs文件时调用了存储过程。

function getJobHistory(byval ServerName)

    '****************************
    '* Connecting to server

    dim rsArray

    msgbox(ServerName)

    cn.open "Provider=SQLOLEDB.1;Data Source=" & ServerName & ";Integrated Security=SSPI"

    cmd.activeconnection =cn
    MsgBox(cn.State)

    If Err.Number <> 0 Then
        Call HandleErrors(Err.Number, Err.Description, "Error Connecting To Server " & ServerName & "") 
    end if 

    'cmd.commandtext = "SELECT * FROM SYS.SYSDATABASES"
    'query1="SELECT * FROM SYS.SYSDATABASES"

    sql = "exec UMRDB..sp_Getobsoletebackupfile 0,0,0,'','','','',0,'','','',0"

    mobjwritelog.Write(query)

    'query=query & " insert into UMRDB..FileInfo select * from #fileinfo"
    'query=query & " drop table #disk drop table #file"
    'cmd.commandtext = query
    'rs.Open query,cn

    set rs=cn.Execute(sql)

    'MsgBox(rs.RecordCount) 

    do while not rs.BOF and not rs.EOF
        rsArray=rs.GetRows()
        nr=UBound(rsArray,2)
        MsgBox(nr)
        rs.MoveNext
    loop

    rs.Close

    ' end if
end function
'***********************

它给我的错误如下

Error: Operation is not allowed when the object is closed.
Code: 800A0E78
Source:  ADODB.Recordset

在查询分析器中执行相同的存储过程。执行过程需要17秒。当我在.vbs script.or asp页面上执行时会发生什么。

1 个答案:

答案 0 :(得分:0)

看起来你没有打开记录集,因为包含rs.open的行被注释掉了

编辑:实际上看得更近似乎特定的行引用了另一个查询。但是,在您可以使用它之前,仍需要打开记录集。