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 :

Passer un paramétre dans une instruction SQL


Sujet :

WinDev

  1. #1
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Par défaut Passer un paramétre dans une instruction SQL
    bonjour les amis
    je suis bloqué devant deux problèmes dont je n'arrive pas à me sortir.
    le premier est que je voudrais passer des paramètres dans une requête SQL. qui groupe tous les articles vendus par moi et par Année, dont les paramètres seront passés au niveau du moisVente et AnnéeVente.
    voici les intructions de ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select T_vente.codArticle, T_vente.Designation,T_vente.MoiVente,T_vente.AnneVente,SUM(T_vente.Qtévend)
    from T_vente
    GROUP BY T_vente.CodArticle,T_vente.Designation,T_vente.AnneVente.
    Je compte monter un État sur base de cette requête paramétrée et dont son exécution se fera avec l'instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    iInitRequêteEtat(Nom de l'état,Param1,Param2)
    iApercue(i100)
    iImprimeEtat(Nom de l'état)
    les deux paramètres seront saisis sur une fenêtre par l'utilisateur

    mais je n'arrive pas à initialiser les deux paramètres dans le code SQL.

    Ma deuxième préoccupation est que mon projet contient des données par défaut qui ne doivent pas être vidées après la création de l'exécutable. Comment faire ? Car à chaque fois que je crée l'exécutable et la procédure d'installation, tous fichiers sont vidés de leurs données aléatoires or je veux que l'exécutable me conserve les données qui s'y trouvent.
    vraiment je compte sur votre aide.
    merci d'avance.

  2. #2
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonjour,

    Personnellement j'opterais pour le passage des paramètres directement à votre requête, je m'explique:

    Supposons que l'utilisateur saisisse l'année dans un champ de saisie que vous appelleriez "SAI_ANNEE", le paramètre a passer à votre requête serait donc le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE  T_vente.AnneVente = '"+SAI_ANNEE+"'
    De là, votre état imprimerait le résultat de votre requête.
    Bonne journée à vous
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  3. #3
    Membre émérite
    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
    Par défaut
    Bonjour
    Je demande aussi à l'utilisateur de saisir une date et ma requête est écrite ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE FT_DTFACT = {annee}
    avec un appel à ma requête comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    iInitRequêteEtat(Etat_EG008a,sai_annee)	
    iAperçu(iPage)
    iImprimeEtat(Etat_EG008a)
    Bon dev
    Gancau

  4. #4
    Membre expérimenté

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2010
    Messages : 125
    Par défaut
    Bonjour,

    Le passage de paramètres à une requête dépend de la manière dont tu la construis :

    Si tu la construis de manière textuelle dans ton code, tu peux effectivement utiliser la construction suggérée par Raptor92, ou les opérateur de construction de chaine [ et ] avec les paramètres %1,%2 puis utiliser un ChaineConstruit pour passer tes valeurs (voir doc).

    Pour une état basé sur une requête, tu peux générer ta requête au moment de la création de l'état, et/ou utiliser le générateur de requête : dans ce cas, dans ton code SQL, ton paramètre sera de la forme {MonParametre}, et la effectivement, tu pourras utiliser la syntaxe InitRequeteEtat...

    En ce qui concerne tes fichiers de données que tu ne veux pas créer à l'installation, (ils ne sont pas vidés, mais simplement pas intégrés à l'installation) et donc conserver tes données, il te suffit de les ajouter dans l'outil d'installation. Il y a un bouton "Ajouter des fichiers". Ajoutes bien les ndx et mmo si nécessaires...

    Voila,

    Très cordialement,

    Laurent

Discussions similaires

  1. [WD9] Passer un paramètre dans une requête SQL
    Par gbzmt dans le forum WinDev
    Réponses: 2
    Dernier message: 03/01/2009, 07h14
  2. Réponses: 5
    Dernier message: 03/07/2007, 10h31
  3. caractère critique dans une instruction sql
    Par Damien10 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/01/2007, 16h54
  4. Réponses: 2
    Dernier message: 11/10/2006, 13h37
  5. Réponses: 1
    Dernier message: 21/03/2006, 14h29

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