curious paramstyle qmark behavior
Diez B. Roggisch
deets at nospam.web.de
Fri Oct 20 16:56:43 EDT 2006
BartlebyScrivener schrieb:
> With
>
> aColumn = "Topics.Topic1"'
>
> The first statement "works" in the sense that it finds a number of
> matching rows.
>
> c.execute ("SELECT Author, Quote, ID, Topics.Topic1, Topic2 FROM
> QUOTES7 WHERE " + aColumn + " LIKE ?", ("%" + sys.argv[1] + "%",))
>
> I've tried about 20 different variations on this next one. And it finds
> 0 records no matter what I do. Is there some violation when I use two
> qmarks?
>
> c.execute ("SELECT Author, Quote, ID, Topics.Topic1, Topic2 FROM
> QUOTES7 WHERE ? LIKE ?", (aColumn, "%" + sys.argv[1] + "%"))
>
> I'm using mx.ODBC and Python 2.4.3 to connect to an MS Access DB.
Parameter passing only works for literal values - not for creating sql
statements.
So, actually your first version is the correct version.
Diez
More information about the Python-list
mailing list