Hi,

 

I'm trying to get data out of a MS SQL Server 2005 database from a
Python 2.5 script, using the odbc module - I can't easily get anything
more up-to-date installed on this system.

 

If I specify the query literally, like this:

 

import dbi, odbc

 

myQuery = """SELECT EnteredValue FROM SampleTests INNER JOIN
SampleResults

ON (SampleTests.SampleCode = SampleResults.SampleCode AND 

SampleTests.AuditFlag = SampleResults.AuditFlag AND

SampleTests.TestPosition = SampleResults.TestPosition)

WHERE (SampleTests.SampleCode='foo' AND SampleTests.AuditFlag=0 AND
SampleTests.TestCode='bar' AND

SampleTests.TestStatus<900 AND SampleResults.ComponentName='IntMethod')

"""

 

conn=odbc.odbc("DSN=mydatabase;UID=myusername;PWD=mypassword")

cursor=conn.cursor()

cursor.execute(myQuery)

 

print cursor.fetchall()

 

conn.close()

 

 

...it works OK, but if I try to parameterise the query:

 

myQuery = """SELECT EnteredValue FROM SampleTests INNER JOIN
SampleResults

ON (SampleTests.SampleCode = SampleResults.SampleCode AND 

SampleTests.AuditFlag = SampleResults.AuditFlag AND

SampleTests.TestPosition = SampleResults.TestPosition)

WHERE (SampleTests.SampleCode=%s AND SampleTests.AuditFlag=0 AND
SampleTests.TestCode=%s AND

SampleTests.TestStatus<900 AND SampleResults.ComponentName='IntMethod')

"""

...

cursor.execute(myQuery, ('foo', 'bar'))

 

 

...I get:

 

dbi.program-error: [Microsoft][ODBC SQL Server Driver][SQL
Server]Incorrect syntax near 's'. in EXEC

 

 

Any idea what I'm doing wrong please? Apologies if I've missed something
stupid. I get the same error if I only specify one of the parameters
with %s and leave the other one literal, by the way.

 

Thanks,

Tom

 

   Tom Hawkins

Principal Scientist

Innospec Inc

Tel: +44 (0)151 356 6197

Fax: +44 (0)151 356 6112

 

<<image001.jpg>>

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to