Hello, Thanks for your replies. I am working on Windows XP with Sybase OCS, perhaps that is why pjjH's code doesn't work out of the box for me. For example, I am unable to import _FetchLazy. Would I have to install FreeTDS to get this working? Is it a wise idea to adapt this to Windows?
I wrote a small test script after reading Michael's message: import Sybase db = Sybase.connect ('*****', '*****', '*****', '*****') c = db.cursor() c.execute ("select * from SomeTable where lab...@label and i...@id", {'@label': 'FOO', '@id': 7}) for r in c.fetchall(): print r db.close The above works without any problems. However, when I quote the 7 and change the relevant line: c.execute ("select * from SomeTable where lab...@label and i...@id", {'@label': 'FOO', '@id': '7'}) I get the following error: DatabaseError: Msg 257, Level 16, State 1, Line 1 Implicit conversion from datatype 'CHAR' to 'INT' is not allowed. Use the CONVERT function to run this query. The relevant code in my Pylons controller (using my modified version of Alexander Houben's code) iterates over all HTTP POST variables and appends them to a query: for q in request.params: if request.params[q]: statuses = statuses.filter(q+"=:"+q) statuses = statuses.params(request.params).all() This gives the same error as above since all the param values are strings and some column types are integers: DataError: (DataError) ('22018', "[22018] [DataDirect][ODBC Sybase Wire Protocol driver][SQL Server]Implicit conversion from datatype 'CHAR' to 'INT' is not allowed. Use the CONVERT function to run this query.\n (257) (SQLExecDirectW)") Am I doing something fundamentally stupid by not checking the types of and casting the POST values or is this a problem specific to Sybase? If it is the latter, is there any way I can modify the SybaseInteger or Sybase SQL Dialect class to cast all columns which are integers? Thanks again! On Jun 30, 11:02 am, "phrrn...@googlemail.com" <phrrn...@googlemail.com> wrote: > > as a note, I made some attempts with the sybase dialect and I can say > > that FreeTDS with sybase is not usable at all since it doesn't render > > bind parameters correctly. > > This is correct if one is using the FreeTDS implementation of the CT- > Lib API but is not the case when using pyodbc: placeholders work OK > (at least for vanilla datatypes) > > pjjH --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---