无法查询 SQL 视图

Unable to query SQL view

我正在处理一个古老的经典 ASP 站点,运行 遇到了问题。我可以查询数据库 tables 但不能查询视图。

此查询 table return 的正确行数:

Set rs = Server.CreateObject("ADODB.Recordset")
sqlQuery = "SELECT * FROM tblContent;"
rs.Open sqlQuery, conn, 1, 2
response.write "q1 cnt = " & rs.RecordCount

视图上的相同查询 returns -1:

Set rs = Server.CreateObject("ADODB.Recordset")
sqlQuery = "SELECT * FROM myView;"
rs.Open sqlQuery, conn, 1, 2
response.write "q2 cnt = " & rs.RecordCount

如果 运行 来自 SQL Server Management Studio,两者都查询 return 正确的行数,但只有一个在从 .asp 网页调用时有效。这似乎适用于数据库中的所有 table 和视图(我已经测试了其中的六个)。

任何人都可以提供任何关于这里发生的事情的线索吗?

您正在请求可编辑的记录集,该记录集在查看时可能会失败。尝试打开默认的只进只读记录集

rs.Open sqlQuery, conn, adOpenForwardOnly, adLockReadOnly

rs.Open sqlQuery, conn, 0, 1

好的,这是我的评论作为回答

这是一个解决方法,它没有解释为什么 recordcount 属性 不适用于视图,但您可以使用 SQL 查询来计算行数,例如

Set rs = Server.CreateObject("ADODB.Recordset")
sqlQuery = "SELECT COUNT(*) as myrecordcount FROM myView;"
rs.Open sqlQuery, conn, 1, 2
response.write "q2 cnt = " & rs("myrecordcount")