I have created a database, this table has multiple tables. The tables are 
accessed through APIs. 

I have a particular problem with one of my table. I have written a few 
APIs for it. One API is used to Set (add or update) a record to it, one is 
used to retrieve the actual records in the table, one is used to remove a 
particular entry, one is used to clean the table from any entry, etc. 

I am facing the following frustrating scenario:

1. I can Add/Update as many records as I want with no problem. 
2. I can retrieve the records that I have created with no problem. In 
order to use the Retrieve API I first call another API (GetNum) which 
tells me how many records there are to be retrieved.
3. Once I have used the retrieved API I can no longer Add/Update any 
entry, I get the "database table is locked" error. 
4. I can still retrieve my records, but it remains locked.

This is how I add/update records:

sqlite3_exec("insert or replace into ......");

This is how I do the get num:

sqlite3_prepare("select count(*) from ...");
sqlite3_step( ... );
sqlite3_column_int(...);
sqlite3_finalize( ... );

This is how I do the retrieval:

sqlite3_prepare("select * from ...");
sqlite3_step(...);
sqlite3_column_text(...);
sqlite3_finalize(...);

Anyone has an idea of what may be wrong ? Oh yeah, I am running of my own 
port using uCos and a memory database. 

Mario Hebert 
Legerity

Reply via email to