From: Piotr S. <pi...@ap...> - 2008-11-27 17:29:07
|
Vlad Khorsun pisze: >> Tranaction was started when I connect to database >> Here I made savepoint, run 100 queries in this >> transaction and made 2 update. > > Why do you need this savepoint ? Reason is my GUI. For example, I have 1 list, For example list of student. from this list I edit one record of student. here my framework make 1 savepoint In this edited record I have in form: (on top are edit components(ferst name, second name ... , on bottom is view for ex. semestrers) Next: I edit one detail semestr record. My framework make 2 savepoint In this edit form for i have on top edit controls from semester and on bottom list with subjects. I Add for example 3 new subjects. Next I deside to abort form with edit subjecjts. and make rollback to 2 secont savepoint Because, when i don't make rollback to savepoint and edit this semester I will see this 3 new subjects. when I close form with edit student I make commit reataing and my 1 savepoint is released (I think so). But connection is still open. > >>>> Process on linux have about 30 Mb RAM. >>>> Next I make commitretainng, and close all >>>> queries >>> What does 'close all queries' mean exactly? >> Close meen ibquery.close, this make unprepare >> and close query > > TIBquery.Close calls TIBCustomDataSet.InternalClose which calls > FQSelect.Close which is TIBSQL.Close which just closed cursor without > freeing statement handle (it does Unprepare). I try to make unprepare and close, and I see result > > Note, commit\rollback retaining hold OST and effectively disable garbage collection I now, but it is dificult to rewrite my project, because is simplie very big :) If in my situation I should use commit, I rewrite my application. But if it is not nesesery better is for example drink some beer at evening :) -- regards Piotr Such |