记录集:锁定记录 (ODBC)

本主题适用于 MFC ODBC 类。

本主题介绍:

当你使用记录集来更新数据源上的记录时,你的应用程序可以锁定该记录,使其他用户无法同时更新该记录。 除非系统可以保证两个用户不能同时更新记录,否则由两个用户同时更新的记录的状态是未定义的。

注意

本主题适用于从 CRecordset 派生的对象,其中尚未实现批量提取行。 如果已实现批量行提取,则某些信息则不适用。 例如,无法调用 EditUpdate 成员函数。 有关批量行提取的详细信息,请参阅记录集:批量提取记录 (ODBC)

记录锁定模式

数据库类提供两种记录锁定模式

  • 乐观锁定(默认)

  • 悲观锁定

更新记录分三个步骤进行:

  1. 通过调用 Edit 成员函数开始操作。

  2. 更改当前记录的相应字段。

  3. 结束操作,并通过调用 Update 成员函数来正常提交更新。

乐观锁定仅在 Update 调用期间锁定数据源上的记录。 如果在多用户环境中使用乐观锁定,应用程序应会处理 Update 失败情况。 悲观锁定会在你调用 Edit 之后尽快锁定记录,并且在你调用 Update 之前不会释放它(失败是通过 CDBException 机制指示的,而不是由 Update 返回的 FALSE 值指示的)。 悲观锁定对其他用户有潜在的性能损失,因为必须要等到应用程序的 Update 过程完成后,才能对同一记录进行并发访问。

锁定记录集中的记录

如果要从默认值更改记录集对象的锁定模式,则必须在调用 Edit 之前更改模式。

更改记录集的当前锁定模式

  1. 调用 SetLockingMode 成员函数,指定 CRecordset::pessimisticCRecordset::optimistic

新的锁定模式将保持有效状态,直到再次更改它或记录集关闭。

注意

目前支持悲观锁定的 ODBC 驱动程序相对较少。

另请参阅

记录集 (ODBC)
记录集:执行联接 (ODBC)
记录集:添加、更新和删除记录 (ODBC)