我正在使用旧的经典ASP网站,并遇到问题。我可以查询数据库表,但不是视图。无法查询SQL视图
在桌子下面的查询返回正确的行数:
Set rs = Server.CreateObject("ADODB.Recordset")
sqlQuery = "SELECT * FROM tblContent;"
rs.Open sqlQuery, conn, 1, 2
response.write "q1 cnt = " & rs.RecordCount
在视图上相同的查询返回-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,但只有一个从.asp
网页调用时才起作用。这同样适用于数据库中的所有表格和视图(我已经测试了每个表格的几十个)。
任何人都可以提供任何线索,这是怎么回事?
一种可能的解决方法是在SQL级别对您的行进行计数。你可以把你的查询命令'SELECT COUNT(*)as myrecordcount FROM myView',并且你可以用rs(“myrecordcount”)显示这个值' – John
@John:谢谢。我仍然对上述问题感到困惑,但是您的解决方法完全符合我的需求,所以如果您将其作为答案,我会接受它。干杯。 – Robert
请注意,该视图的查询可能会*返回正确的行;它只是'.RecordCount'属性没有得到正确的值。所以另一个解决方法是将结果填入数组(使用'GetRows'),然后使用'UBound()'。 – Martha