您當前位置:
首頁 >
數據庫 >
數據庫應用 > 關于ADO記錄集GetRecordCount()返回記錄條數-1的問題
關于ADO記錄集GetRecordCount()返回記錄條數-1的問題
來源:程序員人生 發布時間:2015-03-13 08:09:27 閱讀次數:4053次
ADO方式操作數據庫我們通常使用GetRecordCount函數來快速判斷1個打開的記錄集里面總共有多少條記錄,但在使用中有時卻發現有時可能查不到任何的數據,跟蹤發現GetRecordCount()返回值變成了⑴,而且記錄集里也有記錄存在。
1般情況下當ADO不能肯定記錄條數,或連接提供者、游標類型都不支持RecordCount的時候,RecordCount屬性都將返回⑴。
最經常使用的兩個游標類型是:
adUseClient
使用由本地游標庫提供的客戶端游標。本地游標引擎通常允許使用的許多功能多是驅動程序提供的游標沒法使用的,因此使用該設置對那些將要啟用的功能是有好處的。adUseClientBatch與 adUseClient同義,也支持向后兼容性。
adUseServer
默許值。使用數據提供者或驅動程序提供的游標。這些游標有時非常靈活,對其他用戶對數據源所作的更改具有額外的敏感性。但是,Microsoft Client Cursor Provider(如已斷開關聯的記錄集)的某些功能沒法由服務器端游標摹擬,通過該設置將沒法使用這些功能。
這是MSDN上的解釋,補充說明:使用adUseClient就是表示數據需要傳輸到客戶端后再進行操作,不具有同步。它能更好的支持RecordCount屬性,這樣對性能的影響比較大,如果數據很多會更明顯。adUseServer是直接在數據庫中操作,處理的速度比較快。在其他的很多方面adUesServer很有限制。
如何正確使用RecordCount屬性,我們只需在使用時設置好游標(靜態/客戶):
在m_pSet->Open()前加上:
m_pSet->CursorType = adOpenStatic;
m_pSet->CursorLocation = adUseClient;
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
------分隔線----------------------------
------分隔線----------------------------