更新时间:2022-04-05 16:00
一个CDaoRecordset对象表示从数据源中选择的一组记录。
作为“记录集”,CDaoRecordset对象在以下三种窗体中有效:
记录集的每个窗体表示记录集在打开时所固定的一组记录。在表型记录集或动态集型记录集中滚动到一个记录时,它反映了记录集打开后,由其它用户或者应用中其它记录集对记录所做的改动(快照型记录集不可更新)。可以直接使用CDaoRecordset,也可以从CDaoRecordset派生出一个应用指定记录集。然后可以:
类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