I just confirmed that this behavior is *not* happening in postgres (via psycopg2). transactions don't work with pysqlite1 so I can't deduce yet if this is a problem with psyqlite2 itself. not sure if there are other sqlite drivers for python.
On 7/6/06, Kumar McMillan <[EMAIL PROTECTED]> wrote: > this is driving me nuts! After re-reading the docs and the code > itself I can't find any reason why this should be happening (below). > Specifically, the first commited insert comes back to life after the > second transaction is rolled back. Does anyone have any suggestions > or insight? > SQLObject-0.8dev_r1814 > > thanks in advance, > Kumar > > _ > > from sqlobject import * > > class Person(SQLObject): > class sqlmeta: > cacheValues = False > name = StringCol() > > conn = connectionForURI('sqlite:/:memory:') > print conn.getConnection() > conn.debug = 1 > Person._connection = conn > Person.createTable() > > trans = conn.transaction() > new_p = Person(connection=trans, name='bob') > trans.commit() > print list(Person.select()) > > Person.clearTable() > print list(Person.select()) > > trans = conn.transaction() > new_p = Person(connection=trans, name='andy') > print list(Person.select()) > trans.rollback() > print list(Person.select()) > > >>> test_sqlite_trans.py > > <pysqlite2.dbapi2.Connection object at 0x562020> > 2/Query : CREATE TABLE person ( > id INTEGER PRIMARY KEY, > name TEXT > ) > 2/QueryR : CREATE TABLE person ( > id INTEGER PRIMARY KEY, > name TEXT > ) > 3/QueryIns: INSERT INTO person (name) VALUES ('bob') > 3/QueryOne: SELECT name FROM person WHERE id = (1) > 3/QueryR : SELECT name FROM person WHERE id = (1) > 3/COMMIT : > 4/Select : SELECT person.id, person.name FROM person WHERE 1 = 1 > 4/QueryR : SELECT person.id, person.name FROM person WHERE 1 = 1 > 5/QueryOne: SELECT name FROM person WHERE id = (1) > 5/QueryR : SELECT name FROM person WHERE id = (1) > [<Person 1 name='bob'>] > 6/Query : DELETE FROM person > 6/QueryR : DELETE FROM person > 7/Select : SELECT person.id, person.name FROM person WHERE 1 = 1 > 7/QueryR : SELECT person.id, person.name FROM person WHERE 1 = 1 > [] > 8/QueryIns: INSERT INTO person (name) VALUES ('andy') > 8/QueryOne: SELECT name FROM person WHERE id = (1) > 8/QueryR : SELECT name FROM person WHERE id = (1) > 9/Select : SELECT person.id, person.name FROM person WHERE 1 = 1 > 9/QueryR : SELECT person.id, person.name FROM person WHERE 1 = 1 > 10/QueryOne: SELECT name FROM person WHERE id = (1) > 10/QueryR : SELECT name FROM person WHERE id = (1) > [<Person 1 name='andy'>] > 10/ROLLBACK: > 11/Select : SELECT person.id, person.name FROM person WHERE 1 = 1 > 11/QueryR : SELECT person.id, person.name FROM person WHERE 1 = 1 > 12/QueryOne: SELECT name FROM person WHERE id = (1) > 12/QueryR : SELECT name FROM person WHERE id = (1) > [<Person 1 name='bob'>] > Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ sqlobject-discuss mailing list sqlobject-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss