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
-~----------~----~----~----~------~----~------~--~---

Reply via email to