FirebirdSQL logo
 Variables de contexteSécurité 

Paramètres de la transaction

Les principales caractéristiques d’une transaction sont :

  • Mode d’accès aux données (READ WRITE, READ ONLY) ;

  • Mode de résolution du verrouillage (WAIT, NO WAIT) avec possibilité de spécification supplémentaire de LOCK TIMEOUT ;

  • niveau d’isolation (READ COMMITTED, SNAPSHOT, SNAPSHOT TABLE STABILITY) ;

  • un moyen de réserver ou de libérer des tables (la proposition "RESERVING").

Nom de la transaction

La clause optionnelle NAME spécifie le nom de la transaction. La clause NAME n’est disponible qu’en Embedded SQL. Si aucune clause NAME n’est spécifiée, l’instruction SET TRANSACTION s’applique à la transaction par défaut. Les transactions nommées permettent d’exécuter plusieurs transactions actives simultanément dans la même application. Une variable du langage de base du même nom doit être déclarée et initialisée. En DSQL, cette limitation empêche la spécification dynamique des noms de transaction.

Mode d’accès

Il existe deux modes d’accès aux données de la base de données pour les transactions : READ WRITE et READ ONLY.

  • Avec le mode d’accès READ WRITE, les opérations dans le contexte de cette transaction peuvent être à la fois des opérations de lecture et de modification de données.Il s’agit du mode par défaut.

  • En mode READ ONLY, seules les opérations SELECT de données peuvent être effectuées dans le contexte de cette transaction.Toute tentative de modification des données dans le contexte d’une telle transaction entraînera une exception de base de données.Cependant, cela ne s’applique pas aux tables temporaires globales (GTT) qui peuvent être modifiées dans les transactions READ ONLY.

Les constantes suivantes sont fournies dans l’API Firebird pour les modes d’accès : isc_tpb_write correspond au mode READ WRITE, isc_tpb_read — READ ONLY.

Mode de résolution de verrouillage

Lorsque plusieurs applications clientes travaillent avec la même base de données, des verrous peuvent apparaître. Un verrou peut se produire lorsqu’une transaction apporte des modifications non approuvées à une ligne de la table ou supprime une ligne, et qu’une autre transaction tente de modifier ou de supprimer la même ligne. De tels verrous sont appelés conflits de mise à jour.

Les blocages peuvent également se produire dans d’autres situations lors de l’utilisation de certains niveaux d’isolation des transactions.

Il existe deux modes de résolution du verrouillage : WAIT et NO WAIT.