Hi John, I haven't push SA with firebird to the limit, but until now I am happy... :)
And what "other fixes" are you talking about ? I am using SA 2.7 with firebird.py modified by changes made in Changeset 2674... As Michael wrote above, maybe a traceback would help a lot to solve your problem... BTW, I am using FB 1.5.x (don't know this minor version) on Debian Etch... Cheers, Roger On 5/31/07, johnbraduk <[EMAIL PROTECTED]> wrote: > > Roger, > Please excuse the interrupt, but have you applied other fixes? I (and > others) can't event get SQLA to connect to > my Firebird v1.5.4 database running on SUSE Linux. > > John > > > On 30 May, 19:47, "Roger Demetrescu" <[EMAIL PROTECTED]> > wrote: > > 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 -~----------~----~----~----~------~----~------~--~---