|
| Débuté par j.bossut, 08 déc. 2004 10:53 - 4 réponses |
| |
| | | |
|
| |
| Posté le 08 décembre 2004 - 10:53 |
J'ai un problème avec le blocage d'enregistrements
voici mon code : HLitRecherche(Controleur,IDControleur,Main.Table_Controleur.IDControleur,hIdentique+hBlocageEcriture) SI HTrouve(Controleur) ALORS SI HErreurBlocage() ALORS BLOK..Etat=Visible ModeOuverture="Visu" ExécuteTraitement(F_Controleurs,trtInit) FIN FichierVersEcran()
Le problème est que lorsque l'enregistrement est bloqué en ecriture, je ne peux même pas y accéder en lecture donc je ne passe jamais dans la fonction H trouve |
| |
| |
| | | |
|
| | |
| |
| Posté le 08 décembre 2004 - 11:30 |
Votre traitement inverse l'ordre du test. L'accès à l'enregistrement doit être testé avant de savoir s'il a été trouvé ou non. Ainsi le test de <HErreurBlocage> doit être avant celui de <HTrouve>.
Voici un exemple qui je l'espère pourra vous orienter :
HLitRecherche(Controleur,IDControleur,Main.Table_Controleur.IDControleur,hIdentique+hBlocageEcriture)
SI pas HErreurBlocage() ALORS
// Ok on a lu est bloqué SI HTrouve(Controleur) ALORS // Ok l'enregistrement est lu, trouvé et est bloqué... SINON Info("L'enregistrement n'a pas été trouvé.") FIN SINON
// Blocage de l'accès au fichier ou a l'enregistrement // On va tenter de le lire sans blocage HLitRecherche(Controleur,IDControleur,Main.Table_Controleur.IDControleur,hIdentique) SI pas HErreurBlocage() ALORS
SI HTrouve(Controleur) ALORS // Ok on a lu l'enregistrement mais il est bloqué par un autre poste // consultation seule ... …
Respectueuses salutations. Jean MOREL (jeanmorel@ifrance.com) |
| |
| |
| | | |
|
| | |
| |
| Posté le 08 décembre 2004 - 15:57 |
Je ne vois pas de différence avec mon code le problème est que lors de l'execution de la fonction: HLitRecherche(Controleur,IDControleur,Main.Table_Controleur.IDControleur,hBlocageEcriture)
Si l'enregistrement est déja bloqué
Hlit recherche me lit un enregistrement dont l'ID est à 0 et donc il n'y a pas d'erreur de blocage
je précise que j'ai bien mis dans le code du projet:
HMode(hModeMulti) HSurErreur("*",hErrBlocage,"") |
| |
| |
| | | |
|
| | |
| |
| Posté le 08 décembre 2004 - 17:54 |
Si la fonction htrouve n'est pas réalisée, alors essayez de tester AVANT TOUT la fonction de blocage pour vérifier si HTrouve ne fonctionne que si HErreurBlocage retourne Faux :
HlitRecherche(Controleur,IDControleur,Main.table_Controleur.IDControluer,HBlocageEcriture) si HerreurBlocage() ALORS // Enregistrement déjà bloqué. BLOK..Etat=Visible //... SINON SI HTrouve(Controleur) ALORS // FIN FIN
TF. |
| |
| |
| | | |
|
| | |
| |
| Posté le 08 décembre 2004 - 18:09 |
Essayez la fonction de blocage AVANT la fonction HTrouve pour vérifier laquelle prévaut sur l'autre :
HLitRecherche(...,hBlocageEcriture) Si HErreurBlocage Alors BLOK..etat=visible // Etc... SINON Si HTrouve(Controleur) ALORS // ACTION. Fin FIN
TF. |
| |
| |
| | | |
|
| | | | |
| | |
|