IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Requête multiple avec séparateur


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 13
    Points
    13
    Par défaut Requête multiple avec séparateur
    Bonjour

    J'ai une requête multiple qui me retourne 6 informations, que j'envoi ensuite dans un fichier CSV. Le problème est que je voudrai que chaque information soit inséré dans une colonne.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    POUR i= 1 A 34
    TableauAjouteLigne(tableauF,PG_Requete("SELECT BEKTNUMERO,BEKTLIGNE,BECTCODEPF,BECTCODCOM,BECNCONSPR,BECNCONSRE FROM BESOIN  WHERE BECTCODEPF = ¿"+Donnee+"¿  AND BECTCODCOM =¿"+Ncomp+"¿"))
    Ncomp++
    FIN
     
    Valeurs=TableauVersCSV(tableauF,";")
    fSauveTexte("C:\Documents and Settings\STEPHANE\Bureau\test1.csv",Valeurs)
    J'ai essayer de mettre +'TAB'+ ou || TAB|| à la place des "," mais sa ne marche pas.

    Merci de votre aide

  2. #2
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour
    Tu devrais effectivement avoir des ; comme séparateur.
    Je n'ai plus la version 12 installée sur ce PC, je ne peux pas tester.
    Ce que tu peux faire est d'écrire manuellement ton fichier, c'est beaucoup plus long je te le concede

    Bon dev
    Gancau

  3. #3
    Membre à l'essai
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Bonjour

    Non je n'ai même pas de ; entre les information, mais des carré.
    Par conte bizarrement quand je copie le contenu de ma cellule excel et que je colle autre part, les carrés se transforme en Tabulation, et du coup mon tableau prend la bonne forme.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 199
    Points : 12 775
    Points
    12 775
    Par défaut
    Bonjour,
    J'imagine que le tableau en question est un tableau à deux dimension de chaine.
    D'après l'aide en ligne de TableauAjouteLigne, ton ajout ne peut pas fonctionner. En effet il faut passer chaque valeur séparément, et non sous forme d'une chaine séparée par des tabulations.

    Si tu regardes le contenu de ton tableau, seul la première "colonne" sera renseignée.


    Tatayo.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Merci de ta réponse
    Si j'ai bien compris il faut que je fasse ce code du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableauAjouteLigne(tableauF,PG_Requete("SELECT BEKTNUMERO FROM BESOIN  WHERE BECTCODEPF = ¿"+Donnee+"¿  AND BECTCODCOM =¿"+Ncomp+"¿"),PG_Requete("SELECT BEKTLIGNE FROM BESOIN  WHERE BECTCODEPF = ¿"+Donnee+"¿  AND BECTCODCOM =¿"+Ncomp+"¿"),PG_Requete("SELECT BECTCODEPF FROM BESOIN  WHERE BECTCODEPF = ¿"+Donnee+"¿  AND BECTCODCOM =¿"+Ncomp+"¿"),PG_Requete("SELECT BECTCODCOM FROM BESOIN  WHERE BECTCODEPF = ¿"+Donnee+"¿  AND BECTCODCOM =¿"+Ncomp+"¿"),PG_Requete("SELECT BECNCONSPR FROM BESOIN  WHERE BECTCODEPF = ¿"+Donnee+"¿  AND BECTCODCOM =¿"+Ncomp+"¿"),PG_Requete("SELECT BECNCONSRE FROM BESOIN  WHERE BECTCODEPF = ¿"+Donnee+"¿  AND BECTCODCOM =¿"+Ncomp+"¿"))
    Parce que j'ai déjà essayer ce code, mais dans ce cas mes valeurs se range que dans les deux première colonnes.

    Merci

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 199
    Points : 12 775
    Points
    12 775
    Par défaut
    C'est dommage de lancer plusieurs fois la même requête, et le code devient un peu illisible.

    Le mieux serait de lancer la requête une fois avec les 6 colonnes, de récupérer le résultat dans une variable, puis de remplir le tableau en utilisant ExtraitChaine pour isoler chaque valeur.

    Tatayo.

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Citation Envoyé par tatayo Voir le message
    C'est dommage de lancer plusieurs fois la même requête, et le code devient un peu illisible.

    Le mieux serait de lancer la requête une fois avec les 6 colonnes, de récupérer le résultat dans une variable, puis de remplir le tableau en utilisant ExtraitChaine pour isoler chaque valeur.

    Tatayo.
    Ca me parait être plus efficace aussi car il faut que tu gardes l'enregistrement au complet pour éviter les surprises avec des champs non alimenté par exemple ...

    Avec 6 variables auxquelles tu affectes le contenu de chaque champ de ta requête, ton affectation avec tableauajouteligne devrait mieux se passer.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Je ne connai pas la commande ExtraitChaine, du coup je ne sais pas si je l'utilise correctement. (ça fait 3 jours que j'ai débuté Windev).

    Voila ce que j'ai essayé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Valeurs est une chaîne
    ValeursF est une chaîne
    POUR i= 1 A 34
    Valeurs=PG_Requete("SELECT BEKTNUMERO,BEKTLIGNE,BECTCODEPF,BECTCODCOM,BECNCONSPR,BECNCONSRE FROM BESOIN  WHERE BECTCODEPF = ¿"+Donnee+"¿  AND BECTCODCOM =¿"+Ncomp+"¿")
    Ncomp++
    FIN
     
    ValeursF = ExtraitChaîne(Valeurs,2,"TAB",DepuisDébut)
    fSauveTexte("C:\Documents and Settings\STEPHANE\Bureau\test1.csv",ValeursF)
    J'ai essayé ça, et ça me fait planter mon fichier test1.csv.
    Merci pour vote aide

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 199
    Points : 12 775
    Points
    12 775
    Par défaut
    Je te conseille de regarder l'aide en ligne de ExtraitChaine().
    Ensuite tu devrais placer un point d'arrêt sur la ligne 1, puis faire du pas à pas en surveillant les valeurs de tes variables.
    Tu verras que tu as un gros problème de logique dans ton code...

    Tatayo.

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 91
    Points
    91
    Par défaut
    Bonjour

    Je ne connais pas PG_REQUETE.
    C'est une procedure interne à ton logiciel ou c'est une procedure Windev ? Si Windev, je ne trouve aucune aide dessus ????

  11. #11
    Membre à l'essai
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Bonjour

    PG_requete est une procédure propre au programme que j'utilise "CEGID PMI".

    Après avoir chercher en m'aidant de l'aide ExtraitChaine, je n'arrive pas à trouver mon ou mes erreurs, je débute tout juste avec windev et je n'ai pas encore la logique de programmation.

    Merci

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 199
    Points : 12 775
    Points
    12 775
    Par défaut
    Citation Envoyé par axel56 Voir le message
    Bonjour

    PG_requete est une procédure propre au programme que j'utilise "CEGID PMI".

    Après avoir chercher en m'aidant de l'aide ExtraitChaine, je n'arrive pas à trouver mon ou mes erreurs, je débute tout juste avec windev et je n'ai pas encore la logique de programmation.

    Merci
    Citation Envoyé par tatayo Voir le message
    Je te conseille de regarder l'aide en ligne de ExtraitChaine().
    Ensuite tu devrais placer un point d'arrêt sur la ligne 1, puis faire du pas à pas en surveillant les valeurs de tes variables.
    Tu verras que tu as un gros problème de logique dans ton code...

    Tatayo.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Bonjour

    Je ne comprends pas comment un Extraitchaine peut corriger mon problème de colonnes, si j'ai bien compris, extraichaine permet de prendre une parti de ma chaîne, soit en partant du début, soit de la fin soit à partir d'une limite qu'on lui donne.

    Ensuite tu devrais placer un point d'arrêt sur la ligne 1, puis faire du pas à pas en surveillant les valeurs de tes variables.
    Tu verras que tu as un gros problème de logique dans ton code...
    Je ne sais pas comment faire du pas à pas .

    Merci

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 199
    Points : 12 775
    Points
    12 775
    Par défaut
    Il suffit de chercher dans l'aide en ligne...

    Tatayo.

Discussions similaires

  1. récupération multiple avec une seule requète
    Par rebel29270 dans le forum Requêtes
    Réponses: 7
    Dernier message: 04/12/2011, 19h01
  2. Insert multiples avec sous-requête SELECT
    Par lolymeupy dans le forum Requêtes
    Réponses: 6
    Dernier message: 08/08/2011, 17h57
  3. Requêtes multiples avec JDBC et JSP
    Par julien_chable dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 10/03/2011, 13h49
  4. Requête d'insertion multiple avec 1 valeur fixe
    Par [DreaMs] dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/12/2005, 09h28
  5. [SQL] Requête complexe avec appel multiple à la même table
    Par Julien Dufour dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/04/2005, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo