PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2025 → Problème de requête sur une source de donnée externe
Problème de requête sur une source de donnée externe
Started by KAMIJOLE, Mar., 16 2025 2:26 PM - 2 replies
Registered member
1 message
Posted on March, 16 2025 - 2:26 PM
Bonjour,
J'ai un soucis de requête SQL sur une source de donnée externe.
Je crée un fichier de donnée dynamiquement avec les commandes HDécritRubrique, HDécritFichier et HCréation. Tout fonctionne correctement, le fichier de données (.fic) est bien créé dans le répertoire exe de l'application.
Ensuite avec la fonction HDéclareExterne je récupère avec HListeRubrique la liste des rubriques créées ce qui me laisse penser que le fichier de données est correcte et qu'on arrive bien à y accéder.
Maintenant je souhaite ajouter des enregistrement de façon dynamique j'ai donc penser à le faire via une requête SQL car dans le principe on est pas censé connaître les rubriques du fichier de données créé on doit donc construire une chaîne pour y accéder. Le soucis c'est que quelque soit la construction de la chaîne sql, je bute sur le nom du fichier de données .fic. (dans mon exemple le fichier de données se nomme FD_GEO_PAYS

// Déclaration des variables
sdSrcExt est une Source de Données // Source de donnée externe à consulter
sdReqSrcExt est une Source de Données // Requête sur source de donnée externe
sLstRub est une chaîne // Liste des rubriques de la source de donnée externe
sCheminSrcExt est une chaîne // Chemin de la source de donnée externe
sReqAjoutEnr est une chaîne // Requête SQL

// Implémentation des variables
sCheminSrcExt = fRepDonnées() + "\" + COMBO_ListeFD..ValeurAffichée + ".fic"
// Connexion à la source de données externe
HDéclareExterne(sCheminSrcExt,sdSrcExt)
// Récupérer la liste des rubriques
sLstRub = HListeRubrique(sdSrcExt,hLstRubrique)
// Construire la requête SQL
sReqAjoutEnr = "INSERT INTO FD_GEO_PAYS (Pay_CdeNum, Pay_CdeA2, Pay_CdeA3, Pay_NmFr, Pay_Cap, Pay_Cont, Pay_Nat ) VALUES ( 33, 'FR', 'FRA', 'France', 'Paris', 'Europe', 'Française');"
// Exécuter la requête SQL sur le fichier de données externe
sdReqSrcExt.ExécuteRequêteSQL(hRequêteDéfaut,sReqAjoutEnr)

// Déconnexion de la source externe
HAnnuleDéclaration(sdSrcExt)






Vous remerciant par avance de l'aide que vous pourriez m'apporter.
Registered member
1,381 messages
Posted on March, 16 2025 - 10:17 PM
Ok tu as construit ton fichier dynamiquement.
Ensuite tu demande la liste des rubrique de ce fichier.

plutot que de faire une requete "Insert", pourquoi ne pas grace au indirection remplir ta fiche et ensuite faire un hAjoute

--
Bertin CARRIERE
SRL RGPD.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere

+32(0)498/10.18.58
Co-President de l'asbl Be-Dev Association des développeurs Windev de Belgique
www.be-dev.be
Registered member
2,165 messages
Posted on March, 17 2025 - 10:15 AM
Bonjour,

Le nom du fichier doit être la source de données et pas le nom logique du fichier.
Voir l'exemple ici :
https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/259708-requete-sql-sur-fichier-externe-hdeclareexterne/read.awp

Peut-être aussi quelque chose comme :
sMonCodeSql = ChaîneConstruit([
INSERT INTO %1 (Pay_CdeNum, Pay_CdeA2, Pay_CdeA3, Pay_NmFr, Pay_Cap, Pay_Cont, Pay_Nat ) VALUES ( 33, 'FR', 'FRA', 'France', 'Paris', 'Europe', 'Française')
],sdReqSrcExt..Nom)


--
Bon dev,
Jean-Pierre
Message modified, March, 17 2025 - 10:21 AM