PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → HDéclareExterne non pris en compte
HDéclareExterne non pris en compte
Iniciado por damien.defeux, 26,abr. 2019 15:50 - 6 respuestas
Publicado el 26,abril 2019 - 15:50
Bonjour,

J'ai un petit programme sans analyse qui doit accéder à un fichier de données .fic

Si dessous la reproduction du cas qui pose problème, j'ai le message suivant

Vous avez appelé la fonction HFiltre.
Aucune analyse n'est ouverte et le fichier <_SOURCE_Fic_NTMouvementIdImp_Res_1> n'a pas été décrit.

Je vois pas le problème, si je change en retirant les "" le hfiltre passe, mais c'est la requête sql qui plante ???

Fic_NTMouvementIdImp_Res est une Source dede Données


SI HDéclareExterne(ComplèteRep(fRepExe()) + "NTMouvementIdImp.fic","Fic_NTMouvementIdImp_Res")=Faux ALORS
Info(HErreurInfo(hErrMessage))
FIN

RES_REQ_SQL est une Source dede Données

Var_Rqt_Sql est une chaîne = "select * from Fic_NTMouvementIdImp_Res"


SI HExécuteRequêteSQL(RES_REQ_SQL,hRequêteDéfaut,Var_Rqt_Sql)=Faux ALORS
SI HErreur<>0 ALORS
Info( HErreurInfo(hErrMessage))
FIN
FIN


HFiltre(Fic_NTMouvementIdImp_Res,Imprimée,Faux)

POUR TOUT Fic_NTMouvementIdImp_Res



FIN


FIN:
// Annule le filtre
HDésactiveFiltre(Fic_NTMouvementIdImp_Res)

HAnnuleDéclaration(Fic_NTMouvementIdImp_Res)
Miembro registrado
299 mensajes
Publicado el 26,abril 2019 - 16:07
Je ne comprends pas pourquoi dans un premier temps vous exécutez une requete SQL pour définir une sélection de tous les enregistrements et et dans un second temps vous faites un filtre.

Pourquoi ne pas définir le filtre Imprimée,Faux dans la requete SQL avec
"select * from Fic_NTMouvementIdImp_Res where Imprimée = false"

Cela n'engage que moi mais mettre des lettres accentuées dans des nom de champs me choque
Publicado el 26,abril 2019 - 16:22
C'est un exemple pour reproduire les problèmes. Le programme est beaucoup plus important et ce n'est pas utile pour exposer la problématique.
Miembro registrado
2.321 mensajes
Publicado el 26,abril 2019 - 17:21
Bonjour,

Essaye :
HFiltre(Fic_NTMouvementIdImp_Res,"Imprimée",Faux)


--
Bon dev,
Jean-Pierre
Publicado el 29,abril 2019 - 08:26
Dans son message précédent, Damien a écrit :
Bonjour,

J'ai un petit programme sans analyse qui doit accéder à un fichier de données
.fic

Si dessous la reproduction du cas qui pose problème, j'ai le message suivant

Vous avez appelé la fonction HFiltre.
Aucune analyse n'est ouverte et le fichier
<_SOURCE_Fic_NTMouvementIdImp_Res_1> n'a pas été décrit.

Je vois pas le problème, si je change en retirant les "" le hfiltre passe,
mais c'est la requête sql qui plante ???

Fic_NTMouvementIdImp_Res est une Source de Données


SI HDéclareExterne(ComplèteRep(fRepExe()) +
"NTMouvementIdImp.fic","Fic_NTMouvementIdImp_Res")=Faux ALORS
Info(HErreurInfo(hErrMessage))
FIN

RES_REQ_SQL est une Source de Données

Var_Rqt_Sql est une chaîne = "select * from Fic_NTMouvementIdImp_Res"


SI HExécuteRequêteSQL(RES_REQ_SQL,hRequêteDéfaut,Var_Rqt_Sql)=Faux ALORS
SI HErreur<>0 ALORS
Info( HErreurInfo(hErrMessage))
FIN
FIN


HFiltre(Fic_NTMouvementIdImp_Res,Imprimée,Faux)

POUR TOUT Fic_NTMouvementIdImp_Res



FIN


FIN:
// Annule le filtre
HDésactiveFiltre(Fic_NTMouvementIdImp_Res)

HAnnuleDéclaration(Fic_NTMouvementIdImp_Res)


bonjour,

voici un code qui fonctionne requête et filtre :

sdSourceWD est une Source de Données
sdSourceWD2 est une Source de Données
szReq est une chaîne

HDéclareExterne(ComplèteRep(fRepExe())+"MonFichier.FIC",sdSourceWD,"password")

// requête
szReq = "select * from %1"
szReq = ChaîneConstruit(szReq,sdSourceWD)
HExécuteRequêteSQL(sdSourceWD2,hRequêteDéfaut,szReq)

// filtre
HFiltre(sdSource,MaClé,"MaVal") // ici MaClé est le nom de la colonne
clé dans le fichier sans mettre " (double quote) autour du nom de la
clé
....
// ou
HFiltre(sdSource,"MaClé = MaVal") // valeur numérique
HFiltre(sdSource,"MaClé = 'MaVal'") // valeur texte


--
Cordialement JeAn-PhI
Publicado el 29,abril 2019 - 09:35
Bonjour,

Pourquoi tu dis ça, c'est exactement une ligne de mon code ci-dessus ?
Publicado el 29,abril 2019 - 17:38
Merci JeAn-PhI ça fonctionne pour moi aussi.