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.