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


Reply via email to