Bloque un enregistrement et restreint l'accès à cet enregistrement pour toutes les autres applications. L'enregistrement pourra ensuite être débloqué grâce à la fonction
HDébloqueNumEnr.
Remarque : Après l'exécution de la fonction HBloqueNumEnr, plusieurs cas peuvent se présenter :
- L'enregistrement est déjà bloqué par une autre application : le blocage ne peut pas être effectué.
- Le fichier de données contenant l'enregistrement est bloqué en totalité : le blocage ne peut pas être effectué.
Par défaut, une
gestion automatique des erreurs de blocages et des conflits de modification est effectuée (sauf dans le code des procédures stockées). A tout moment, il est possible de personnaliser ou de débrancher cette gestion automatique des erreurs avec la fonction
HSurErreur.
Lors d'un problème de blocage, la fonction
HErreurBlocage renvoie
Vrai.
// Blocage d'un enregistrement du fichier de données Client
HBloqueNumEnr(Client, hNumEnrEnCours, hBlocageLectureEcriture)
// Traitement sur l'enregistrement
...
// Redonner l'accès à l'enregistrement
HDébloqueNumEnr()
Syntaxe
<Résultat> = HBloqueNumEnr([<Fichier de données> [, <Enregistrement à bloquer>]] [, <Blocage>])
<Résultat> : Booléen
- Vrai si l'opération a été réalisée,
- Faux en cas de problème. La fonction HErreur permet d'identifier l'erreur.
<Fichier de données> : Chaîne de caractères optionnelle (avec ou sans guillemets)
Nom du fichier de données manipulé.
Si ce nom n'est pas spécifié, la fonction HBloqueNumEnr va manipuler le dernier fichier de données utilisé par la dernière fonction de gestion HFSQL (fonction commençant par la lettre H).
<Enregistrement à bloquer> : Entier optionnel
Numéro de l'enregistrement à bloquer.
Si ce paramètre n'est pas spécifié, la fonction HBloqueNumEnr va manipuler l'enregistrement en cours.
<Blocage> : Constante optionnelle de type entier
Permet de déterminer le type de blocage effectué sur l'enregistrement. | |
hBlocageEcriture (valeur par défaut) | Blocage en écriture : l'enregistrement du fichier de données pourra être lu par une autre application mais ne pourra pas être modifié par une autre application. Aucun blocage sur l'enregistrement ou le fichier de données ne pourra être défini par une autre application. |
hBlocageLectureEcriture | Blocage en lecture/écriture : l'enregistrement du fichier de données ne pourra ni être lu ni être modifié par une autre application. Aucun blocage sur l'enregistrement ou le fichier de données ne pourra être défini par une autre application. |
hBlocageNon | Aucun blocage : l'enregistrement pourra être lu ou modifié par une autre application. |
Remarques
Modification du type de blocage sur un enregistrement
Pour modifier le type de blocage d'un enregistrement, appelez la fonction
HBloqueNumEnr avec le type de blocage souhaité. Il n'est pas nécessaire de débloquer l'enregistrement au préalable.
Influence du mode de blocage
Si le fichier de données est en mode de blocage
hModeMono (voir la fonction
HMode), la fonction
HBloqueNumEnr n'a aucun effet.
Echec du blocage
Si l'enregistrement est déjà bloqué, la demande de blocage est répétée H.NbEssais fois (50 par défaut).
Si au bout des H.NbEssais tentatives le fichier de données ne peut être bloqué, la fonction
HErreurBlocage renvoie
Vrai. La variable H.Niveau indique si l'enregistrement ou le fichier de données est bloqué.
Nombre de blocages
Le nombre d'enregistrements pouvant être bloqués individuellement dans un fichier de données est illimité.