Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD 7.5 204g - Base HF] Utilisation de "HSurErreur"

6 réponses
Avatar
Steven
Bonjour,

J'utilise le bloc d'instructions suivant pour supprimer un enregistrement
(clé primaire) d'un fichier HF (Fich1) relié à un ou plusieurs autre(s) dans
mon fichier HF (Fich 2) :
(cet enregistrement (Fich 1) ne peut être supprimé que s'il n'est plus lié a
d'autres dans mon second fichier HF (Fich 2))
Fich 1 : 1-n --------------------> 0,1 Fich 2

[CODE]
HSurErreur("*",hErrIntégrité,"") // désactive la gestion auto des erreurs
hyperfile

HlitRecherchePremier(NomFichier,NomRubrique,ValeurCherchee)

SI HTrouve(NomFichier ALORS
SI PAS HSupprime(NomFichier) ALORS
Erreur("Mon Message d'erreur")
FIN
SINON
Info("Valeur nont rouvee")
FIN

HSurErreur("*",hErrTout) // réactive la gestion auto des erreurs hyperfile
[/CODE]

Je veux alerter l'utilisateur du problème d'intégrité mais sans lui afficher
la boîte automatique de WD sans personnaliser celle-ci car je souhaite
adapter mon message d'erreur à chaque cas.

D'après ce que j'ai compris dans l'aide, le HSurErreur permet une gestion
personnalisée des messages d'erreurs (intégrité, doublons, ...)

Est-ce juste pour l'appel qui suit à une modification du ficher HF (ici
juste pour mon HSupprime) ou est-ce permanent pour le reste de l'application
?

Donc je pense :
* Avoir désactivé la gestion des erreurs relatif à l'intégrité avec (
HSurErreur("*",hErrIntégrité,"") )
* Personnaliser le message d'erreur ne cas de non suppression
* Réactiver la gestion automatique des erreurs avec
HSurErreur("*",hErrTout)

Or j'obtiens bien mon message d'erreur : Mon Message d'erreur"

Mais l'appel de HSurErreur("*",hErrTout) m'affiche la boîte du Mécanisme de
sécurité de WD-langage comme quoi il y aue une erreur d'intégrité sur mon
HSupprime précédent.

Si j'enlève HSurErreur("*",hErrTout), pas de pb mais je ne sais pas si la
gestion automatique est de nouveau active ?

Si ce n'est pas le cas, comment faire pour que la réactivation de la gestion
automatique des erreurs ne tiennent pas compte des erreurs précédentes ?
Ou alors avez vous un autre moyen de ne plus afficher cette boîte WD sans
pour autant désactiver la gestion automatique des erreurs ?

J'espère avoir été assez clair.

Merci de votre aide.

--
Cordialement
Steven
Enlevez le "NOSPAM" pour me répondre en privé

6 réponses

Avatar
SP&B
> * Réactiver la gestion automatique des erreurs avec
HSurErreur("*",hErrTout)




Bonjour,

C'est bien HSurErreur("*",hErrTout) qu'il faut utiliser pour réactiver.
Mais je pense que lors de la suppression, vous avez supprimé
l'enregistrement d'un fichier, mais pas dans le fichier lié, donc il y a
bien une erreur d'intégrité qui subsiste et qui vous est indiquée lors de la
réactivation.
Au lieu d'utiliser hlitrecherchepremier, faites un filtre sur le fichier et
le fichier lié, puis avec hlitpremier et tant que pas hendehors hlitsuivant
supprimez d'abord tous les enregistrements concernés du fichier lié puis
celui du fichier principal, il n'y aura donc plus d'erreur d'intégrité.

Sincères salutations.
--
Jean-Claude FLAJOULOT
Sécurité, Pointage & Biométrie

enlever _no.spam pour me contacter en PV.
http://perso.wanadoo.fr/securite.pointage.et.biometrie/
Avatar
Steven
SP&B a écrit dans
news:bp2lre$k40$ :
* Réactiver la gestion automatique des erreurs avec
HSurErreur("*",hErrTout)




Bonjour,

C'est bien HSurErreur("*",hErrTout) qu'il faut utiliser pour
réactiver. Mais je pense que lors de la suppression, vous avez
supprimé l'enregistrement d'un fichier, mais pas dans le fichier lié,
donc il y a bien une erreur d'intégrité qui subsiste et qui vous est
indiquée lors de la réactivation.



Justement, c'est ça que je ne comprends pas, car l'enregistrement n'est pas
supprimé. (ce qui est normal)
donc je ne vois pas pourquoi le HSurErreur me génère une erreur. C'est comme
si il y avait un historique des erreurs non gérées par la gestion
anutomatique.

Je viens de mettre HSurErreur("*",hErrTout) dans le code d'un autre bouton
bouton1.
Donc le bouton de suppression me génère mon message d'erreur sans le
mécanisme de sécurité.
Mais par contre qd je clique sur mon bouton bouton1, j'ai de nouveau le
mécanisme qui se déclenche.

Au lieu d'utiliser hlitrecherchepremier, faites un filtre sur le
fichier et le fichier lié, puis avec hlitpremier et tant que pas
hendehors hlitsuivant supprimez d'abord tous les enregistrements
concernés du fichier lié puis celui du fichier principal, il n'y aura
donc plus d'erreur d'intégrité.



Je suis d'accord sur le principe mais je veux en informer l'utilisateur afin
d'éviter les supressions regrettables.

Sincères salutations.



Merci de votre aide

--
Cordialement
Steven
Enlevez le "NOSPAM" pour me répondre en privé
Avatar
SP&B
Bonjour,

donc je ne vois pas pourquoi le HSurErreur me génère une erreur. C'est


comme
si il y avait un historique des erreurs non gérées par la gestion
anutomatique.



Effectivement, je viens de faire un essai, il semble que ces erreurs soient
en quelque sorte mémorisées tant qu'elles n'ont pas été affichées.


Je suis d'accord sur le principe mais je veux en informer l'utilisateur


afin
d'éviter les supressions regrettables.



Pourquoi pas tout simplement demander la confirmation de la suppression par
une fenêtre à 2 boutons << Oui >> << Non>>, avec le Non sélectionné par
défaut.

Sincères salutations.
--
Jean-Claude FLAJOULOT
Sécurité, Pointage & Biométrie

enlever _no.spam pour me contacter en PV.
http://perso.wanadoo.fr/securite.pointage.et.biometrie/
Avatar
Pascal BERNE
Salut,
Je codifierai plutot de la façon suivante (à vérifier)

HSurErreur("*",hErrIntégrité,"") // désactive la gestion auto des erreurs
hyperfile

HlitRecherchePremier(NomFichier,NomRubrique,ValeurCherchee)
SI HTrouve(NomFichier) ALORS
HSupprime(NomFichier)
SI hErreurIntegrite() ALORS
Erreur("Mon Message d'erreur")
FIN
SINON
Info("Valeur nont rouvee")
FIN

HSurErreur("*",hErrTout) // réactive la gestion auto des erreurs hyperfile


"Steven" a écrit dans le message de
news:bp2kdi$rrv$
Bonjour,

J'utilise le bloc d'instructions suivant pour supprimer un enregistrement
(clé primaire) d'un fichier HF (Fich1) relié à un ou plusieurs autre(s)


dans
mon fichier HF (Fich 2) :
(cet enregistrement (Fich 1) ne peut être supprimé que s'il n'est plus lié


a
d'autres dans mon second fichier HF (Fich 2))
Fich 1 : 1-n --------------------> 0,1 Fich 2

[CODE]
HSurErreur("*",hErrIntégrité,"") // désactive la gestion auto des erreurs
hyperfile

HlitRecherchePremier(NomFichier,NomRubrique,ValeurCherchee)

SI HTrouve(NomFichier ALORS
SI PAS HSupprime(NomFichier) ALORS
Erreur("Mon Message d'erreur")
FIN
SINON
Info("Valeur nont rouvee")
FIN

HSurErreur("*",hErrTout) // réactive la gestion auto des erreurs hyperfile
[/CODE]

Je veux alerter l'utilisateur du problème d'intégrité mais sans lui


afficher
la boîte automatique de WD sans personnaliser celle-ci car je souhaite
adapter mon message d'erreur à chaque cas.

D'après ce que j'ai compris dans l'aide, le HSurErreur permet une gestion
personnalisée des messages d'erreurs (intégrité, doublons, ...)

Est-ce juste pour l'appel qui suit à une modification du ficher HF (ici
juste pour mon HSupprime) ou est-ce permanent pour le reste de


l'application
?

Donc je pense :
* Avoir désactivé la gestion des erreurs relatif à l'intégrité avec (
HSurErreur("*",hErrIntégrité,"") )
* Personnaliser le message d'erreur ne cas de non suppression
* Réactiver la gestion automatique des erreurs avec
HSurErreur("*",hErrTout)

Or j'obtiens bien mon message d'erreur : Mon Message d'erreur"

Mais l'appel de HSurErreur("*",hErrTout) m'affiche la boîte du Mécanisme


de
sécurité de WD-langage comme quoi il y aue une erreur d'intégrité sur mon
HSupprime précédent.

Si j'enlève HSurErreur("*",hErrTout), pas de pb mais je ne sais pas si la
gestion automatique est de nouveau active ?

Si ce n'est pas le cas, comment faire pour que la réactivation de la


gestion
automatique des erreurs ne tiennent pas compte des erreurs précédentes ?
Ou alors avez vous un autre moyen de ne plus afficher cette boîte WD sans
pour autant désactiver la gestion automatique des erreurs ?

J'espère avoir été assez clair.

Merci de votre aide.

--
Cordialement
Steven
Enlevez le "NOSPAM" pour me répondre en privé




Avatar
Steven
Bonjour,

Pascal BERNE a écrit dans
news:3fb4f51b$0$2800$ :
Salut,
Je codifierai plutot de la façon suivante (à vérifier)

HSurErreur("*",hErrIntégrité,"") // désactive la gestion auto des
erreurs hyperfile

HlitRecherchePremier(NomFichier,NomRubrique,ValeurCherchee)
SI HTrouve(NomFichier) ALORS
HSupprime(NomFichier)
SI hErreurIntegrite() ALORS
Erreur("Mon Message d'erreur")
FIN
SINON
Info("Valeur nont rouvee")
FIN

HSurErreur("*",hErrTout) // réactive la gestion auto des erreurs
hyperfile



Oui cela focntionne bien comme cela,
J'avais bien vu le test sur hErreurIntegrite() mais je n'ai pas pensé à
l'intégrer avec mes HSurErreur.

Merci pour votre aide et bon week-end

--
Cordialement
Steven
Enlevez le "NOSPAM" pour me répondre en privé
Avatar
Steven
Re,

SP&B a écrit dans
news:bp2rec$p6s$ :
Bonjour,

donc je ne vois pas pourquoi le HSurErreur me génère une erreur.
C'est comme si il y avait un historique des erreurs non gérées par
la gestion anutomatique.



Effectivement, je viens de faire un essai, il semble que ces erreurs
soient en quelque sorte mémorisées tant qu'elles n'ont pas été
affichées.


Je suis d'accord sur le principe mais je veux en informer
l'utilisateur afin d'éviter les supressions regrettables.



Pourquoi pas tout simplement demander la confirmation de la
suppression par une fenêtre à 2 boutons << Oui >> << Non>>, avec le
Non sélectionné par défaut.



Oui, mais je ne suis pas sûr que cela empeche l'affichage de la boîte du WD.
mais la solution donnée par Pascal BERNE, fonctionne, donc je vais opter
pour celle là.

Sincères salutations.



Merci de votre aide et bon week_end

--
Cordialement
Steven
Enlevez le "NOSPAM" pour me répondre en privé