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 :

Passer une query mssql en argument d'un fichier.py ?


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Points : 119
    Points
    119
    Par défaut Passer une query mssql en argument d'un fichier.py ?
    Bonjour;

    J'aimerais savoir comment passer en parametre d'un fichier python une requete ?

    J'ai un script SH (l'appelant du python) tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #!/bin/sh
    ...
    [blablabla]
    ...
    while read prod
    do
    query_mssql="select distinct CustomerId, ProductId, Field2 from TableProduct where ProductId = '"${prod}"' and Field2 != 'S:0';";
            python extract_site_distant.py ${query_mssql} > ${FIC_EXTRACT_MSSQL}
    done
    Mon fichier extract_site_distant.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    #!/usr/bin/python
    # -*- coding: iso-8859-15 -*-
    import sys
    import os
    import _mssql
    import unicodedata
    import pymssql
    import time
     
    try:
            app = os.getenv("APPLICATION")
            cnx = _mssql.connect(server='server', user='user', password='userpasswd', database='bdd')
            print sys.argv
            cnx.execute_query('argv[1]')
            for row in cnx:
                    print "Enregistrement=%s" % (row)
    except _mssql.MssqlDatabaseException,e:
            if e.number == 2714 and e.severity == 16:
                    print "Erreur: MssqlDatabaseException"
            else:
                    raise
    finally:
            cnx.close
    A l execution du script SH, cela me renvoi l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Produit :*COR*.
    Traceback (most recent call last):
      File "extract_site_distant.py", line 14, in <module>
        cnx.execute_query('argv[1]')
    _mssql.MssqlDatabaseException: SQL Server message 2812, severity 16, state 62, line 1:
    Could not find stored procedure 'argv'.
    DB-Lib error message 2812, severity 16:
    General SQL Server error: Check messages from the SQL Server
    Merci pour votre savoir !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Points : 119
    Points
    119
    Par défaut
    OK. Trouver avec le module getopt.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #!/usr/bin/python
    # -*- coding: iso-8859-15 -*-
    import sys
    import os
    import _mssql
    import unicodedata
    import pymssql
    import time
    import getopt
     
    opts = None
    try:
            opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
            cnx = _mssql.connect(server='serv', user='user', password='userpsswd', database='bdd')
            print "ARGS:"+args[0]
            cnx.execute_query(args[0])
            for row in cnx:
                    print "Enregistrement=%s" % (row)
    except _mssql.MssqlDatabaseException,e:
            if e.number == 2714 and e.severity == 16:
                    print "Erreur: MssqlDatabaseException"
            else:
                    raise
    finally:
            cnx.close
    Par contre quand je positionne la requete suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    query_mssql="select distinct CustomerId from TableProduct where ProductId = '"${prod}"' and Field2 != 'S:0';";
    Et bien il me renvoi dans mon fichier temp (definit dans le .SH) cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    {0: '02BO1C', 'CustomerId': '02BO1C'}
    {0: '02CH3C', 'CustomerId': '02CH3C'}
    {0: '02CH4C', 'CustomerId': '02CH4C'}
    {0: '02CR1C', 'CustomerId': '02CR1C'}
    {0: '02CR2C', 'CustomerId': '02CR2C'}
    {0: '02FL1C', 'CustomerId': '02FL1C'}
    {0: '02GU1C', 'CustomerId': '02GU1C'}
    {0: '02HI1C', 'CustomerId': '02HI1C'}
    {0: '02LA6C', 'CustomerId': '02LA6C'}
    {0: '02LE1C', 'CustomerId': '02LE1C'}
    etc...
    Je voudrais qu'il ne me renvoi que les valeurs (sans les cotes 'valeur') :
    02BO1C
    etc...
    02LA6C
    02LE1C

    Je vais essayer avec l'option -o lors de l'appel à python pour voir... (demain... )

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 155
    Points : 119
    Points
    119
    Par défaut
    print "%s" row[0] et emballé c pesé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer une image comme un argument
    Par Qt forever dans le forum OpenCV
    Réponses: 1
    Dernier message: 13/12/2011, 18h04
  2. Passer une variable en paramètre d'ouverture de fichier
    Par KiraX10A dans le forum Débuter
    Réponses: 5
    Dernier message: 12/01/2010, 14h30
  3. passer une variable js comme argument en php
    Par moncef357 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/08/2008, 15h48
  4. [Excel] Passer une Feuille Excel en argument d'une fonction, comment faire?
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/04/2008, 23h35
  5. Réponses: 14
    Dernier message: 16/05/2006, 11h26

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