记录集:锁定记录 (ODBC)
更新:2007 年 11 月
本主题适用于 MFC ODBC 类。
本主题阐释:
可用的记录锁定种类。
更新期间锁定记录集中的记录的方式。
使用记录集更新数据源上的数据时,应用程序可以锁定记录,这样其他用户就无法同时更新该记录。由两个用户同时更新的记录的状态是未定义的,除非系统可以保证两个用户无法同时更新记录。
说明: |
---|
本主题适用于从 CRecordset 派生的对象,这些对象中尚未实现批量取行。如果已实现批量取行,则某些信息将不适用。例如,无法调用 Edit 和 Update 成员函数。有关批量取行的更多信息,请参见记录集:批量获取记录 (ODBC)。 |
记录锁定模式
数据库类提供两种记录锁定模式:
开放式锁定(默认)
保守式锁定
更新记录需要三步:
开放式锁定仅在调用 Update 期间锁定数据源上的记录。如果在多用户环境中使用开放式锁定,则应用程序将处理 Update 失败情况。只要调用了 Edit,保守式锁定就锁定记录,直到调用 Update 时才释放记录(失败由 CDBException 机制指示,而不是通过 Update 返回的 FALSE 值指示)。对于其他用户,保守式锁定有潜在的性能缺陷,因为它们对同一记录的并行访问可能必须要等到您的应用程序完成 Update 进程后才能进行。
锁定记录集中的记录
如果要更改记录集对象的锁定模式默认状态,则必须在调用 Edit 前更改此模式。
更改记录集的当前锁定模式
- 通过指定 CRecordset::pessimistic 或 CRecordset::optimistic 来调用 SetLockingMode 成员函数。
新锁定模式在再次更改锁定模式或记录集关闭之前一直保持有效。
说明: |
---|
当前只有相对较少的 ODBC 驱动程序支持保守式锁定。 |