Conjunto de registros: Bloquear registros (ODBC)

Este tema es aplicable a las clases ODBC de MFC.

En este tema se explica:

Cuando se usa un conjunto de registros para actualizar un registro en el origen de datos, la aplicación puede bloquear el registro para que ningún otro usuario pueda actualizar el registro al mismo tiempo. El estado de un registro actualizado por dos usuarios al mismo tiempo es indefinido a menos que el sistema pueda garantizar que dos usuarios no pueden actualizar un registro simultáneamente.

Nota:

Este tema se aplica a objetos derivados de CRecordset donde no se haya implementado la obtención masiva de filas. Si ha implementado la obtención masiva de filas, parte de esta información será irrelevante. Por ejemplo, no puede llamar a las funciones miembro Edit y Update. Para más información sobre la obtención masiva de filas, vea Conjunto de registros: obtener registros de forma masiva (ODBC).

Modos de bloqueo de registros

Las clases de base de datos proporcionan dos modos de bloqueo de registros:

  • Bloqueo optimista (valor predeterminado)

  • Bloqueo pesimista

La actualización de un registro se produce en tres pasos:

  1. La llamada a la operación comienza con la función miembro Edit.

  2. Se cambian los campos adecuados del registro actual.

  3. Se finaliza la operación (y normalmente se confirma la actualización) mediante una llamada a la función miembro Update.

El bloqueo optimista bloquea el registro en el origen de datos solo durante la llamada a Update. Si usa el bloqueo optimista en un entorno multiusuario, la aplicación debe controlar una condición de error Update. El bloqueo pesimista bloquea el registro tan pronto como se llama a Edit y no lo libera hasta que se llama a Update (los errores se indican a través del mecanismo CDBException, no por un valor de FALSE devuelto por Update). El bloqueo pesimista tiene una posible penalización de rendimiento para otros usuarios, ya que es posible que el acceso simultáneo al mismo registro tenga que esperar hasta que finalice el proceso Update de la aplicación.

Bloque de registros en el conjunto de registros

Si desea cambiar el valor predeterminado del modo de bloqueo de un objeto de conjunto de registros, debe cambiar el modo antes de llamar a Edit.

Para cambiar el modo de bloqueo actual del conjunto de registros

  1. Llame a la función miembro SetLockingMode, especificando CRecordset::pessimistic o CRecordset::optimistic.

El nuevo modo de bloqueo permanece en vigor hasta que vuelva a cambiarlo o se cierre el conjunto de registros.

Nota:

Actualmente, relativamente pocos controladores ODBC admiten el bloqueo pesimista.

Consulte también

Conjunto de registros (ODBC)
Conjunto de registros: Realizar una combinación (ODBC)
Conjunto de registros: Agregar, actualizar y eliminar registros (ODBC)