Michael,

I run the following script and initially had the either my application 
and/or the IB Expert database tool (for Firebird SQL v 2.1) open at the 
same time.  Now the following tests are done without any other task 
accessing the database.

script:
engine = db.sa.create_engine(dburl, encoding='utf8', echo=False)
Session = db.sao.sessionmaker()
Session.configure(bind=engine)
session = Session()

keyA = 174
keyB = 175

itemB = session.query(db.Cbbottle).get(keyB)
print 'before move from B to A'
print 'itemB id: %s' % itemB.cbbottleid

for purch in itemB.purchase:
    print 'purchasid: %s' % purch.purchaseid
    print 'fk_cbbottleid: %s' % purch.fk_cbbottleid

session.flush()

itemA = session.query(db.Cbbottle).get(keyA)
itemB = session.query(db.Cbbottle).get(keyB)

print 'start to move from B to A'
print 'itemA id: %s' % itemA.cbbottleid

for purch in itemB.purchase:
    print 'purchasid: %s' % purch.purchaseid
    print 'fk_cbbottleid: %s' % purch.fk_cbbottleid
    purch.cbbottle = itemA
   
session.commit()

itemA = session.query(db.Cbbottle).get(keyA)
print 'after move from B to A'
print 'itemA id: %s' % itemA.cbbottleid

for purch in itemA.purchase:
    print 'purchasid: %s' % purch.purchaseid
    print 'fk_cbbottleid: %s' % purch.fk_cbbottleid

The following is the output, note that purchasid "80" is not being moved.
before move from B to A
itemB id: 175
purchasid: 79
fk_cbbottleid: 175
purchasid: 80
fk_cbbottleid: 175
purchasid: 81
fk_cbbottleid: 175

start to move from B to A
itemA id: 174
purchasid: 79
fk_cbbottleid: 175
purchasid: 81
fk_cbbottleid: 175

after move from B to A
itemA id: 174
purchasid: 79
fk_cbbottleid: 174
purchasid: 81
fk_cbbottleid: 174

Without doing other tasks on the database I run the same script again, 
and get this output ("80" is now moved).
before move from B to A
itemB id: 175
purchasid: 80
fk_cbbottleid: 175

start to move from B to A
itemA id: 174
purchasid: 80
fk_cbbottleid: 175

after move from B to A
itemA id: 174
purchasid: 79
fk_cbbottleid: 174
purchasid: 80
fk_cbbottleid: 174
purchasid: 81
fk_cbbottleid: 174

If I run the script again nothing is moved (which is obviously correct) 
and all shows under fk_cbbottleid "174", now I change the keyA and keyB 
variable and reverse the values as follows:
keyA = 175
keyB = 174

Now I get this and again "80" is not moved.
before move from B to A
itemB id: 174
purchasid: 79
fk_cbbottleid: 174
purchasid: 80
fk_cbbottleid: 174
purchasid: 81
fk_cbbottleid: 174

start to move from B to A
itemA id: 175
purchasid: 79
fk_cbbottleid: 174
purchasid: 81
fk_cbbottleid: 174

after move from B to A
itemA id: 175
purchasid: 79
fk_cbbottleid: 175
purchasid: 81
fk_cbbottleid: 175

I can repeat this again and again and it is always "80" which does not 
move the first time.

Any ideas on what I can do to find out what is causing this row not to 
move would be very much appreciated.

Werner

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to