CRecordset类
https://blog.csdn.net/elcoteq983/article/details/7000745
CRecordset::Open
virtual BOOL Open(
UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE,
LPCTSTR lpszSQL = NULL,
DWORD dwOptions = none
);
nOpenType
接受默认值AFX_DB_USE_DEFAULT_TYPE,或使用枚举OpenType中的以下值之一:
CRecordset :: dynaset具有双向滚动的记录集。打开记录集时确定记录的成员资格和顺序,但是在获取操作之后,其他用户对数据值所做的更改是可见的。动态集也称为键集驱动的记录集。
CRecordset :: snapshot具有双向滚动的静态记录集。记录集打开时确定记录的成员资格和顺序;获取记录时确定数据值。在记录集关闭然后重新打开之前,其他用户所做的更改不可见。
CRecordset :: dynamic具有双向滚动的记录集。在获取操作之后,其他用户对成员资格,排序和数据值所做的更改是可见的。请注意,许多ODBC驱动程序不支持此类型的记录集。
CRecordset :: forwardOnly只有前滚动的只读记录集。
对于CRecordset,默认值为CRecordset
:: snapshot。默认值机制允许Visual C
++向导与ODBC
CRecordset和DAO
CDaoRecordset交互,它们具有不同的默认值。
有关这些记录集类型的详细信息,请参阅文章Recordset(ODBC)。有关相关信息,请参阅Windows SDK中的文章“使用块和可滚动游标”。
lpszSQL
包含以下内容之一的字符串指针:
一个NULL指针。
表的名称。
SQL SELECT语句(可选择使用SQL WHERE或ORDER BY子句)。
一个CALL语句,指定预定义查询(存储过程)的名称。 请注意,不要在花括号和CALL关键字之间插入空格。
有关此字符串的更多信息,请参阅表和在备注下对ClassWizard角色的讨论。
注意
结果集中列的顺序必须与DoFieldExchange或DoBulkFieldExchange函数覆盖中的RFX或Bulk RFX函数调用的顺序相匹配。
dwOptions
一个位掩码,可以指定下面列出的值的组合。 其中一些是相互排斥的。 默认值为none。
CRecordset
:: none没有设置选项。 此参数值与所有其他值互斥。 默认情况下,可以使用“编辑”或“删除”更新记录集,并允许使用AddNew追加新记录。 可更新性取决于数据源以及您指定的nOpenType选项。 无法优化批量添加。 批量行提取将不会实现。 记录集导航期间不会跳过已删除的记录。 书签不可用。 实现自动脏字段检查。
CRecordset
:: appendOnly不允许在记录集上编辑或删除。 仅允许AddNew。 此选项与CRecordset
:: readOnly互斥。
CRecordset
:: readOnly以只读方式打开记录集。 此选项与CRecordset
:: appendOnly互斥。
……
返回值
如果CRecordset对象已成功打开,则为非零; 否则为0,如果CDatabase
:: Open(如果被调用)返回0。
备注
您必须调用此成员函数来运行记录集定义的查询。 在调用Open之前,必须构造记录集对象。
此记录集与数据源的连接取决于在调用Open之前构造记录集的方式。 如果将CDatabase对象传递给尚未连接到数据源的记录集构造函数,则此成员函数使用GetDefaultConnect尝试打开数据库对象。 如果将NULL传递给记录集构造函数,则构造函数会为您构造CDatabase对象,而Open会尝试连接数据库对象。 有关在这些不同情况下关闭记录集和连接的详细信息,请参阅关闭。