Asp classic 为什么我的记录计数总是-1?
我想运行一个SQL查询,看看数据库中是否已经有ID数据 我曾经做到过 但它不起作用。数据库确实有行,当我运行确切的SQL查询时,它会显示几个结果。但是Asp classic 为什么我的记录计数总是-1?,asp-classic,Asp Classic,我想运行一个SQL查询,看看数据库中是否已经有ID数据 我曾经做到过 但它不起作用。数据库确实有行,当我运行确切的SQL查询时,它会显示几个结果。但是RecordCount似乎总是-1。即使在下面的IF子句中也无法识别这一点。这是我的密码: sqlCommand2 = "SELECT * FROM database " &_ "WHERE row = 'whatever';" SET objRS2 = objConn.E
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)
致:
我现在的解决方案是执行一个
do WHILE NOT objRS2.EOF Counter up
子句,该子句有效。但我只是想了解为什么我的记录计数总是-1。如果在oRs.CursorLocation=3
和oRs行中使用仅向前的游标@trollwut,就会发生这种情况。打开strSQL,oConn,3,4
更改游标类型,这是John建议的,也是它不起作用的原因,没有必要改用断开连接的记录集。卢克·福特,你能改进一下你的答案吗?(或者我应该说……哈里森·天行者?啊啊啊啊啊啊啊……我需要周末。)@Trollwut-LOL,哈里森·天行者是新来的。我已经更新了答案以反映光标类型的更改。谢谢。谢谢,伙计,回答被采纳了!
SET objRS2 = RS(sqlCommand2)