that is absolutely the reason transactions would not be working for you.
autocommit on the DBAPI essentially makes the commit() and rollback() methods
of the DBAPI connection a no-op.
On Jan 18, 2011, at 5:12 AM, bool wrote:
> I have put a self contained script that can probably reproduce this
> for you. I think that the argument 'connect_args': {'autocommit' :
> True } is causing the transactions to not work properly. Is this
> expected and if so can you explain the reason. Thanks in advance.
>
>
>
> ====================================================================================================================
> from sqlalchemy import *
> from sqlalchemy.sql import *
>
>
> def main():
> """
> Main body of the script.
> """
>
> meta = MetaData()
> kwargs = {
> 'echo' : True,
> 'module_name' : 'pyodbc',
> 'connect_args': {'autocommit' : True },
> }
> engine = create_engine("mssql://login:password@/database?
> driver=FreeTDS&dsn=DBDEV", **kwargs)
> connection = engine.connect()
> meta.bind = engine
>
> table = Table("bbb", meta, Column('id', Integer,
> primary_key=True), Column('name', String),
> Column('tt_start', Date, primary_key=True),
> Column('tt_end', Date, primary_key=True),
> Column('vt_start', Date, primary_key=True),
> Column('vt_end', Date, primary_key=True))
> table.create()
>
> for row in connection.execute(select([table])):
> print row
>
> trans = connection.begin()
> try:
> ins = table.insert().values(id=122, name='k',
> tt_start='20100101', tt_end='20100101', vt_start='20100101',
> vt_end='20100101')
>
> connection.execute(ins)
> ins = table.insert().values(id=121, name='k')
> connection.execute(ins)
> trans.commit()
> except:
> trans.rollback()
> for row in connection.execute(select([table])):
> print row
> raise
>
>
> if __name__ == "__main__":
> main()
>
> --
> 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.
>
--
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.