j'ai une petite question, en lisant le manuel "Programmation" de WD10,
j'ai lu que, si on veut faire tourner son appli en r=E9seau ( avec
partage des fichiers HF , pas en Client/Serveur) il faut :
- d=E9clarer le mode de blocage multi
- g=E9rer les acc=E8s lors des lectures =E9critures
Faut-il tester le blocage sur chaque lecture ecriture (HErreurBlocage
()) ??
J'ai d=E9cortiqu=E9 un peu l'exemple "WD qui bloque" et je prends peur !!
L'appli que je suis en train de refaire sous WD, peut =EAtre utilis=E9e
(doit) en r=E9seau avec au max 2-3 machines. Je ne pensais pas prendre 3
mois pour g=E9rer les acc=E8s :-)
Comment g=E9rez-vous ces acc=E8s concurentiels ? Y'a t'il une (des)
bonne(s) fa=E7on de faire ??
Faut-il tester le blocage sur chaque lecture ecriture (HErreurBlocage
de la meme facon que l'on test une erreur éventuel apres chaque acces donc je vois pas le problème à ce niveau. c'est plus les écritures où il faut ajouter un traitement.
le cas est simple pour les fichiers de bases (browse le fichier, modif d'une fiche) si lectureverouille() mise_a_jourfiche sinon erreur(cette fiche est en cours d'utilisation)
pour les fichiers liés (style mouvement de stock avec décompte d'un total dans x fichiers) il faut utiliser les transactions. si la transaction réussi , ok, si ca echoue, tout est annulé, on affiche le msg d'erreur et on demande à l'utilisateur de réessayer
"wd_newbie" <wd_newbie@romandie.com> a écrit dans le message de
news:1170682088.755429.205470@p10g2000cwp.googlegroups.com...
Faut-il tester le blocage sur chaque lecture ecriture (HErreurBlocage
de la meme facon que l'on test une erreur éventuel apres chaque acces donc
je vois pas le problème à ce niveau.
c'est plus les écritures où il faut ajouter un traitement.
le cas est simple pour les fichiers de bases (browse le fichier, modif d'une
fiche)
si lectureverouille()
mise_a_jourfiche
sinon
erreur(cette fiche est en cours d'utilisation)
pour les fichiers liés (style mouvement de stock avec décompte d'un total
dans x fichiers) il faut utiliser les transactions.
si la transaction réussi , ok, si ca echoue, tout est annulé, on affiche le
msg d'erreur et on demande à l'utilisateur de réessayer
Faut-il tester le blocage sur chaque lecture ecriture (HErreurBlocage
de la meme facon que l'on test une erreur éventuel apres chaque acces donc je vois pas le problème à ce niveau. c'est plus les écritures où il faut ajouter un traitement.
le cas est simple pour les fichiers de bases (browse le fichier, modif d'une fiche) si lectureverouille() mise_a_jourfiche sinon erreur(cette fiche est en cours d'utilisation)
pour les fichiers liés (style mouvement de stock avec décompte d'un total dans x fichiers) il faut utiliser les transactions. si la transaction réussi , ok, si ca echoue, tout est annulé, on affiche le msg d'erreur et on demande à l'utilisateur de réessayer
wd_newbie
On 5 fév, 14:58, "patrice" wrote:
"wd_newbie" a écrit dans le message denews:117
>Faut-il tester le blocage sur chaque lecture ecriture (HErreurBlocage
de la meme facon que l'on test une erreur éventuel apres chaque acces d onc je vois pas le problème à ce niveau. c'est plus les écritures où il faut ajouter un traitement.
le cas est simple pour les fichiers de bases (browse le fichier, modif d' une fiche) si lectureverouille() mise_a_jourfiche sinon erreur(cette fiche est en cours d'utilisation)
pour les fichiers liés (style mouvement de stock avec décompte d'un t otal dans x fichiers) il faut utiliser les transactions. si la transaction réussi , ok, si ca echoue, tout est annulé, on affi che le msg d'erreur et on demande à l'utilisateur de réessayer
Y'a t'il un moyen de simuler ce blocage en mode developpement pour effectuer des test ?
J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il n'y a pas d'erreur.
salutations
Olivier
On 5 fév, 14:58, "patrice" <patrice_labracherie_nos...@free.fr> wrote:
"wd_newbie" <wd_new...@romandie.com> a écrit dans le message denews:117 0682088.755429.205470@p10g2000cwp.googlegroups.com...
>Faut-il tester le blocage sur chaque lecture ecriture (HErreurBlocage
de la meme facon que l'on test une erreur éventuel apres chaque acces d onc
je vois pas le problème à ce niveau.
c'est plus les écritures où il faut ajouter un traitement.
le cas est simple pour les fichiers de bases (browse le fichier, modif d' une
fiche)
si lectureverouille()
mise_a_jourfiche
sinon
erreur(cette fiche est en cours d'utilisation)
pour les fichiers liés (style mouvement de stock avec décompte d'un t otal
dans x fichiers) il faut utiliser les transactions.
si la transaction réussi , ok, si ca echoue, tout est annulé, on affi che le
msg d'erreur et on demande à l'utilisateur de réessayer
Y'a t'il un moyen de simuler ce blocage en mode developpement pour
effectuer des test ?
J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il
n'y a pas d'erreur.
>Faut-il tester le blocage sur chaque lecture ecriture (HErreurBlocage
de la meme facon que l'on test une erreur éventuel apres chaque acces d onc je vois pas le problème à ce niveau. c'est plus les écritures où il faut ajouter un traitement.
le cas est simple pour les fichiers de bases (browse le fichier, modif d' une fiche) si lectureverouille() mise_a_jourfiche sinon erreur(cette fiche est en cours d'utilisation)
pour les fichiers liés (style mouvement de stock avec décompte d'un t otal dans x fichiers) il faut utiliser les transactions. si la transaction réussi , ok, si ca echoue, tout est annulé, on affi che le msg d'erreur et on demande à l'utilisateur de réessayer
Y'a t'il un moyen de simuler ce blocage en mode developpement pour effectuer des test ?
J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il n'y a pas d'erreur.
salutations
Olivier
Romain PETIT
Dans son message précédent, wd_newbie a écrit :
J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il n'y a pas d'erreur.
Il faut le bloquer via une autre application. Par exemple, tu peux utiliser WDMAP : - tu ouvres le fichier en quesion avec WDMAp, - tu te places sur l'enregistrement voulu, - un clic sur la ligne comme pour modifier l'enregistrement (ta colonne passe en mode édition). A partir de là, une tentative de modification par une autre application devrait se solder par un échec.
Sinon, tu te crées un petit exe avec 2 boutons : - bouton 1 : HBloqueFichier(...) (par exemple) - bouton 2 : HDebloqueFichier(...)
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Dans son message précédent, wd_newbie a écrit :
J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il
n'y a pas d'erreur.
Il faut le bloquer via une autre application.
Par exemple, tu peux utiliser WDMAP :
- tu ouvres le fichier en quesion avec WDMAp,
- tu te places sur l'enregistrement voulu,
- un clic sur la ligne comme pour modifier l'enregistrement (ta
colonne passe en mode édition).
A partir de là, une tentative de modification par une autre application
devrait se solder par un échec.
Sinon, tu te crées un petit exe avec 2 boutons :
- bouton 1 : HBloqueFichier(...) (par exemple)
- bouton 2 : HDebloqueFichier(...)
A+
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il n'y a pas d'erreur.
Il faut le bloquer via une autre application. Par exemple, tu peux utiliser WDMAP : - tu ouvres le fichier en quesion avec WDMAp, - tu te places sur l'enregistrement voulu, - un clic sur la ligne comme pour modifier l'enregistrement (ta colonne passe en mode édition). A partir de là, une tentative de modification par une autre application devrait se solder par un échec.
Sinon, tu te crées un petit exe avec 2 boutons : - bouton 1 : HBloqueFichier(...) (par exemple) - bouton 2 : HDebloqueFichier(...)
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
wd_newbie
On 6 fév, 12:48, Romain PETIT wrote:
Dans son message précédent, wd_newbie a écrit :
> J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il > n'y a pas d'erreur.
Il faut le bloquer via une autre application. Par exemple, tu peux utiliser WDMAP : - tu ouvres le fichier en quesion avec WDMAp, - tu te places sur l'enregistrement voulu, - un clic sur la ligne comme pour modifier l'enregistrement (ta colonne passe en mode édition). A partir de là, une tentative de modification par une autre application devrait se solder par un échec. .. A+
je dois faire une c... quelquepart : lors de l'ouverture de l'appli : // gestion des erreurs HF HSurErreur ("*" , hErrTout, "") // je gére les erreurs moi-meme // gestion des blocages HMode("*",hModeMulti) // blocage pour utilisation reseau
je lance WMAP je me mets sur l'enregistrement 'X250'
je lance mon appli => mode fiche => modification de la fiche et clic sur Valider, la modification est acceptee et si je retourne sur WMAP et que je selectionne un autre enregistrement et revient sur la ligne 'X250', clac, mes modifs apparaissent ... voir le code "Valider la modification" ci-dessous :
<code> SI controler_entree()= Faux ALORS RETOUR
EcranVersFichier(FEN_fiche_jeux)
SI PAS HAjoute(membres) ALORS // erreur de relation SI HErreurIntégrité() = Vrai ALORS Erreur("Erreur d'intégrité : cet enregistrement ne peut "+... "être modifié") RETOUR FIN // serreur de doublon SI HErreurDoublon()= Vrai ALORS Erreur("Erreur de doublon, ce numéro de membre existe déja !!") // remettre l'ancien numero RepriseSaisie(SAI_Numero_membre) RETOUR FIN SI HErreurBlocage()=Vrai ALORS Erreur("Cette fiche est bloquée, veuillez réessayer plus tard !") RETOUR FIN
SINON changer_mode("bloquer") FIN
</code>
On 6 fév, 12:48, Romain PETIT <V...@Signature.fin> wrote:
Dans son message précédent, wd_newbie a écrit :
> J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il
> n'y a pas d'erreur.
Il faut le bloquer via une autre application.
Par exemple, tu peux utiliser WDMAP :
- tu ouvres le fichier en quesion avec WDMAp,
- tu te places sur l'enregistrement voulu,
- un clic sur la ligne comme pour modifier l'enregistrement (ta
colonne passe en mode édition).
A partir de là, une tentative de modification par une autre application
devrait se solder par un échec.
..
A+
je dois faire une c... quelquepart :
lors de l'ouverture de l'appli :
// gestion des erreurs HF
HSurErreur ("*" , hErrTout, "") // je gére les erreurs moi-meme
// gestion des blocages
HMode("*",hModeMulti) // blocage pour utilisation reseau
je lance WMAP je me mets sur l'enregistrement 'X250'
je lance mon appli => mode fiche => modification de la fiche et clic
sur Valider, la modification est acceptee et si je retourne sur WMAP
et que je selectionne un autre enregistrement et revient sur la ligne
'X250', clac, mes modifs apparaissent ... voir le code "Valider la
modification" ci-dessous :
<code>
SI controler_entree()= Faux ALORS RETOUR
EcranVersFichier(FEN_fiche_jeux)
SI PAS HAjoute(membres) ALORS
// erreur de relation
SI HErreurIntégrité() = Vrai ALORS
Erreur("Erreur d'intégrité : cet enregistrement ne peut "+...
"être modifié")
RETOUR
FIN
// serreur de doublon
SI HErreurDoublon()= Vrai ALORS
Erreur("Erreur de doublon, ce numéro de membre existe déja !!")
// remettre l'ancien numero
RepriseSaisie(SAI_Numero_membre)
RETOUR
FIN
SI HErreurBlocage()=Vrai ALORS
Erreur("Cette fiche est bloquée, veuillez réessayer plus tard !")
RETOUR
FIN
> J'ai essaye avec HBloqueNumEnr(Jeux) et ensuite je le modifie, mais il > n'y a pas d'erreur.
Il faut le bloquer via une autre application. Par exemple, tu peux utiliser WDMAP : - tu ouvres le fichier en quesion avec WDMAp, - tu te places sur l'enregistrement voulu, - un clic sur la ligne comme pour modifier l'enregistrement (ta colonne passe en mode édition). A partir de là, une tentative de modification par une autre application devrait se solder par un échec. .. A+
je dois faire une c... quelquepart : lors de l'ouverture de l'appli : // gestion des erreurs HF HSurErreur ("*" , hErrTout, "") // je gére les erreurs moi-meme // gestion des blocages HMode("*",hModeMulti) // blocage pour utilisation reseau
je lance WMAP je me mets sur l'enregistrement 'X250'
je lance mon appli => mode fiche => modification de la fiche et clic sur Valider, la modification est acceptee et si je retourne sur WMAP et que je selectionne un autre enregistrement et revient sur la ligne 'X250', clac, mes modifs apparaissent ... voir le code "Valider la modification" ci-dessous :
<code> SI controler_entree()= Faux ALORS RETOUR
EcranVersFichier(FEN_fiche_jeux)
SI PAS HAjoute(membres) ALORS // erreur de relation SI HErreurIntégrité() = Vrai ALORS Erreur("Erreur d'intégrité : cet enregistrement ne peut "+... "être modifié") RETOUR FIN // serreur de doublon SI HErreurDoublon()= Vrai ALORS Erreur("Erreur de doublon, ce numéro de membre existe déja !!") // remettre l'ancien numero RepriseSaisie(SAI_Numero_membre) RETOUR FIN SI HErreurBlocage()=Vrai ALORS Erreur("Cette fiche est bloquée, veuillez réessayer plus tard !") RETOUR FIN
SINON changer_mode("bloquer") FIN
</code>
patrice
"wd_newbie" a écrit dans le message de news: On 6 fév, 12:48, Romain PETIT wrote:
SI PAS HAjoute(membres) ALORS
dans ton cas peut pas y'avoir d'erreur blocage en hajoute (nouvelle fiche, personne peut l'utiliser à par toi) c'est plus pour les modifs : si HLit(nomfic,nbrecord,hBlocageEcriture) = Faux alors
erreur(en cours d'utilisation)
retour
fin
ecranversfichier()
si pas hmodifie() alors
// err doublon à traiter, le reste c'est erreur inattendue
fin
"wd_newbie" <wd_newbie@romandie.com> a écrit dans le message de
news:1170766203.614626.307590@a34g2000cwb.googlegroups.com...
On 6 fév, 12:48, Romain PETIT <V...@Signature.fin> wrote:
SI PAS HAjoute(membres) ALORS
dans ton cas peut pas y'avoir d'erreur blocage en hajoute (nouvelle fiche,
personne peut l'utiliser à par toi)
c'est plus pour les modifs :
si HLit(nomfic,nbrecord,hBlocageEcriture) = Faux alors
erreur(en cours d'utilisation)
retour
fin
ecranversfichier()
si pas hmodifie() alors
// err doublon à traiter, le reste c'est erreur inattendue
"wd_newbie" a écrit dans le message de news: On 6 fév, 12:48, Romain PETIT wrote:
SI PAS HAjoute(membres) ALORS
dans ton cas peut pas y'avoir d'erreur blocage en hajoute (nouvelle fiche, personne peut l'utiliser à par toi) c'est plus pour les modifs : si HLit(nomfic,nbrecord,hBlocageEcriture) = Faux alors
erreur(en cours d'utilisation)
retour
fin
ecranversfichier()
si pas hmodifie() alors
// err doublon à traiter, le reste c'est erreur inattendue
fin
wd_newbie
> >SI PAS HAjoute(membres) ALORS
dans ton cas peut pas y'avoir d'erreur blocage en hajoute (nouvelle fiche, personne peut l'utiliser à par toi) c'est plus pour les modifs : si HLit(nomfic,nbrecord,hBlocageEcriture) = Faux alors
erreur(en cours d'utilisation)
retour
fin
ecranversfichier()
si pas hmodifie() alors
// err doublon à traiter, le reste c'est erreur inattendue
fin
Mea culpa , j'ai copie le code du mauvais bouton , c'etait Hmodifie(membres) qu'il fallait lire !
Pour resumer . - je bloque l'enregistrement depuis WDMAP - je lance mon appli depuis l'AGL - je modifie ma fiche => valider par Hmodifie() - je n'ai pas d'erreur de blocage - je retourne sous WDMAP, les modifs ont été acxceptées :-(
Olivier
> >SI PAS HAjoute(membres) ALORS
dans ton cas peut pas y'avoir d'erreur blocage en hajoute (nouvelle fiche,
personne peut l'utiliser à par toi)
c'est plus pour les modifs :
si HLit(nomfic,nbrecord,hBlocageEcriture) = Faux alors
erreur(en cours d'utilisation)
retour
fin
ecranversfichier()
si pas hmodifie() alors
// err doublon à traiter, le reste c'est erreur inattendue
fin
Mea culpa , j'ai copie le code du mauvais bouton , c'etait
Hmodifie(membres) qu'il fallait lire !
Pour resumer .
- je bloque l'enregistrement depuis WDMAP
- je lance mon appli depuis l'AGL
- je modifie ma fiche => valider par Hmodifie()
- je n'ai pas d'erreur de blocage
- je retourne sous WDMAP, les modifs ont été acxceptées :-(
dans ton cas peut pas y'avoir d'erreur blocage en hajoute (nouvelle fiche, personne peut l'utiliser à par toi) c'est plus pour les modifs : si HLit(nomfic,nbrecord,hBlocageEcriture) = Faux alors
erreur(en cours d'utilisation)
retour
fin
ecranversfichier()
si pas hmodifie() alors
// err doublon à traiter, le reste c'est erreur inattendue
fin
Mea culpa , j'ai copie le code du mauvais bouton , c'etait Hmodifie(membres) qu'il fallait lire !
Pour resumer . - je bloque l'enregistrement depuis WDMAP - je lance mon appli depuis l'AGL - je modifie ma fiche => valider par Hmodifie() - je n'ai pas d'erreur de blocage - je retourne sous WDMAP, les modifs ont été acxceptées :-(
Olivier
Romain PETIT
wd_newbie a utilisé son clavier pour écrire :
je lance WMAP je me mets sur l'enregistrement 'X250'
Au temps pour moi, WDMap ne bloque pas l'enregistrement... Fais ton petit exe...
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
wd_newbie a utilisé son clavier pour écrire :
je lance WMAP je me mets sur l'enregistrement 'X250'
Au temps pour moi, WDMap ne bloque pas l'enregistrement...
Fais ton petit exe...
A+
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)