[WD 5.5b] - erreur incompréhensible sur HVueVersFichier
2 réponses
Patrick_Coque
Salut à tout le monde,
J'ai un petit problème que je ne m'explique pas,
et comme je sais qu'après un certain temps, il arrive
que l'on ne discerne plus ce qui est évident et qui devrait sauter aux yeux,
je place donc mon bout de code ci-dessous et vous prie de m'excuser
pour la longueur du post, mais je préfère détailler afin de ne pas susciter
trop de réponses du genre 'donne-nous un bout de code' ou 'sois plus
précis'.
Voici, en gros, ce qui doit s'y passer:
Dans une vue qui a été créée ailleurs dans le programme (VUEDESCODES),
cette vue est basée sur le fichier TARIFOFF.
je recherche une série d'enregistrements que je stocke dans une table
mémoire (TBTARIF).
Ensuite, je parcours cette table du premier au dernier record, et, si la
colonne AMODIFIER est à VRAI,
alors je lis dans la vue l'enregistrement en rapport et je modifie ses
limites de validité
(TDATEDEBUT et TDATELIMITE)
Ensuite, je modifie la vue HMODIFIE (VueDesCodes).
Tout se passe bien pour les 5 ou 6 premiers records ainsi traités, puis,
alors que la routine est en train de boucler dans son POUR . FIN,
je sors en erreur avec le message suivant:
"ERREUR A LA LIGNE 91 DE LA PROCEDURE BTTARIF.SOR"
"LE MECANISME DE SECURITE D'HYPERFILE A ETE DECLENCHE"
"ERREUR 51 : erreur sur une fonction d'accès aux vues"
"Numéro interne = 129"
"Module = HFVUE,CPP,1236"
"Paramètres = Hdl = 263b1b0"
"Message = des erreurs se sont produites pdt l'exécution d'un commit"
"pendant HvueVersFichier/HViewToFile"
La ligne 91 correspondant à la ligne Hvueversfichier(VueDesCodes)
en fin de procédure ci-dessous.
Je ne vois pas où est le problème, d'où mon post.
J'ai suivi en step/step sous debugger, et n'ai rien vu d'anormal.
Le décours du code est bien identique à chaque bouclage du POUR.FIN.
Notez que si je mets une routine d'exception pour intercepter l'erreur,
il me mentionne le code '131123' comme Exception.Code
Si vous avez une idée, elle sera la bienvenue.
D'avance merci.
Patrick ;-(
Code incriminé :
POUR l=1 a TableOccurrence("TBTARIF")
PostErreur:
TableSelectPlus("TBTARIF",l)
si AMODIFIER[TBTARIF]=vrai alors
pasErreur=vrai
HLitRecherche(VueDesCodes,"TACLEUNIK",TARUNIK[l])
TARIFOFF.TDATEDEBUT=CLEDEBUT[l]
TARIFOFF.TDATELIMITE=CLEFIN[l]
// on va d'abord, si ce code n'avait pas de
lien vers TARIFINT, créer le TARIFINT qui lui sera associé
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
philippe chaissac
Salut,
A mon avis, il me semble étrange de faire un hvueversfichier() à chaque itération. C'est peut-être la source du problème. N'est-il pas possible de sortir cet appel de la boucle, et de mettre à jour le fichier à la fin du traitement ?
-- philippe chaissac
Salut,
A mon avis, il me semble étrange de faire un hvueversfichier() à chaque
itération. C'est peut-être la source du problème.
N'est-il pas possible de sortir cet appel de la boucle, et de mettre à
jour le fichier à la fin du traitement ?
A mon avis, il me semble étrange de faire un hvueversfichier() à chaque itération. C'est peut-être la source du problème. N'est-il pas possible de sortir cet appel de la boucle, et de mettre à jour le fichier à la fin du traitement ?
-- philippe chaissac
Patrick_Coque
Salut Philippe,
j'ai suivi ton conseil, mais l'erreur subsiste. Cependant, en continuant à chercher et à fouiller l'aide, j'en suis arrivé à la conclusion qu'il s'agit de cas de doublons. En effet, j'ai intercepté l'erreur, et, comme le conseille l'aide de WinDev, j'ai relancé un parcours de la vue en demandant l'affichage de H.Erreur. Cette dernière m'a fourni toute une série de '0', mais aussi des '99', ce qui paraît correspondre à un problème de doublons d'après le répertoire des codes d'erreur de l'aide. Hors, la vue est 'insensible' à cela, et ce n'est que lors de l'update du fichier que le doublon devient détecté et cause d'erreur. Je m'oriente donc vers une solution où la modification apportée serait réalisée non plus sur la vue, mais directement sur le fichier, afin de réaliser directement un traitement de HDoublon et HErrIntegrite.
J'espère que c'est la bonne voie.
Je confirmerai, le cas échéant.
Merci encore de l'aide apportée.
Patrick ;-))
"philippe chaissac" a écrit dans le message de news:3f82a76d$0$20617$
Salut,
A mon avis, il me semble étrange de faire un hvueversfichier() à chaque itération. C'est peut-être la source du problème. N'est-il pas possible de sortir cet appel de la boucle, et de mettre à jour le fichier à la fin du traitement ?
-- philippe chaissac
Salut Philippe,
j'ai suivi ton conseil, mais l'erreur subsiste.
Cependant, en continuant à chercher et à fouiller l'aide,
j'en suis arrivé à la conclusion qu'il s'agit de cas de doublons.
En effet, j'ai intercepté l'erreur, et, comme le conseille l'aide de WinDev,
j'ai relancé un parcours de la vue en demandant l'affichage de H.Erreur.
Cette dernière m'a fourni toute une série de '0', mais aussi des '99',
ce qui paraît correspondre à un problème de doublons
d'après le répertoire des codes d'erreur de l'aide.
Hors, la vue est 'insensible' à cela, et ce n'est que lors de l'update du
fichier
que le doublon devient détecté et cause d'erreur.
Je m'oriente donc vers une solution où la modification apportée
serait réalisée non plus sur la vue, mais directement sur le fichier,
afin de réaliser directement un traitement de HDoublon et HErrIntegrite.
J'espère que c'est la bonne voie.
Je confirmerai, le cas échéant.
Merci encore de l'aide apportée.
Patrick ;-))
"philippe chaissac" <grosnez@chaissac.com> a écrit dans le message de
news:3f82a76d$0$20617$626a54ce@news.free.fr...
Salut,
A mon avis, il me semble étrange de faire un hvueversfichier() à chaque
itération. C'est peut-être la source du problème.
N'est-il pas possible de sortir cet appel de la boucle, et de mettre à
jour le fichier à la fin du traitement ?
j'ai suivi ton conseil, mais l'erreur subsiste. Cependant, en continuant à chercher et à fouiller l'aide, j'en suis arrivé à la conclusion qu'il s'agit de cas de doublons. En effet, j'ai intercepté l'erreur, et, comme le conseille l'aide de WinDev, j'ai relancé un parcours de la vue en demandant l'affichage de H.Erreur. Cette dernière m'a fourni toute une série de '0', mais aussi des '99', ce qui paraît correspondre à un problème de doublons d'après le répertoire des codes d'erreur de l'aide. Hors, la vue est 'insensible' à cela, et ce n'est que lors de l'update du fichier que le doublon devient détecté et cause d'erreur. Je m'oriente donc vers une solution où la modification apportée serait réalisée non plus sur la vue, mais directement sur le fichier, afin de réaliser directement un traitement de HDoublon et HErrIntegrite.
J'espère que c'est la bonne voie.
Je confirmerai, le cas échéant.
Merci encore de l'aide apportée.
Patrick ;-))
"philippe chaissac" a écrit dans le message de news:3f82a76d$0$20617$
Salut,
A mon avis, il me semble étrange de faire un hvueversfichier() à chaque itération. C'est peut-être la source du problème. N'est-il pas possible de sortir cet appel de la boucle, et de mettre à jour le fichier à la fin du traitement ?