为什么我的 RecordCount 总是 -1?

Why is my RecordCount always -1?

我想 运行 一个 SQL 查询来查看数据库中是否已经存在某个 ID 的数据。

我用 this answer 实现了。

但是没用。数据库确实有行,当我 运行 确切的 SQL 查询时,它显示了几个结果。但是 RecordCount 似乎总是 -1。甚至在下面的 IF 子句中也不承认这一点。这是我的代码:

sqlCommand2 =   "SELECT * FROM database " &_
                "WHERE row = 'whatever';"
                SET objRS2 = objConn.Execute(sqlCommand2)

                Wscript.Echo "RecordCount: " & objRS2.RecordCount 'ALWAYS returns -1

                IF objRS2.RecordCount > 0 THEN

为什么 RecordCount 总是设置为 -1?

尝试将光标类型更改为 adOpenStatic。您可以使用下面的功能。

*请注意,您需要在下方包含您的连接字符串。

  Function RS(strSQL)
     Dim oConn, oRs 
     Set oConn  = Server.CreateObject("ADODB.Connection")
     oConn.CommandTimeout = 1800
     oConn.Open("[ConnectionStringValueGoesHere]")

     Set oRs = Server.CreateObject("ADODB.Recordset")
     oRs.CursorLocation = 3 
     oRS.Open strSQL, oConn, 3, 4
     oRS.ActiveConnection = Nothing
     oConn.Close
     Set oConn = Nothing

     Set executeSQLreturnRS = oRs
 End Function

因此更改此行:

SET objRS2 = objConn.Execute(sqlCommand2)

收件人:

SET objRS2 = RS(sqlCommand2)