【发布时间】:2011-09-24 17:52:42
【问题描述】:
我正在尝试对我的 sqlite3 表执行更新命令。但它不起作用:
+(void)updateContact:(Contact *)c withOriginalFirst:(NSString *)originalFirst originalLast:(NSString *)originalLast originalBriefDescription:(NSString *)originalBriefDescription {
sqlite3 *database;
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
NSString *cmd = [NSString stringWithFormat:@"update contacts set first='%@', last='%@', briefDescription='%@' where first='%@' and last='%@' and briefDescription='%@';",
[c first],[c last],[c briefDescription],originalFirst,originalLast,originalBriefDescription];
const char * sql = [cmd UTF8String];
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sql, -1, &compiledStatement, NULL) == SQLITE_OK) {
NSLog(@"updateContact SUCCESS - executed command %@",cmd);
}
else {
NSLog(@"updateContact FAILED - failed to execute command %@",cmd);
}
sqlite3_finalize(compiledStatement);
}
else {
NSLog(@"pdateContact FAILED - failed to open database");
}
sqlite3_close(database);
NSLog(@"After update, contacts = %@",[SQLMaster getContactsFromDatabase]);
}
我看到打印了“updateContact SUCCESS - 已执行命令...”。但是表格没有更新。我做错了什么?
【问题讨论】: