Subject pyfirebirdsql: error with very simple parameterized query
Author skoczian
Hello,

I can't understand this:

>>> conn = firebirdsql.connect(dsn="localhost:Versand", user="sib", password="immergut", charset="UTF8")
>>> sql3 = 'SELECT katnr FROM prodkat WHERE katname = ?'
>>> curs = conn.cursor()
>>> curs.execute(sql3, ("Wolle",))
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
curs.execute(sql3, ("Wolle",))
File "C:\Python32\lib\site-packages\firebirdsql\fbcore.py", line 443, in execute
(h, oid, buf) = self.connection._op_response()
File "C:\Python32\lib\site-packages\firebirdsql\fbcore.py", line 1055, in _op_response
raise OperationalError(message, gds_codes, sql_code)
firebirdsql.OperationalError: Dynamic SQL Error
SQL error code = -303
internal error

This query, using a parameter for a numeric database column, works as expected:

>>> sql4 = "SELECT katname FROM prodkat WHERE katnr = ?"
>>> curs.execute(sql4, (7,))
>>> for x in curs.fetchall():
print(x)

['Wolle']

And this works too:

>>> curs.execute("SELECT katnr FROM prodkat WHERE katname = 'Wolle'")
>>> for x in curs.fetchall():
print(x)

[7]

But I really want to use parameterized queries.

I can't find error code -303 in the Firebird documentation, and I can't understand what's wrong.

Thank you for help,
Sibylle