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

Reply via email to