On 16/09/2010 14:32, Michael Bayer wrote:

session imported from Meta ? If use Meta.Session.execute it's returns
RowProxy, which has no lastrowid parameter.

execute() does not return a RowProxy.   All execute() methods return a 
ResultProxy which consists of metadata about a result as well as an interator 
interface that produces RowProxy instances.

Right, but I wonder if this mirrors what the OP reports:

>>> from sqlalchemy import create_engine,MetaData,Table,Column,Integer
>>> from sqlalchemy.orm import sessionmaker
>>> Session = sessionmaker(bind=create_engine('mysql://...',echo=True))
>>> session = Session()
>>> meta = MetaData(session.bind,reflect=True)
<snip>
>>> table = Table('testx',meta,
...   Column('id',Integer(),primary_key=True),
...   Column('data',Integer()))
>>> table.create()
2010-09-16 15:42:21,408 INFO sqlalchemy.engine.base.Engine.0x...e610
CREATE TABLE testx (
        id INTEGER NOT NULL AUTO_INCREMENT,
        data INTEGER,
        PRIMARY KEY (id)
)
>>> result = session.execute('INSERT testx set data=13')
2010-09-16 15:42:39,857 INFO sqlalchemy.engine.base.Engine.0x...e610 BEGIN
2010-09-16 15:42:39,858 INFO sqlalchemy.engine.base.Engine.0x...e610 INSERT testx set data=13
2010-09-16 15:42:39,859 INFO sqlalchemy.engine.base.Engine.0x...e610 ()
>>> result.lastrowid
Traceback (most recent call last):
  File "<console>", line 1, in <module>
File "/SQLAlchemy-0.6.4-py2.6.egg/sqlalchemy/engine/base.py", line 2310, in lastrowid
    return self.cursor.lastrowid
AttributeError: 'NoneType' object has no attribute 'lastrowid'

>>> type(result)
<class 'sqlalchemy.engine.base.ResultProxy'>

>>> session.commit()
2010-09-16 15:43:06,034 INFO sqlalchemy.engine.base.Engine.0x...e610 COMMIT
>>> result.lastrowid
Traceback (most recent call last):
  File "<console>", line 1, in <module>
File "SQLAlchemy-0.6.4-py2.6.egg/sqlalchemy/engine/base.py", line 2310, in lastrowid
    return self.cursor.lastrowid
AttributeError: 'NoneType' object has no attribute 'lastrowid'

I would have thought MySQL would support lastrowid?

Chris

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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.

Reply via email to