我正在使用舊的經典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