Michael, the patch did the trick... I was able to print the statement, execute it, and also do some inserts using ORM...
Now the second part of my problem, which is not fixed yet... ;) here is the script (now using default value/expression): ================================ from datetime import datetime from sqlalchemy import * db = create_engine("firebird://user:[EMAIL PROTECTED]//database.fdb") metadata = BoundMetaData(db) pessoa_table = Table('pessoa', metadata, Column('pes_id', Integer, primary_key=True), Column('pes_data', DateTime, default=func.current_timestamp()), Column('pes_nome', String(30)), Column('pes_sobrenome', String(30)), Column('pes_idade', Integer), Column('pes_idade', Integer)) s = pessoa_table.select() u = pessoa_table.update() i = pessoa_table.insert() ================================ Now my shell session : >>> i.execute(pes_id=111, pes_data=datetime.now()) <sqlalchemy.engine.base.ResultProxy object at 0x018C0D50> >>> i.execute(pes_id=222) Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> i.execute(pes_id=222) File "d:\sqlalchemy\lib\sqlalchemy\sql.py", line 1175, in execute return self.compile(engine=self.engine, parameters=compile_params).execute(*multiparams, **params) File "d:\sqlalchemy\lib\sqlalchemy\sql.py", line 1064, in execute return e.execute_compiled(self, *multiparams, **params) File "d:\sqlalchemy\lib\sqlalchemy\engine\base.py", line 783, in execute_compiled return connection.execute_compiled(compiled, *multiparams, **params) File "d:\sqlalchemy\lib\sqlalchemy\engine\base.py", line 570, in execute_compiled context.pre_exec() File "d:\sqlalchemy\lib\sqlalchemy\engine\default.py", line 200, in pre_exec self._process_defaults() File "d:\sqlalchemy\lib\sqlalchemy\engine\default.py", line 303, in _process_defaults newid = drunner.get_column_default(c) File "d:\sqlalchemy\lib\sqlalchemy\engine\base.py", line 1234, in get_column_default return column.default.accept_visitor(self) File "d:\sqlalchemy\lib\sqlalchemy\schema.py", line 807, in accept_visitor return visitor.visit_column_default(self) File "d:\sqlalchemy\lib\sqlalchemy\engine\base.py", line 1275, in visit_column_default return self.exec_default_sql(default) File "d:\sqlalchemy\lib\sqlalchemy\databases\firebird.py", line 367, in exec_default_sql c = sql.select([default.arg], from_obj=["rdb$database"]).compile(engine=self.engine) AttributeError: 'FBDefaultRunner' object has no attribute 'engine' Now I'm going to explicitly insert a row with pes_data = NULL (should'nt that work ??): >>> i.execute(pes_id=333, pes_data=None) Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> i.execute(pes_id=333, pes_data=None) File "d:\sqlalchemy\lib\sqlalchemy\sql.py", line 1175, in execute return self.compile(engine=self.engine, parameters=compile_params).execute(*multiparams, **params) File "d:\sqlalchemy\lib\sqlalchemy\sql.py", line 1064, in execute return e.execute_compiled(self, *multiparams, **params) File "d:\sqlalchemy\lib\sqlalchemy\engine\base.py", line 783, in execute_compiled return connection.execute_compiled(compiled, *multiparams, **params) File "d:\sqlalchemy\lib\sqlalchemy\engine\base.py", line 570, in execute_compiled context.pre_exec() File "d:\sqlalchemy\lib\sqlalchemy\engine\default.py", line 200, in pre_exec self._process_defaults() File "d:\sqlalchemy\lib\sqlalchemy\engine\default.py", line 303, in _process_defaults newid = drunner.get_column_default(c) File "d:\sqlalchemy\lib\sqlalchemy\engine\base.py", line 1234, in get_column_default return column.default.accept_visitor(self) File "d:\sqlalchemy\lib\sqlalchemy\schema.py", line 807, in accept_visitor return visitor.visit_column_default(self) File "d:\sqlalchemy\lib\sqlalchemy\engine\base.py", line 1275, in visit_column_default return self.exec_default_sql(default) File "d:\sqlalchemy\lib\sqlalchemy\databases\firebird.py", line 367, in exec_default_sql c = sql.select([default.arg], from_obj=["rdb$database"]).compile(engine=self.engine) AttributeError: 'FBDefaultRunner' object has no attribute 'engine' Thanks Michael PS: I am in the process of upgrading a dedicated host running Firebird 1.5.... after it is finished, maybe we could talk about how you can use it to test firebird engine... (if you are interested, of course)... On 5/30/07, Michael Bayer <[EMAIL PROTECTED]> wrote: > hey roger - > > the fix for that issue is trivial, however the code which it fixes is > doing something that should be done differently (that is, ensuring > that all pk columns are present in an INSERT statement). Since I > dont have FB here, can you try out the attached patch and see if it > works for you, not just for the "print i" part (that part works) but > for running some actual INSERT statements (and maybe the ORM) a > little bit as well ? > > thanks > > - mike --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---