PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → HDéclareExterne()
HDéclareExterne()
Iniciado por Alexandre LAVIGNE, 20,dic. 2018 09:34 - 3 respuestas
Miembro registrado
22 mensajes
Publicado el 20,diciembre 2018 - 09:34
Bonjour à tous,

J'ai commencé à créer une appli Windev Mobile 24 (j'ai Windev Mobile dans logiciel Windev, c'est pour ça que j'ai mis mon sujet ici), et je ne parviens pas à faire un truc aussi basique que lire sur un fichier !

HOuvreConnexion(Conn_BDD_ANEA)
Incoherence est une Source de Données
HDéclareExterne(".\Incohérence.FIC","Incoherence",Conn_BDD_ANEA)
HLitRechercheDernier(Incoherence,Immat,"AA123AA")


HOuvreConnexion renvoie Vrai, aucun message d'erreur.
Idem pour HDéclareExterne.

Et pourtant HLitRechercheDernier() plante avec ce message :
Erreur à la ligne 86 du traitement Initialisation de ANEA_APP.
Vous avez appelé la fonction HLitRechercheDernier.
La source de données <_SOURCE_Incoherence_2> 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  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.

----- Informations techniques -----

Projet : ANEA_APP

Appel WL :
Traitement de 'Initialisation de ANEA_APP', ligne 86, thread 0
Fonction 'HLitRechercheDernier', syntaxe 0

Que s'est-il passé ?
La source de données <_SOURCE_Incoherence_2> 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  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.

Code erreur : 70018
Niveau : erreur fatale
Code erreur WD55 : 18

Dump de l'erreur du module 'wd240hf.dll' (24.0.51.2).
Identifiant des informations détaillées (.err) : 70116
Informations de débogage :
IEWDHF=1.20
Module=
Version=<24.0.51.2>
Fonction (7,52)
Informations supplémentaires :
EIT_PATHWDD : 
EIT_LOGICALTABLENAME : <_SOURCE_Incoherence_2>
EIT_PILEWL :
Initialisation de ANEA_APP (), ligne 86
EIT_DATEHEURE : 20/12/2018 09:31:01
EIT_TYPE_WDFILE : <4097>
EIT_IDCODE : <196608>


Je m'étonne déjà que toute mes source de données soit appelée avec un nom sous la forme _SOURCE_nomSD_numSD.
Mon HDéclareExterne() fonctionne bien, alors pourquoi je reçois une erreur me disant que je n'ai pas déclaré mon fichier ?
Qu'est-ce que j'ai raté ?

Merci d'avance pour votre aide
Miembro registrado
2.321 mensajes
Publicado el 20,diciembre 2018 - 10:55
Bonjour,

Essayez :
si HOuvreConnexion(Conn_BDD_ANEA) alors
Incoherence est une Source de Données
si HDéclareExterne(".\Incohérence.FIC","Incoherence","Conn_BDD_ANEA") alors
HLitRechercheDernier(Incoherence,Immat,"AA123AA")
fin
fin


--
Bon dev,
Jean-Pierre
Miembro registrado
22 mensajes
Publicado el 20,diciembre 2018 - 11:41
Bonjour Jean-Pierre,

Merci pour la proposition, j'ai essayé, et même problème.

Je viens cela dit de trouver la solution en changeant :
HDéclareExterne(".\Incohérence.FIC","Incoherence",Conn_BDD_ANEA)

En
HDéclareExterne(".\Incohérence.FIC",Incoherence,Conn_BDD_ANEA)

En fait, vu que ma source de données Incoherence est générée sous l'alias _SOURCE_Incoherence_2, le HDéclareExterne ne faisait pas le bon rapprochement en passant la chaine "Incoherence", puisque le vrai nom logique de ma source de données est _SOURCE_Incoherence_2. C'est pourquoi il faut utiliser la variable directement pour faire passer l'alias.
Publicado el 31,marzo 2020 - 17:51
Bonjour,

J'ai pas tout compris ?