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
<Source>.DébloqueNumEnr.
Remarque : Après l'exécution de la fonction <Source>.BloqueNumEnr, 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
<Source>.SurErreur.
Lors d'un problème de blocage, la fonction
HErreurBlocage renvoie
Vrai.
Attention : Cette fonction
<Source>.BloqueNumEnr doit être utilisée avec précaution : en effet, lors du blocage, l'enregistrement n'est pas re-lu. Il peut donc avoir été supprimé ou modifié depuis le dernier accès à cet enregistrement. Il est conseillé d'utiliser la fonction
<Source>.Lit avec option de blocage.
// Blocage d'un enregistrement du fichier de données Client
Client.BloqueNumEnr(hNumEnrEnCours, hBlocageLectureEcriture)
// Traitement sur l'enregistrement
...
// Redonner l'accès à l'enregistrement
Client.DébloqueNumEnr()
Syntaxe
<Résultat> = <Source>.BloqueNumEnr([<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.
<Source> : Type correspondant à la source spécifiée
Nom du fichier de données manipulé.
<Enregistrement à bloquer> : Entier optionnel
Numéro de l'enregistrement à bloquer.
Si ce paramètre n'est pas spécifié, la fonction <Source>.BloqueNumEnr 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. Il sera impossible pour cette autre application de bloquer l'enregistrement ou le fichier de données. |
hBlocageLectureEcriture | Blocage en lecture/écriture : l'enregistrement du fichier de données ne pourra ni être lu ni être modifié par une autre application. Il sera impossible pour cette autre application de bloquer l'enregistrement ou le fichier de données. |
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
<Source>.BloqueNumEnr 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
<Source>.Mode), la fonction
<Source>.BloqueNumEnr 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é.