L4G >  Unlock  

Afficher tout Masquer tout

Unlock permet de déverrouiller soit un symbole, soit toutes les tables précédemment verrouillées par l'utilisateur. 

 

Syntaxe

   SYNTAXE 1

   Unlock liste_classe

   SYNTAXE 2

   Unlock liste_symb

 

Paramètres

Elément

Description

Restrictions

liste_classe

Liste de classe à libérer, séparés par le caractère ','.

Aucune.

classe

classe : pour libérer la totalité d'une table verrouillée

classe désigne l'abréviation d'une table ouverte.

liste_symb

liste de symb à libérer séparés par un '.'

Aucune.

symb

pour libérer un "symbole" désigner sous forme :
symbole [From [serveur@]appli]
'='
expr_c [From [serveur@]appli]

spacer.gif (822 octets)

symbole

nom_de_variable.

Aucune.

expr_c

Expression alphanumérique dont le résultat est un nom_de_variable.

Aucune.

serveur

nom d'un serveur de tables.

Aucune.

appli

nom_de_variable.

Aucune.

 

Exemples

   # Libération du symbole 'SYMBOLE' préalablement verrouillé
    Unlock SYMBOLE

    # Libération d'un enregistrement verrouillé
     Readlock [TEST]CLE2(1) = date$
     If [S]fstat
        [TEST]ZONE += 100
       
Rewrite [TEST]
        Unlock
[TEST]
     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
Lock FUNSTOACC With lockwait = 0
...
Unlock FUNSTOACC

 

Description

Hors transaction ( c'est à dire Hors Trbegin- Commit ), l'instruction Unlock déverrouille toutes les tables précédemment verrouillées par l'utilisateur. Dans une transaction, l'instruction Unlock est inefficace.   

L'instruction Unlock permet de libérer soit un fichier globalement verrouillé, soit un symbole quelconque verrouillé par Lock, soit tous les enregistrements d'un fichier lus par Readlock ou par une boucle de lectures For munie de l'option With Lock.

L'instruction Unlock ne modifie pas la variable fstat.

 

Remarques

Un verrou mis sur une table est automatiquement supprimé lorsque la table est fermée (c'est-à-dire non accessible et n'existant plus en mémoire, ce qui est le cas en particulier lorsque l'on quitte l'application). Ceci implique qu'un Close File fait un Unlock implicite. Cependant, pour garder une logique de programmation, il est conseillé de faire un Unlock même si cette instruction doit être suivie d'un Close File.

A l'intérieur d'une transaction (après Trbegin) les enregistrements sont automatiquement verrouillés si on les modifie, et déverrouillés à la fin de la transaction. Dans une transaction, un Unlock est inefficace.  Les tables verrouillées avant la transaction sont toutes déverrouillées, par contre les symboles ne le seront pas.

Le Lock d'un symbole fait partie de la transaction en cours ; en cas de Rollback, il est donc annulé tout comme les écritures sur fichier indexé.

On peut poser des verrous sur des symboles appartenant à une autre application que l'application courante (syntaxe 'Lock symbole From application'). Dans ce cas, faire Unlock d'un symbole supprime tous les verrous posés par cette session Adonix dans cette application.

 

Erreurs associées

Erreur

Description

ERCLAS ( 7)

L'abréviation fichier donnée ne correspond pas à un fichier actuellement ouvert.

ERMODE (10)

Les arguments ne sont pas du type voulu.

 

Mots-clés associés

LOCK - READLOCK - FOR - CLOSE - TRBEGIN - COMMIT - ROLLBACK - ADXTLK