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.bewww.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 Belgiquewww.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 :s MonCodeSql = 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') ] , sd ReqSrcExt.. Nom )
-- Bon dev, Jean-PierreMessage modified, March, 17 2025 - 10:21 AM