COMMIT |
Commitpermet de valider une transaction.
Commit
# Transaction : on débite un compte CPT_D et crédite un compte CPT_C
# d'une même valeur TRANSFERT. Au retour du sous-programme,
# SUCCES=1 si tout s'est bien passé et SUCCES=0 sinon.
#
TRANSFERT_SOMME
# Début de transaction
Trbegin COMPTE
#
# On débite le premier compte
Readlock [CPT]NOCPT = CPT_D
If fstat : Goto ABANDON : Endif
[CPT]SOLDE -= TRANSFERT
Rewrite [CPT]
If fstat : Goto ABANDON : Endif
#
# On crédite le second compte
Readlock [CPT]NOCPT = CPT_C
If fstat : Goto ABANDON : Endif
[CPT]SOLDE += TRANSFERT
Rewrite [CPT]
If fstat : Goto ABANDON : Endif
#
# Validation de la transaction et retour.
Commit : SUCCES = 1
Return
#
# Annulation de la transaction et retour en cas d'erreur
ABANDON
Rollback : SUCCES = 0
Return
Commitpermet de valider une transaction, c'est-à-dire un ensemble d'opérations de mise à jour de fichiers et/ou de compteurs ayant débuté par l'instruction Trbegin, et devant être validées globalement.
Les fichiers qui étaient ouverts avant la transaction le restent, les fichiers ouverts par Trbegin, ou après Trbegin, sont refermés, exception faite des fichiers re-déclarés en utilisant une abréviation déjà existante.
Commitne peut être fait que dans le programme ou le sous-programme qui a initié la transaction. On ne doit donc jamais trouver d'ordre Commit dans les programmes de déroutement d'erreur (Onerrgo), de déconnexion (actihgup) ou d'interrruption (Onintgo).
Commitdéverrouille tous les verrous posés sur les tables et enregistrements et les symboles verrouillés pendant la transaction. Commit déverrouille aussi les verrous posés avant le début de la transaction sauf ceux posés sur des symboles.
La mise à jour de la base de données ne se fait qu'au moment du Commit. Avant le commit, les données nouvelles ou modifiées ne sont pas visibles par les autres utilisateurs.
Sur une toute base de donnée, la journalisation est systématique et son paramétrage est interne à ce produit.
Commitne renvoie aucun statut particulier.
ERRET(32) | Transaction initiée à un niveau supérieur. |
PADTRAN(48) | Pasde transaction en cours. |
Adonix X3(r) L4G |