记录集:锁定记录 (ODBC)
本主题适用于 MFC ODBC 类。
本主题介绍:
当你使用记录集来更新数据源上的记录时,你的应用程序可以锁定该记录,使其他用户无法同时更新该记录。 除非系统可以保证两个用户不能同时更新记录,否则由两个用户同时更新的记录的状态是未定义的。
注意
本主题适用于从 CRecordset
派生的对象,其中尚未实现批量提取行。 如果已实现批量行提取,则某些信息则不适用。 例如,无法调用 Edit
和 Update
成员函数。 有关批量行提取的详细信息,请参阅记录集:批量提取记录 (ODBC)。
记录锁定模式
数据库类提供两种记录锁定模式:
乐观锁定(默认)
悲观锁定
更新记录分三个步骤进行:
乐观锁定仅在 Update
调用期间锁定数据源上的记录。 如果在多用户环境中使用乐观锁定,应用程序应会处理 Update
失败情况。 悲观锁定会在你调用 Edit
之后尽快锁定记录,并且在你调用 Update
之前不会释放它(失败是通过 CDBException
机制指示的,而不是由 Update
返回的 FALSE 值指示的)。 悲观锁定对其他用户有潜在的性能损失,因为必须要等到应用程序的 Update
过程完成后,才能对同一记录进行并发访问。
锁定记录集中的记录
如果要从默认值更改记录集对象的锁定模式,则必须在调用 Edit
之前更改模式。
更改记录集的当前锁定模式
- 调用 SetLockingMode 成员函数,指定
CRecordset::pessimistic
或CRecordset::optimistic
。
新的锁定模式将保持有效状态,直到再次更改它或记录集关闭。
注意
目前支持悲观锁定的 ODBC 驱动程序相对较少。