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.

Reply via email to