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

Python Discussion :

passage de variable dans une requete sql


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Points : 15
    Points
    15
    Par défaut passage de variable dans une requete sql
    Bonjour,

    Je travaille actuellement sur un script en python mais j'ai un problème sur ma requête SQL.

    Je n'arrive pas à récuperer ma variable python qui est dict[GROUP] dans ma requete SQL

    La requête ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT REFSNOW.CISNOW FROM REFSNOW REFSNOW, GRPCTM GRPCTM WHERE REFSNOW.IDCI=GRPCTM.IDCI AND CTMGRP = dict[GROUP]
    Le but de la requete est de récupérer ce que tape l'utilisateur et interroger la base de donné pour voir si l'information correspond bien

    Cela fait plusieurs jours que je cherche, je suis a court d'idée. des suggestions?

    Merci d'avance

    BONNE ANNÉE A TOUS !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Citation Envoyé par Fataly Voir le message
    Cela fait plusieurs jours que je cherche, je suis a court d'idée. des suggestions?
    Si la documentation du module sqlite3 (ou de celle du pilote du SGDB utilisé) vous paraît trop technique, le chapitre sur les SGDB de votre tuto. Python préféré a été écrit pour vous.
    En quelques jours vous pouvez largement trouver une réponse à cette question (et aussi à celles que vous n'avez pas encore posé sur le sujet).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    Salut,

    La seul chose c'est que je n'utilise pas le sqlite3 mais j'utilise sqlplus mais je vais quand même lire.

    Merci

    Citation Envoyé par wiztricks Voir le message
    Salut,



    Si la documentation du module sqlite3 (ou de celle du pilote du SGDB utilisé) vous paraît trop technique, le chapitre sur les SGDB de votre tuto. Python préféré a été écrit pour vous.
    En quelques jours vous pouvez largement trouver une réponse à cette question (et aussi à celles que vous n'avez pas encore posé sur le sujet).

    - W

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Citation Envoyé par Fataly Voir le message
    La seul chose c'est que je n'utilise pas le sqlite3 mais j'utilise sqlplus mais je vais quand même lire.
    SQLPlus? C'est une commande Oracle qui se passe en ligne de commande. Côté Python, çà se limite à construire des chaînes de caractères qui devront être un SQL qui conviendra à SQLPlus. Le plus difficile sera de dialoguer avec SQLPlus pour récupérer et formater la sortie avec subprocess.Popen.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Points : 388
    Points
    388
    Par défaut

    Vu que la requete peut etre une chaine de caractère ... vois du coté des methodes de substitution des chaines ... je fais alluision a la methode format ou encore les substitution a la maniere du langage C avec les %s, %d ..... un exepmple tou bete sera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dict['test'] = "Super"
    ma_requete = "SELECT * FROM Users WHERE Users.cri = %s;" % dict['test']
    C'est vrai que c'est tout pourri mais bon c'est un exemple terre à terre
    Toute chose dépend de la valeur qu'on lui attribue !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    Salut,

    J'ai déjà traiter la sortie

    Citation Envoyé par wiztricks Voir le message
    Salut,



    SQLPlus? C'est une commande Oracle qui se passe en ligne de commande. Côté Python, çà se limite à construire des chaînes de caractères qui devront être un SQL qui conviendra à SQLPlus. Le plus difficile sera de dialoguer avec SQLPlus pour récupérer et formater la sortie avec subprocess.Popen.

    - W
    J'ai essaye avec la méthode %s mais il fait du chichi encore...

    Citation Envoyé par cervo Voir le message

    Vu que la requete peut etre une chaine de caractère ... vois du coté des methodes de substitution des chaines ... je fais alluision a la methode format ou encore les substitution a la maniere du langage C avec les %s, %d ..... un exepmple tou bete sera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dict['test'] = "Super"
    ma_requete = "SELECT * FROM Users WHERE Users.cri = %s;" % dict['test']
    C'est vrai que c'est tout pourri mais bon c'est un exemple terre à terre

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 33
    Points : 15
    Points
    15
    Par défaut Variable python - sql
    Bonjour à tous,

    J'ai un petit problème donc je viens l'exposer ici

    Alors pour résumer j'ai mon script python qui se connecter à une base de donnée et ensuite il exécute un fichier .sql

    Maintenant mon soucis est le suivant :

    Dans la rêquete SQL il doit faire une comparaison d'une valeur dans le BDD avec une variable qui est dans mon script python...

    Comment je peux récupérer la variable python et l’implémenter dans ma requête SQL, sachant que se sont deux fichiers différents

    Ma variable en python c'est : GROUP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT REFSNOW.CISNOW FROM REFSNOW REFSNOW, GRPCTM GRPCTM WHERE REFSNOW.IDCI=GRPCTM.IDCI AND CTMGRP = VARIABLE_PYTON
    Merci pour vos futur réponse

    PS : C'est mon seul point de blocage sinon tout le reste est déja prêt

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 19
    Points : 19
    Points
    19
    Par défaut Formatage commandes SQL pour chaines de caractère
    bonjour,

    Pour compléter cette discussion j'ai une question a poser.

    je suis dans la même situation que vu précédemment. Cependant j'ai deux variables a intégrer a ma requête sql dont une est une chaîne de caractère.

    J'ai effectué la manipulation suivante :

    choice1 = (attribut,departement.upper())
    command1='SELECT %s FROM evoldep WHERE dep = %s;' % choice1

    ma commande fonctionne très bien pour le premier %s cependant pour le second ca n'accepte pas les chaines de caractères ( soit plus d'un mots)

    par exemple mon département été HAUTE CORSE.

    Y a t-il moyen de spécifier le nombre de mot ou bien de placer des guillemet dans la requêtes selon ce modèle ?

    Bien cordialement

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Vous devez faire en 2 temps car le premier %s est le nom de la table et les suivants les arguments de la requête...


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 19
    Points : 19
    Points
    19
    Par défaut Formatage commandes SQL pour chaines de caractère
    Comment ça en deux temps?

    je viens de comprendre mon erreur, à priori pour les chaînes de caractère plus longue on doit simplement mettre le %s entre guillemet.
    Dans le cas de mon jeu de données cela ne fonctionne pas mais je pense que cela est du à un autre problème.

    mais en tout cas merci pour votre aide

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Citation Envoyé par elgateau Voir le message
    Comment ça en deux temps?
    Si vous n'avez pas ouvert la documentation, vous ne comprenez pas ce que je raconte... et tant pis pour vous.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par elgateau Voir le message
    je viens de comprendre mon erreur, à priori pour les chaînes de caractère plus longue on doit simplement mettre le %s entre guillemet.
    C'est un souci SQL ça, pas Python. Si SQL veut la string écrite sous cette forme <<< haute corse >>> ben à toi de créer, avec Python, la string qui va bien pour rajouter ce qui manque.
    Mais avant de te lancer dans Python, d'abord faire tes essais en SQL pour trouver la bonne syntaxe puis ensuite te mettre à Python pour la générer correctement.

    Citation Envoyé par elgateau Voir le message
    choice1 = (attribut,departement.upper())
    Bien vu les parenthèses, ça rassure. Moi j'aurais même écrit choice1 = ((((attribut,departement.upper())))) pour plus de sûreté...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [Python 2.X] passage de variable dans une requete sql like
    Par repgarent dans le forum Général Python
    Réponses: 5
    Dernier message: 06/11/2014, 06h37
  2. Réponses: 2
    Dernier message: 30/01/2014, 01h51
  3. Utililiser une variable dans une requete SQL
    Par le_misterioso dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/07/2009, 12h31
  4. BO 5.1 Champ variable dans une requete SQL
    Par Sergio63 dans le forum Deski
    Réponses: 1
    Dernier message: 21/05/2007, 12h45
  5. utilisation d'une variable dans une requete SQL
    Par ezneti dans le forum Visual C++
    Réponses: 1
    Dernier message: 30/04/2007, 10h47

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