PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Gestion de l'erreur de doublon
Gestion de l'erreur de doublon
Débuté par jean-francois, 14 sep. 2006 12:32 - 4 réponses
Posté le 14 septembre 2006 - 12:32
Salut à tous,

- J'ai l'objet ONGLET avec plusieurs Volets.
- Dans un volet j'ai inséré une table liée à un fichier.
- Le fichier comporte une clé composée unique.

Si je descends au bas de la table pour ajouter une ligne à la table et que je saisis les colonnes (champs) composant la clé composée de telle sorte de créer un doublon, je reçois un message d'erreur (normal) fatale (peut-être pas normal) et le programme s'arrête.

J'aimerais intercepter cette erreur, mais voila j'ai essayé plein de chose, mais aucun résultat.

Est-ce que quelqu'un pourrait m'aider en m'indiquant OU je dois insérer mon code pour intercepter cette erreur fatale

Merci d'avance,

Jean-François

ci-après le message d'erreur récupéré
-----------------------------------------------------------------------------------------------
Erreur à la ligne 38 du traitement Procédure locale _InitTablesSansRubrique.
Vous avez appelé la fonction ConstruitTableFichier.
Fichier <> inconnu dans l'analyse <C:\Mes Projets\Planning_ETE\Planning_ETE.wdd>, ou requête ou vue non initialisée.


Informations techniques

Projet : Planning_ETE

Dump de l'erreur du module <WD100HF.DLL> <10.00Edh>.

- Appel WL :
Traitement de <Doublon.PROCEDURE._InitTablesSansRubrique>, ligne <38>, thread <0>
Fonction <ConstruitTableFichier>, n° de syntaxe <1>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 70018

- Code erreur WD55 : 18

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?
Fichier <> inconnu dans l'analyse <C:\Mes Projets\Planning_ETE\Planning_ETE.wdd>, ou requête ou vue non initialisée.

- Infos de debug :
iehf01
Fonction (1,105)

- Infos attachées :
EIT_PATHWDD : <C:\Mes Projets\Planning_ETE\Planning_ETE.wdd>
EIT_LOGICALTABLENAME : <>
EIT_DATEHEURE : 14/09/2006 10:36:46
EIT_PILEWL :
Procédure locale _InitTablesSansRubrique (Doublon.PROCEDURE._InitTablesSansRubrique), ligne 38
Procédure locale InitTables (Doublon.PROCEDURE.InitTables), ligne 8
Déclarations globales de Doublon (Doublon), ligne 17

- Identifiant dans le .err : 70116


Assistance

- Vérifiez que le fichier est bien décrit dans l'analyse en cours
- S'il s'agit d'un fichier décrit en dynamique, vérifiez que ce
fichier a bien été déclaré avant par HDéclare, HDéclareExterne
ou HDécritFichier
- S'il s'agit d'une requête du projet ou d'une requête SQL, vérifiez
que cette requête a été déclarée avant par HExécuteRequête pour une
requête du projet ou par HExécuteRequêteSQL pour une requête SQL.

-----------------------------------------------------------------------------------------------
Posté le 14 septembre 2006 - 15:06
Bonjour,

Votre description ne correspond pas au message que vous avez fourni. Vous
décrivez l'ajout d'un enregistrement, alors que l'erreur concerne le
chargement d'une source de données dont le nom n'est pas renseignée, dans un
table avec la fonction "ConstruitTableFichier".
Je vous encourage à suite le traitement en pas à pas à l'aide du Débogueur,
vous devriez repérer l'appel de la fonction "ConstruitTableFichier" qui en
reçoit pas les bon paramètres.


Elian Lacroix
Mail : elian.lacroix@gmail.com
http://elianlacroix.blogspot.com/

"Jean-François Marschall" <jean-francois@marschall.lu> a écrit dans le
message de news: 450912f7$1@news.pcsoft.fr...

Salut à tous,

- J'ai l'objet ONGLET avec plusieurs Volets.
- Dans un volet j'ai inséré une table liée à un fichier.
- Le fichier comporte une clé composée unique.

Si je descends au bas de la table pour ajouter une ligne à la table et que
je saisis les colonnes (champs) composant la clé composée de telle sorte
de créer un doublon, je reçois un message d'erreur (normal) fatale
(peut-être pas normal) et le programme s'arrête.

J'aimerais intercepter cette erreur, mais voila j'ai essayé plein de
chose, mais aucun résultat.

Est-ce que quelqu'un pourrait m'aider en m'indiquant OU je dois insérer
mon code pour intercepter cette erreur fatale

Merci d'avance,

Jean-François

ci-après le message d'erreur récupéré
-----------------------------------------------------------------------------------------------
Erreur à la ligne 38 du traitement Procédure locale
_InitTablesSansRubrique.
Vous avez appelé la fonction ConstruitTableFichier.
Fichier <> inconnu dans l'analyse <C:\Mes
Projets\Planning_ETE\Planning_ETE.wdd>, ou requête ou vue non initialisée.


Informations techniques

Projet : Planning_ETE

Dump de l'erreur du module <WD100HF.DLL> <10.00Edh>.

- Appel WL :
Traitement de <Doublon.PROCEDURE._InitTablesSansRubrique>, ligne <38>,
thread <0>
Fonction <ConstruitTableFichier>, n° de syntaxe <1>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 70018

- Code erreur WD55 : 18

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?
Fichier <> inconnu dans l'analyse <C:\Mes
Projets\Planning_ETE\Planning_ETE.wdd>, ou requête ou vue non initialisée.

- Infos de debug :
iehf01
Fonction (1,105)

- Infos attachées :
EIT_PATHWDD : <C:\Mes Projets\Planning_ETE\Planning_ETE.wdd>
EIT_LOGICALTABLENAME : <>
EIT_DATEHEURE : 14/09/2006 10:36:46
EIT_PILEWL :
Procédure locale _InitTablesSansRubrique
(Doublon.PROCEDURE._InitTablesSansRubrique), ligne 38
Procédure locale InitTables (Doublon.PROCEDURE.InitTables), ligne 8
Déclarations globales de Doublon (Doublon), ligne 17

- Identifiant dans le .err : 70116


Assistance

- Vérifiez que le fichier est bien décrit dans l'analyse en cours
- S'il s'agit d'un fichier décrit en dynamique, vérifiez que ce
fichier a bien été déclaré avant par HDéclare, HDéclareExterne
ou HDécritFichier
- S'il s'agit d'une requête du projet ou d'une requête SQL, vérifiez
que cette requête a été déclarée avant par HExécuteRequête pour une
requête du projet ou par HExécuteRequêteSQL pour une requête SQL.

-----------------------------------------------------------------------------------------------


Posté le 14 septembre 2006 - 15:20
Salut,

Je me réponds à moi même, puisque j'ai fini par trouver une solution qui me convient

Dans le code d'initialisation du projet j'ai mis la ligne suivante :

//Interception des doublons
HSurErreur(MALADIES,hErrDoublon,"Doublon_Maladies")

J'ai créé la procédure suivante

PROCEDURE Doublon_Maladies()
Erreur("Vous avez déjà saisi cette année pour les Maladies de cet ouvrier!","","Veuillez svp corriger la ligne")
RENVOYER opFinTraitement

------------------

et le tour est joué. Le programme me renvoie directement dans ma table dans la ligne que j'étais en train de traiter.

@+, JF
Posté le 14 septembre 2006 - 15:20
Merci bien pour ta réponse.

Je fut tout naturellement très dérouté en voyant le message d'erreur que je recevais, car toutes les procédures incluses dans le message d'erreur ne sont pas des procédures que j'ai écrites. Je pense que se sont des procédures internes à Windev.

Toujours est-il que j'ai trouvé une solution que j'ai postée il y a quelques instants sur ce forum, pour aider éventuellement d'autres Windeviens.

@+, JF
Posté le 03 septembre 2016 - 01:16
Bonjour,
J'ai rencontré un problème similaire avec W21 dans un tableenregistre() . Le message d'erreur était :
----------------------
Erreur à la ligne 21 du traitement Déclarations globales de Doublon.
Vous avez appelé la fonction ConstruitTableFichier.
La source de données <> n'est pas initialisée.
- S'il s'agit d'un fichier de données, le fichier n'a pas été trouvé dans l'analyse <C:\Mes Projets\deronne\deronne.wdd> ou n'a pas été décrit avec les fonctions HDéclare / HDéclareExterne.
- S'il s'agit d'une requête ou d'une vue, l'exécution a peut-être échoué.
Pour récupérer l'erreur correspondante, testez le résultat des fonctions HExécuteRequête / HExécuteRequêteSQL / HCréeVue.
--------------------------
Comme je n'utilise pas l'instruction construittablefichier dans mon script, je pense que c'est une instruction utilisée par WD pour délivrer un vrai message d'erreur de doublon.

J'ai mis la solution de Jean-François Marschall en pratique. J'attends de voir si le plantage persiste mais j'ai bon espoir.