UNLOCK |
Unlockpermet de déverrouiller soit un symbole, soit toutes les tables précédemmentverrouillées par l'utilisateur.
SYNTAXE 1
Unlockliste_classe
SYNTAXE 2
Unlockliste_symb
Elément | Description | Restrictions |
Liste de | Aucune. | |
classe : pour libérer la totalité d'unetable verrouillée | classe désigne l'abréviation d'une tableouverte. | |
liste de | Aucune. | |
pour libérer un "symbole"désigner sous forme : | ||
nom_de_variable. | Aucune. | |
Expression alphanumérique dont lerésultat est un nom_de_variable. | Aucune. | |
nom d'un serveur de tables. | Aucune. | |
nom_de_variable. | Aucune. |
# Libération du symbole 'SYMBOLE' préalablementverrouillé
# Lecture d'un enregistrementpour modification du champ ZONE
Trbegin TEST [TEST]
Readlock [TEST]CLE2(1) = date$
If [S]fstat
[TEST]ZONE +=100
Unlock [TEST]
Commit
Else
Rollback
Endif
# Il faut une cohérence entre le Lock et le Unlock
# on a 2 façons d'écrire : soit
SYMBOLE = "FUNSTOACC"
Lock=SYMBOLE With lockwait = 0
...
Unlock =SYMBOLE
# ou soit
LockFUNSTOACC With lockwait = 0
...
Unlock FUNSTOACC
Hors transaction ( c'est à dire Hors Trbegin- Commit ), l'instruction
L'instruction Unlockpermet de libérer soit un fichier globalement verrouillé, soit un symbolequelconque verrouillé par Lock, soit tous les enregistrements d'un fichier luspar Readlock ou par une boucle de lectures For munie de l'option With Lock.
L'instruction Unlockne modifie pas la variable fstat.
Un verrou mis sur une table est automatiquement supprimé lorsque la tableest fermée (c'est-à-dire non accessible et n'existant plus en mémoire, ce quiest le cas en particulier lorsque l'on quitte l'application). Ceci impliquequ'un Close File fait un Unlockimplicite. Cependant, pour garder une logique de programmation, il estconseillé de faire un Unlockmême si cette instruction doit être suivie d'un Close File.
A l'intérieur d'une transaction (après Trbegin) les enregistrements sontautomatiquement verrouillés si on les modifie, et déverrouillés à la fin de latransaction. Dans une transaction, un
Le Lock d'un symbole fait partie de la transaction en cours ; en cas deRollback, il est donc annulé tout comme les écritures sur fichier indexé.
On peut poser des verrous sur des symboles appartenant à une autreapplication que l'application courante (syntaxe 'Lock symbole Fromapplication'). Dans ce cas, faire
ERCLAS( 7) | L'abréviationfichier donnée ne correspond pas à un fichier actuellement ouvert. |
ERMODE(10) | Lesarguments ne sont pas du type voulu. |
LOCK - READLOCK - FOR - CLOSE - TRBEGIN- COMMIT - ROLLBACK - ADXTLK
Adonix X3(r) L4G |