Partager via


Recordset : verrouillage d'enregistrements (ODBC)

Cette rubrique s'applique aux classes ODBC MFC.

Cette rubrique explique :

  • les différents modes de verrouillage disponibles ;

  • comment verrouiller les enregistrements du recordset lors de mises à jour.

Lorsque vous utilisez un recordset pour modifier un enregistrement de la source de données, l'application peut verrouiller l'enregistrement afin qu'aucun autre utilisateur ne puisse le modifier en même temps. Comme l'état d'un enregistrement modifié simultanément par deux utilisateurs est imprévisible, il importe que le système puisse garantir que deux utilisateurs ne peuvent pas modifier simultanément un même enregistrement.

Notes

Cette rubrique s'applique aux objets dérivés de CRecordset dans lesquels l'extraction de lignes en bloc n'a pas été implémentée. Si vous avez implémenté l'extraction de lignes en bloc, certaines des informations ne s'appliquent pas. Par exemple, vous ne pouvez pas appeler les fonctions membres Edit et Update. Pour plus d'informations sur l'extraction de lignes en bloc, consultez Recordset : extraction globale d'enregistrements (ODBC).

Types de verrouillage d'enregistrements

Les classes de base de données fournissent deux types de verrouillages d'enregistrements :

  • le verrouillage optimiste (mode par défaut) ;

  • le verrouillage pessimiste.

La mise à jour d'un enregistrement se décompose en trois étapes :

  1. Commencez par appeler la fonction membre Edit.

  2. Modifiez les champs appropriés de l'enregistrement courant.

  3. Terminez l'opération — et en principe validez la mise à jour — en appelant la fonction membre Update.

Le verrouillage optimiste verrouille l'enregistrement de la source de données uniquement pendant l'appel de la fonction Update. Si vous utilisez le verrouillage optimiste dans un environnement multi-utilisateur, l'application doit gérer une condition d'échec de la fonction Update. Le verrouillage pessimiste verrouille l'enregistrement dès que vous appelez Edit et ne le libère pas tant que vous n'avez pas appelé Update (les échecs sont signalés via CDBException, et non par la valeur FALSE retournée par Update). Le verrouillage pessimiste pénalise potentiellement les performances des autres utilisateurs, car les accès simultanés au même enregistrement doivent attendre la fin complète du processus Update de votre application.

Verrouillage d'enregistrements du recordset

Si vous voulez modifier le mode de verrouillage par défaut d'un objet recordset, vous devez le modifier avant d'appeler Edit.

Pour modifier le mode de verrouillage actif d'un recordset

  • Appelez la fonction membre SetLockingMode, en spécifiant CRecordset::pessimistic ou CRecordset::optimistic.

Le nouveau mode de verrouillage demeure effectif tant que vous ne le modifiez pas à nouveau ou que le recordset n'est pas fermé.

Notes

Très peu de pilotes ODBC prennent actuellement en charge le verrouillage pessimiste.

Voir aussi

Concepts

Recordset (ODBC)

Recordset : création d'une jointure (ODBC)

Recordset : ajout, modification et suppression d'enregistrements (ODBC)