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 !