0

我有一个 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()”中打印重试),所以我没有看到“结束更新” ...如您所见,我已经尝试关闭所有结果集和数据库 ...

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

欢迎所有建议。

4

2 回答 2

1

我想我们有同样的问题。我正在为我想调用我的数据库的每个方法打开一个连接。我通过在初始化时打开连接来修复它。

于 2013-04-19T18:10:22.943 回答
0

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

于 2013-04-22T23:05:03.057 回答