Hello everyone,
I'm new on this list and I have only a few months of experience with
SQLITE. I use SQLITE 3.3.6 for Linux with C++.
I'm having a few problems with locking. But before describing the
problem itself, I would like to check if I'm doing something wrong.
That's what I do when I try to INSERT something in my database:
PREPARE
BIND
EC = STEP
while EC = BUSY {
TRY AGAIN 10 TIMES; // SQLITE is set to sleep 1 sec if BUSY.
IF TIME > 10 { BREAK; }
}
And then I do some other selects and inserts. Now I read that there is
another function I should be using: sqlite3_finalize. From what I
understood I should be doing:
PREPARE
BIND
EC = STEP
while EC = BUSY {
TRY AGAIN 10 TIMES; // SQLITE is set to sleep 1 sec if BUSY.
IF TIME > 10 { BREAK; }
}
FINALIZE
Am I right?
Question: what if a PREPARE returns BUSY? What should I do? Why would a
PREPARE return BUSY?
I'm having problems understanding the SQLite docs. At the 'C/C++
Interface for SQLite Version 3' it says that sqlite3_exec is a wrapper
to 'prepare, finalize, reset' without a step. But a little bit down the
document it says you should use and step. But again, what if I don't
want to wait the busy state anymore? Should I use finalize or interrupt
and then finalize?
Thank you very much for your help!
Best regards,
Daniel Colchete