ios - SQLite Drop Table Causes Database is Locked Error -
i have created little database upgrade tool update our sqlite database tables based on pragma user_version. has been working until needed drop table entirely.
obviously drop table command is
drop table tbl; the sql instructions executed using:
nsstring *currentupdatestatement = [upgradestatements objectatindex:statementnumber]; dlog(@"update statement is: %@", currentupdatestatement); const char *sql_stmt = [currentupdatestatement utf8string]; char *errmsg; //start executing upgrade command if (sqlite3_exec(self.database, sql_stmt, null, null, &errmsg) == sqlite_ok) { dlog(@"upgrade statement %i successful", statementnumber); } else { nsstring *errormessage = [nsstring stringwithutf8string:errmsg]; elog(@"upgrading failed @ statement %i in version %i. message: %@", statementnumber, newversionnumber, errormessage); [nsexception raise:@"database upgrade failed" format:@"database not upgraded version %i. " "failed @ command %i due error '%@'",newversionnumber, statementnumber, errormessage]; } every time seek run drop table command, execution fails 'database locked' result sqlite_locked.
all other commands fine. tried read sql documentation on , on no luck. guys think?
a missing sqlite3_finalize(statement) after antecedent transaction can cause error.
ios iphone sqlite ipad
No comments:
Post a Comment