RDB$GET_TRANSACTION_CN()
DSQL, PSQL
RDB$GET_TRANSACTION_CN (transaction_id)
| Paramètre | Description | 
|---|---|
transaction_id  | 
Numéro de transaction (identifiant)  | 
BIGINT
Renvoie le numéro d’engagement pour une transaction donnée.
| 
 Note 
 | 
 Les mécanismes internes de Firebird utilisent un entier non signé de 8 octets pour le Commit Number et un entier non signé de 6 octets pour le numéro de transaction. Par conséquent, même si le langage SQL n’a pas d’entiers non signés, et que   | 
Si la fonction RDB$GET_TRANSACTION_CN renvoie une valeur supérieure à 1, il s’agit du (Commit Number) réel de la transaction, c’est-à-dire que la transaction a été validée après le démarrage de la base de données.
Dans d’autres cas, la fonction peut renvoyer l’un des résultats suivants indiquant l’état de validation de la transaction :
-2 
 | 
 transactions mortes (annulées) ;  | 
-1 
 | 
 Transactions suspendues (en état de limbo 2PC transactions) ;  | 
 0
 | 
 transactions actives ;  | 
 1
 | 
 pour les transactions validées avant le démarrage de la base de données ou avec un numéro inférieur à OIT (Oldest Interesting Transaction) ;  | 
NULL 
 | 
 : Si le numéro de transaction est   | 
RDB$GET_TRANSACTION_CNselect rdb$get_transaction_cn(current_transaction) from rdb$database;
select rdb$get_transaction_cn(123) from rdb$database;
- Fonction
 - 
Retourne le numéro de commit de la transaction donnée. Le type de résultat est BIGINT.
 
| 
 Note 
 | 
 Remarques : 
le moteur utilise en interne des entiers non signés de 8 octets pour les numéros de commit, et des entiers non signés de 6 octets pour les numéros de transaction. Ainsi, malgré que le langage SQL n'ait pas d'entiers non signés et que RDB$GET_TRANSACTION_CN retourne BIGINT signés, il est impossible de voir des nombres de commit négatifs à l'exception des quelques valeurs spéciales utilisées pour les transactions non commises. En résumé, les nombres retournés par RDB$GET_TRANSACTION_CN peuvent avoir les valeurs suivantes : -2 - la transaction est morte (annulée) -1 - la transaction est dans les limbes 0 - la transaction est active, 1 - la transaction a été effectuée avant le démarrage de la base de données ou moins que la base de données. Transaction intéressante la plus ancienne >1 - transaction effectuée après le démarrage de la base de données NULL - le numéro de transaction donné est NULL ou supérieur à celui de la base de données Next Transaction (Transaction suivante)  | 
Voir aussi README.read_consistency.md
Format : RDB$GET_TRANSACTION_CN( <numéro de transaction> )
Exemples :
	select rdb$get_transaction_cn(current_transaction) from rdb$database ;
	select rdb$get_transaction_cn(123) from rdb$database ;
| 
 Note 
 | 
 Pour plus d’informations sur le Commit Number, reportez-vous aux Firebird 4.0 Release Notes.  |