Looks like I'm experiencing similar problems with InformixDB 2.5 and
SQLAlchemy 0.5.6. Whenever parameters are sent for execution it looks
like integers are used instead of placeholders like "?" or ":1".

Flollowing are some examples:

2009-10-20 11:12:46,235 INFO sqlalchemy.engine.base.Engine.0x...f5ac
BEGIN
2009-10-20 11:12:46,504 INFO sqlalchemy.engine.base.Engine.0x...f5ac
INSERT INTO users (login, password) VALUES (1, 2)
2009-10-20 11:12:46,506 INFO sqlalchemy.engine.base.Engine.0x...f5ac
['bob', None]
2009-10-20 11:12:46,673 INFO sqlalchemy.engine.base.Engine.0x...f5ac
ROLLBACK
Traceback (most recent call last):
  File "p.py", line 93, in <module>
    session.commit()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 673, in commit
    self.transaction.commit()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 378, in commit
    self._prepare_impl()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 362, in _prepare_impl
    self.session.flush()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 1356, in flush
    self._flush(objects)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 1434, in _flush
    flush_context.execute()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/unitofwork.py", line 261, in execute
    UOWExecutor().execute(self, tasks)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/unitofwork.py", line 753, in execute
    self.execute_save_steps(trans, task)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/unitofwork.py", line 768, in execute_save_steps
    self.save_objects(trans, task)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/unitofwork.py", line 759, in save_objects
    task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/mapper.py", line 1406, in _save_obj
      c = connection.execute(statement.values(value_params), params)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 824, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 874, in _execute_clauseelement
    return self.__execute_context(context)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 896, in __execute_context
    self._cursor_execute(context.cursor, context.statement,
context.parameters[0], context=context)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 950, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor,
context)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 931, in _handle_dbapi_exception
    raise exc.DBAPIError.instance(statement, parameters, e,
connection_invalidated=is_disconnect)
sqlalchemy.exc.InterfaceError: (InterfaceError) too many actual
parameters 'INSERT INTO users (login, password) VALUES (1, 2)' ['bob',
None]

===========================================================================
2009-10-20 11:36:04,640 INFO sqlalchemy.engine.base.Engine.0x...cfec
BEGIN
2009-10-20 11:36:04,900 INFO sqlalchemy.engine.base.Engine.0x...cfec
INSERT INTO groups (name) VALUES (1)
2009-10-20 11:36:04,901 INFO sqlalchemy.engine.base.Engine.0x...cfec
['admins']
2009-10-20 11:36:05,166 INFO sqlalchemy.engine.base.Engine.0x...cfec
INSERT INTO groups (name) VALUES (1)
2009-10-20 11:36:05,166 INFO sqlalchemy.engine.base.Engine.0x...cfec
['managers']
2009-10-20 11:36:05,430 INFO sqlalchemy.engine.base.Engine.0x...cfec
ROLLBACK
Traceback (most recent call last):
  File "p.py", line 86, in <module>
    session.commit()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 673, in commit
    self.transaction.commit()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 378, in commit
    self._prepare_impl()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 362, in _prepare_impl
    self.session.flush()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 1356, in flush
    self._flush(objects)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/session.py", line 1434, in _flush
    flush_context.execute()
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/unitofwork.py", line 261, in execute
    UOWExecutor().execute(self, tasks)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/unitofwork.py", line 753, in execute
    self.execute_save_steps(trans, task)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/unitofwork.py", line 768, in execute_save_steps
    self.save_objects(trans, task)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/unitofwork.py", line 759, in save_objects
    task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/orm/mapper.py", line 1406, in _save_obj
    c = connection.execute(statement.values(value_params), params)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 824, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 874, in _execute_clauseelement
    return self.__execute_context(context)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 896, in __execute_context
    self._cursor_execute(context.cursor, context.statement,
context.parameters[0], context=context)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 950, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor,
context)
  File "/usr/lib/python2.6/site-packages/SQLAlchemy-0.5.6-py2.6.egg/
sqlalchemy/engine/base.py", line 931, in _handle_dbapi_exception
    raise exc.DBAPIError.instance(statement, parameters, e,
connection_invalidated=is_disconnect)
sqlalchemy.exc.IntegrityError: (IntegrityError) SQLCODE -268 in
EXECUTE:
23000: Integrity constraint violation
IX000: ISAM error:  duplicate value for a record with unique key.
 'INSERT INTO groups (name) VALUES (1)' ['managers']

I will try previous versions of SQLalchemy to find out when it started
to happen. It was working for me previously so it must be some recent
version of SQLAlchemy.

Cheers
Alexander

On Oct 20, 11:28 am, goschtl <[email protected]> wrote:
> On 20 Okt., 17:11, "Michael Bayer" <[email protected]> wrote:
>
>
>
> > goschtl wrote:
>
> > > Hello SQLAlchemy,
>
> > > i am new to sqlalchemy, i currently work on project which
> > > needs sqlalchemy/informix integration.
>
> > > Maybe someone can have a look on this:
>
> > >    >>> session = Session()
> > >    >>> session
> > >    <sqlalchemy.orm.session.Session object at ...>
>
> > >    >>> from sqlalchemy import MetaData
> > >    >>> metadata = MetaData(session.connection())
> > >    >>> metadata
> > >    MetaData(<sqlalchemy.engine.base.Connection object at ...
>
> > >    >>> from sqlalchemy import Table
> > >    >>> users = Table('ln_passwd', metadata, autoload=True)
>
> > >    >>> print users.c.az == "022301429"
> > >    ln_passwd.az = 1        <--- i guess this should be ln_passwd.az
> > > = ?
>
> > >    >>> print users.insert(az='022301429')
> > >    INSERT INTO ln_passwd (az, az_key, passwort, berecht, versand,
> > > e_m_dat, e_m_zeit, sb_id, ser_nr, s_flag, upd_count) VALUES (1, 2, 3,
> > > 4, 5, 6, 7, 8, 9, 10, 11)
>
> > you mean to say:
>
> > insert().values(az='022301429')
>
> Hi Michael,
>
> you are right this seems to work... thanks for that?
>
>
>
> > also the informix dialect to my knowledge has never been used in recent
> > versions of SQLAlchemy, so your results may vary.  at the moment its
> > entirely unsupported since it lacks a maintainer.
>
> Any idae where i can look for this error:
>
> >>> print users.c.az == "022301429"
>
> ln_passwd.az = 1
>
> Do you think thats a problem of the driver or the
> dialect in sqlalchemy itself?
>
> Thanks for your help!
> Christian
>
>
>
> > > So it seems that anything with the parameters goes wrong. I have no
> > > idea where i can look for this problem.
>
> > > If you need more information please let me know?
>
> > > sqlalchemy 0.5.6
> > > informixdb 2.5
>
> > > Christian
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
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