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 [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
-~----------~----~----~----~------~----~------~--~---