Program flow - DB changes - savepoints

I recently realized that the savepoint command is not available in CubeSQL… So now I am facing a problem…

There’s a point in my app where a long process is engaged where the user has to input some data, which will be saved in the DB and will be part of the following forms to complete.

I was dealing with that situation with a savepoint before the process begun. so if at any time the process was interrupted or failed or cancelled it was just a matter of rolling back to that savepoint. Marco (from Sqlabs) pointed out that is not possible, so now the only simple solution I see is beginning a transaction before all the process begins, (and if anythings fails, rollback). But this transaction locks the DB… and as it is a long process that can take 1-5 minutes that is unacceptable, as no others can write at that time.

Not sure how to deal with this…

Can you write the data to a temporary table, then transfer it when it’s done?

Hey Kem… I could do that… I could also save all the values/choices/changes to the data in memory and do all processing at the end in a very short transaction… I was just wondering if there would be any magical solution that would avoid me the hassle of creating a new set of tables, reading from them or reading the data from variables instead of the DB. Basically because my bad programming skills led me to create a coupled DB-UI. Now I should de couple that, and that means a lot of refactoring…

transaction is not enough that you need savepoints ?

Take a look at Bob Keeney’s Argen product. It may help you with this…

http://www.bkeeney.com/allproducts/argen/

Jean, a transaction would lock the DB for as long as the process may last (could be a couple of minutes)… That’s no good…