1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Récupérer les noms des colonnes d'un fichier par programmation et auto

Discussion dans 'Windev' créé par Amiiinee77, Juin 17, 2025.

Tags:
  1. Amiiinee77

    Amiiinee77 Member

    Inscrit:
    Fev 10, 2024
    Messages:
    58
    J'aime reçus:
    0
    Salut tout le monde.
    Je suis entrain d'exécuter une requête sur un fichier de données nommé : Caisse.
    Avec une requête SQL "SELECT * FROM Caisse". Maintenant je veux automatiser un traitement avec une boucle POUR TOUT. Dans cette boucle je veux automatiser la récupération des nom de colonne du fichier Caisse. Ma boucle consiste à ajouter des lignes dans une variable de type tableau. La première ligne sera les noms de colonne et les autres ligne seront leurs valeurs.
     
    Tags:
  2. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    621
    J'aime reçus:
    343
    Bonjour,
    Tu décris très bien ce que tu désire, je ne comprend pas où est le problème.
    Pour un tableau classique, il suffit dans un premier temps d'ajouter la ligne comprenant les nom de colonnes, puis de boucler sur les tuples de la requête et de les ajouter.
     
    Gemini1961 apprécie ceci.
  3. Amiiinee77

    Amiiinee77 Member

    Inscrit:
    Fev 10, 2024
    Messages:
    58
    J'aime reçus:
    0

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour,
    Tu décris très bien ce que tu désire, je ne comprend pas où est le problème.
    Pour un tableau classique, il suffit dans un premier temps d'ajouter la ligne comprenant les nom de colonnes, puis de boucler sur les tuples de la requête et de les ajouter.
    Cliquez pour agrandir...
    Disant que mon fichier de données contient beaucoup de rubriques, je ne vais pas me perdre du temp à ajouter les noms de colonnes une par une. je veux automatiser la récupération des noms de colonnes.

    prenant exemple par cette requette :

    SI HExécuteRequêteSQL(mareq, hRequêteDéfaut, "SELECT * FROM Caisse") ALORS

    ici je veux ajouter dans une variable de type tableau les nom de colonnes récupérées.
    ensuite pour chaque ligne récupérée je la rajoute dans un tableau.
    voici un aperçu :

    "data": [
    ["id_caisse", "operation_number", "Date", "opration_type"],
    ["1", "AM-01", "2024-01-15", "Entrée"],
    ["2", "AM-02", "2024-01-16", "Sortie"]
    ],

    en automatisant les récupération de ces données, je n'aurai plus besoin de revenir dans ce code en cas d'ajout / supression / modification d'une colonnes dans le fichier de données

    FIN
     
  • Gemini1961

    Gemini1961 Well-Known Member
    MEMBRE WX DUMP TEAM

    Inscrit:
    Jan 2, 2018
    Messages:
    592
    J'aime reçus:
    885
    Bonsoir Amiiinee77

    Voici une idée :

    MaReq est une Source de données
    sSQL est une chaîne = "SELECT * FROM Caisse"

    SI HExécuteRequêteSQL(MaReq, hRequêteDéfaut, sSQL) ALORS

    data est un Tableau de 2 dimensions de chaîne

    // --- Étape 1 : noms des colonnes ---

    nNbColonnes est un entier = HListeRubrique(MaReq)
    tabColonnes est un Tableau dynamique de chaîne

    POUR i = 1 À nNbColonnes
    tabColonnes..Ajoute(HListeRubrique(MaReq, i))
    FIN

    // On ajoute la ligne d’en-tête au tableau final

    data..Ajoute(tabColonnes)

    // --- Étape 2 : valeurs ligne par ligne ---

    TANTQUE HLit(MaReq)
    ligne est un Tableau dynamique de chaîne

    POUR i = 1 À nNbColonnes
    // Récupération dynamique des valeurs
    champ est une chaîne = HListeRubrique(MaReq, i)
    valeur est une chaîne = MaReq..{champ}
    ligne..Ajoute(valeur)
    FIN

    data..Ajoute(ligne)
    FIN

    HAnnuleRequête(MaReq) // Libération propre

    SINON
    Info("Erreur dans la requête SQL : " + HErreurInfo())
    FIN
     
  • Amiiinee77

    Amiiinee77 Member

    Inscrit:
    Fev 10, 2024
    Messages:
    58
    J'aime reçus:
    0

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonsoir Amiiinee77

    Voici une idée :

    MaReq est une Source de données
    sSQL est une chaîne = "SELECT * FROM Caisse"

    SI HExécuteRequêteSQL(MaReq, hRequêteDéfaut, sSQL) ALORS

    data est un Tableau de 2 dimensions de chaîne

    // --- Étape 1 : noms des colonnes ---

    nNbColonnes est un entier = HListeRubrique(MaReq)
    tabColonnes est un Tableau dynamique de chaîne

    POUR i = 1 À nNbColonnes
    tabColonnes..Ajoute(HListeRubrique(MaReq, i))
    FIN

    // On ajoute la ligne d’en-tête au tableau final

    data..Ajoute(tabColonnes)

    // --- Étape 2 : valeurs ligne par ligne ---

    TANTQUE HLit(MaReq)
    ligne est un Tableau dynamique de chaîne

    POUR i = 1 À nNbColonnes
    // Récupération dynamique des valeurs
    champ est une chaîne = HListeRubrique(MaReq, i)
    valeur est une chaîne = MaReq..{champ}
    ligne..Ajoute(valeur)
    FIN

    data..Ajoute(ligne)
    FIN

    HAnnuleRequête(MaReq) // Libération propre

    SINON
    Info("Erreur dans la requête SQL : " + HErreurInfo())
    FIN
    Cliquez pour agrandir...
    ça m'a trop aider merci beaucoup
     
  • Partager cette page

    Chargement...