我在ASP頁面中查詢。在某些條件之後,我必須在3個不同的表中打印記錄集。所以,爲了避免將3次幾乎延伸到相同的查詢,我決定搜索記錄集以獲得所需的結果...所以我需要兩次創建一個RS.MoveFirst。 但是...當我用SQL Profiler分析時,我看到MoveFirst操作重新執行我的查詢......正是我想避免的。 如何緩存結果並只移動記錄集?如何避免在MoveFirst上重新執行查詢
3
A
回答
2
使用斷開連接的記錄
Const adOpenStatic = 3
Const adUseClient = 3
Const adLockOptimistic = 3
Dim conn: Set conn = Server.CreateObject("ADODB.Connection")
conn.Open sYourConnectionString
Dim rs : Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = adUseClient
rs.Open sYourSQL, conn, adOpenStatic, adLockOptimistic
Set rs.ActiveConnection = Nothing
conn.close
'' // You can now roam around the recordset with .MoveFirst, .MoveNext etc without
'' // incurring any further hits on the DB.
需要注意的是,如果你有參數提供給您的SQL,你需要使用的連接和記錄之間的ADODB.Command
對象(不要試圖使用字符串連接) 。仍然原則是相同的使用客戶端光標位置和靜態記錄集,然後分離和關閉連接。
+0
'''adOpenStatic = 3''' 使用靜態遊標。 **可用於查找數據或生成報告的一組記錄**的靜態副本。其他用戶的添加,更改或刪除不可見。 https://msdn.microsoft.com/en-us/library/ee252445(v=bts.10).aspx – 2018-01-04 16:15:41
1
我個人簡單地使用rs.getRows()
並導航到陣列中......不僅是U確保你永遠再次命中數據庫,你應該看你用它
相關問題
- 1. 避免重複子查詢
- 2. 如何避免子查詢?
- 3. 避免在查詢
- 4. 如何避免多次執行相同的查詢?
- 5. 如何在另一個查詢MySQL上執行更新查詢?
- 6. 在排序時避免從Access重新查詢mysql db
- 7. 避免巢查詢
- 8. JPA避免查詢
- 9. MySQL查詢 - 避免重複條目
- 10. 試圖避免重複查詢
- 11. 避免在列中進行重複計算? SQL Server查詢
- 12. 如何避免進程的shell執行?
- 13. 如何避免在$ rootScope上執行$ diges操作?
- 14. 如何避免在Git存儲庫分支上重複執行代碼
- 15. 如何避免查詢結果爲無?
- 16. MySQL - 如何避免查詢鎖定
- 17. 如何在查詢上執行OUTER JOIN
- 18. 如何在iOS上執行DNS查詢
- 19. 如何避免在iPhone上重新加載地圖
- 20. 如何避免遊標語句執行,如果沒有記錄重新調用
- 21. 如何避免Codeigniter在頁面刷新上執行自動保存?
- 22. 如何避免在循環中運行MySQL查詢?
- 23. 避免重複行
- 24. 重新構建EF4查詢以避免解析錯誤?
- 25. 如何避免重複執行與蛋糕模式的混合
- 26. 避免重新運行的遷移
- 27. 如何避免多次執行的服務中的查詢(獲取)?
- 28. 如何避免重複值的查詢表
- 29. 如何避免多次重複數據庫查詢
- 30. 如何避免SQL中的子查詢重複?
快照或動態數據集,性能每次一個巨大的收穫?是否使用了dbSeeChanges? – 2009-08-07 11:47:01
forwardonly(默認) Obs:在查詢的第一次執行後,我不需要進行更改 – Roxana 2009-08-07 12:08:43