【发布时间】:2013-11-04 21:44:43
【问题描述】:
我在更新创建的 sqlite 表时做了很多谷歌搜索,但我仍然无法在我的示例应用程序中更新我的表。谁能告诉我下面的代码有什么问题。直到 sqlite3_prepare_v2。一旦达到 if(sqlite3_prepare_v2(database, sql, -1, &statement, NULL)==SQLITE_OK) 条件,它就不会进入这个 if() 条件,任何人都可以告诉这里发生了什么?
const char *dbpath = [[self DBPath] UTF8String];
if(sqlite3_open(dbpath, &database) == SQLITE_OK)
{
NSString *querySql=[NSString stringWithFormat:@"UPDATE Table1 SET AppEndTime = %@ WHERE AppID= %d",AppEndTime,appID];
const char *sql=[querySql UTF8String];
if(sqlite3_prepare_v2(database, sql, -1, &statement, NULL)==SQLITE_OK){
sqlite3_bind_int(statement, 1, sessionID);
sqlite3_bind_text(statement, 6, [sessionEndTime UTF8String], -1, SQLITE_TRANSIENT);
}
}
char* errmsg;
sqlite3_exec(database, "COMMIT", NULL, NULL, &errmsg);
if(SQLITE_DONE != sqlite3_step(statement)){
NSLog(@"Error while updating. %s", sqlite3_errmsg(database));
}
else{
sqlite3_reset(statement);
}
sqlite3_finalize(statement);
sqlite3_close(database);
【问题讨论】:
-
你没有任何日志信息吗?也许您必须在查询中引用 AppEndTime 的值。