Hallo, Has anyone an idea on how to bypass this problem ? I'm about to write some abstraction-layer C++ class that implement some database and recordset function, using SQLite version 2.8.5. My objects needs to step into rows and return row data one by one. This has been succesfully and easily implemented using the sqlite_compile, sqlite_step and sqlite_finalize functions. But, i've now a problem and i don't have found a valid solution: during record navigation of a table i need to update some columns of that row. If the sqlite library is inside a virtual machine (between sqlite_compile and sqlite_finalize), any update statment that refer to the same table of the sql, returns whit the error SQLITE_BUSY
For example, imagine that my class has those mebers: open(char*sql); first(); next(); close(); update(const char *sql); I do the following: rec.open( "SELECT a, b from tab1" ); // this call the sqlite_compile while ( !rec.eof() ) { rec.next(); // this call the sqlite_step if( a == 1 ) rec.update ( "update tab1 set b=10 where a=1;" ); } So, has anyone an idea on how to bypass this ? Also, is there a way to save the "cursor" position of the rows navigation, and maybe use it later to restart navigation in the same position (or to uniquely identify a row of a sql) ? Sometime the use of a unique id column it's not enough because a sql may be complex and may refer to some tables... Any suggestion will be appreciated. Thank you Gabriele Brugnoni