由于sqlite3_step和while(重试)导致的FMDB无限循环

时间:2013-04-18 00:45:07

标签: ios fmdb

我有一个FMDB executeUpdate导致无限循环:

FMDatabase *db = [FMDatabase databaseWithPath:[CDDBManager getDatabasePath]];

[db closeOpenResultSets];
[db close];
NSLog(@"successfully pass closes");
[db open];
NSLog(@"successfully pass open");
[db setTraceExecution:YES];
BOOL success = [db executeUpdate:@"INSERT OR REPLACE INTO Player (id, ..., is_user) VALUES (?, ..., ?)",
                [NSNumber numberWithInt:self.player_id],
                ...
                [NSNumber numberWithInt:1]];

NSLog(@"end update");
[db close];

我在两个不同的VC中调用此方法,在一个中它完美地工作...在另一个中我有一个无限循环(我在FMDB的“do {} while()”中打印重试),所以我不这样做看“结束更新”...... 如您所见,我已经尝试关闭所有结果集和db ...

任何人都可以看到我失败的地方?

欢迎所有建议。

2 个答案:

答案 0 :(得分:1)

我认为我们遇到了同样的问题。我正在为我想要调用数据库的每个方法打开一个连接。我通过在init上打开连接来修复它。

答案 1 :(得分:0)

我很抱歉,这是一个简单的错误,我在条件句中返回后关闭 FMResultSet ......