我真的对这个错误感到沮丧。我已经花了两天时间来解决这个问题。但是它没有得到修复,当时从数据库获取数据没有问题。但是当激活插入语句时我得到了这个。错误:
断言失败 - [NewJourney addJourney],/ Usrs / HaryadYadav / Desktop / JourneyMapper / Travel / Newwourney.m:114 2011-07-05 17:23:13.739旅程[24328:207] *由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'插入数据时出错。 '数据库被锁定'' * 首先调用堆栈:
这是我在数据库中插入值的代码
- (无效)addJourney { if(addStmt == nil) {
const char * sql = "insert into UserJourney(JourneyName,LocationName,Description) Values (?,?,?)";
if (sqlite3_prepare_v2(database, sql, -1,&addStmt ,NULL) != SQLITE_OK)
NSAssert1(0,@"Error while creating add statement. '%s'",sqlite3_errmsg(database));
}
sqlite3_bind_text(addStmt, 1, [journeyname UTF8String], -1,SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 2, [journeylocation UTF8String],-1, SQLITE_TRANSIENT);
sqlite3_bind_text(addStmt, 3, [journeydescription UTF8String],-1 , SQLITE_TRANSIENT);
if (SQLITE_DONE != sqlite3_step(addStmt))
NSAssert1(0,@"Error while inserting data. '%s'",sqlite3_errmsg(database));
else
journeyID = sqlite3_last_insert_rowid(database);
sqlite3_reset(addStmt);
}
这是什么问题
提前致谢
答案 0 :(得分:3)
您需要在完成陈述后使用
sqlite3_finalize(语句);
在您使用数据库交互的每个函数中。
答案 1 :(得分:0)
检查您的数据库是否已打开?
if(sqlite3_open([temppath UTF8String], &database) == SQLITE_OK)