一個CDaoRecordset對象表示從數據源中選擇的一組記錄。
基本介紹
作為“記錄集”,CDaoRecordset對象在以下三種窗體中有效:
· | 表型記錄集表示一個基本表,可以用它從單個資料庫表中檢查、添加、改變或刪除記錄。 |
· | 動態集型記錄是一個查詢的結果,可以包含可更新的記錄。這個數據集是一組記錄,可以用它從一個或多個基本資料庫表中檢查、添加、改變或刪除記錄。動態集型記錄集包含來自一個資料庫中一個或多個表的欄位。 |
· | 快照型記錄集是一組記錄的一個靜態拷貝,可以用它查找數據或生成報表。這些記錄集可以包含來自一個資料庫中一個或多個表的欄位,不過不可更新。 |
記錄集的每個窗體表示記錄集在打開時所固定的一組記錄。在表型記錄集或動態集型記錄集中滾動到一個記錄時,它反映了記錄集打開後,由其它用戶或者套用中其它記錄集對記錄所做的改動(快照型記錄集不可更新)。可以直接使用CDaoRecordset,也可以從CDaoRecordset派生出一個套用指定記錄集。然後可以:
· | 在記錄集中滾動。 |
· | 設定索引並使用Seek快速查找記錄(只對表型記錄集)。 |
· | 基於字元串比較:“<”,“<=”,“=”,“>=”或“>”的記錄查找(對動態集型和快照型記錄集)。 |
· | 更新記錄並指定一種封鎖模式(除了數據源中選擇的記錄)。 |
· | 過濾數據集,以限制它從有效數據源中選擇的記錄。 |
· | 排序記錄集。 |
· | 參數化記錄集,按運行時才知道的信息定製選擇。 |
類CDaoRecordset提供了接口與類CRecordSet類似,主要區別在於類CDaoRecordset通過基於OLE的數據訪問對象(DAO)訪問數據。類CRecordSet通過開放資料庫連線(ODBC)和適用於此DBMS的ODBC驅動程式訪問DBMS。
注意:
DAO資料庫類與基於開放資料庫連線(ODBC)的MFC資料庫類截然不同。所有DAO資料庫類名均以“CDao”作前綴。你仍然可以用DAO類訪問ODBC數據源;由於DAO類指定於Microsoft Jet資料庫引擎,它們通常提供了超強的功能。
既可以直接使用CDaoRecordset,也可以由CDaoRecordset派生出一個類。兩種情況下,要使用記錄集類,需打開一個資料庫並構造記錄集對象,向構造程式傳送一個指向CDaoDatabase對象的指針。接下來調用記錄集的Open成員函式,指定對象是表型、動態集型還是快照型記錄集。調用Open,從資料庫中選擇數據並獲取第一條記錄。
使用對象的成員函式和數據成員,可以滾動並操縱記錄。操作有效性取決於對象是表型記錄集、動態集型記錄集還是快照型記錄集,並且它是可更新的還是唯讀的──這依賴於資料庫或開放資料庫連線(ODBC)數據源的功能。要更新Open調用之後可能已改變或添加的記錄,需調用對象的Requery成員函式。結束時調用對象的Close成員函式並銷毀這個對象。
CDaoRecordset使用DAO記錄欄位交換(DFX),以支持通過CDaoRecordset或CDaoRecordset派生類的安全型C++成員對記錄欄位的讀取更新。利用GetFieldValue和SetFieldValue,也可以不用DFX機制而實現對資料庫列的動態綁定。
#include <afxdao.h>