UNLOCK

Sommaire


Unlockpermet de déverrouiller soit un symbole, soit toutes les tables précédemmentverrouillées par l'utilisateur. 

 

Syntaxe

   SYNTAXE 1

   Unlockliste_classe

   SYNTAXE 2

   Unlockliste_symb

 

Paramètres

Elément

Description

Restrictions

liste_classe

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

Aucune.

classe

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

classe désigne l'abréviation d'une tableouverte.

liste_symb

liste desymb à 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 leré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éalablementverrouillé
   Unlock SYMBOLE

    # Lecture d'un enregistrementpour modification du champ ZONE
     Trbegin TEST [TEST]
     Readlock [TEST]CLE2(1) = date$
     If [S]fstat
        [TEST]ZONE +=100
       Rewrite [TEST]
        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
Lock FUNSTOACC With lockwait = 0
...
Unlock FUNSTOACC

 

Description et commentaires

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

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.

 

Remarques

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 Unlock est inefficace.  Les tablesverrouillées avant la transaction sont toutes déverrouillées, par contre lessymboles ne le seront pas.

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 Unlock d'un symbole supprime tous lesverrous posés par cette session Adonix dans cette application.

 

Erreurs associées

Erreur

Description

ERCLAS( 7)

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

ERMODE(10)

Lesarguments ne sont pas du type voulu.

 

Mots-clés associés

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


SOMMAIRE

Adonix X3(r) L4G
Copyright (c) Adonix 1999 - All rights reserved