【发布时间】:2010-11-18 16:38:54
【问题描述】:
我正在使用 FMDB 与 SQLite 数据库进行交互。我让它插入行很好,但是当我尝试更新其中一个时,更新不会发生,但没有报告错误。
这就是我正在做的事情:
userHistoryDB.logsErrors = YES;
userHistoryDB.traceExecution = YES;
NSString *query = [NSString stringWithFormat:
@"INSERT OR IGNORE INTO phrase_history (code, %@) VALUES (\"%@\", 0); "
@"UPDATE OR FAIL phrase_history SET %@ = %@ + 1 WHERE code = \"%@\";",
countTypeColumn,
phraseCode,
countTypeColumn,
countTypeColumn,
phraseCode];
BOOL rc = [userHistoryDB executeUpdate:query];
rc 是 YES,表示没有任何问题。这是一个示例调用:
<FMDatabase: 0x5303af0> executeUpdate: INSERT OR IGNORE INTO phrase_history (code, presented) VALUES ("grapefruit", 0); UPDATE OR FAIL phrase_history SET presented = presented + 1 WHERE code = "grapefruit";
就 FMDB 而言,它执行得很好。但是,记录不会增加。 SQL 没有任何问题 - 如果我将其粘贴到 sqlite3 命令行工具中,它可以完美运行。
关于它为什么不运行的任何想法?我尝试过的事情都无济于事:
- 将行包含在事务中
- 使用 executeQuery 运行
- 仅运行更新(已手动插入条目)。
- 用头撞桌子。
【问题讨论】:
标签: iphone cocoa-touch sqlite ios4 fmdb