我有一些看起来像这样的代码:
__block FMResultSet *s;
[databaseQueue inDatabase:^(FMDatabase * _Nonnull db) {
s = [db executeQuery: @"SELECT * session;"];
}];
while ([s next]){
//convert the row into a Session object.
[databaseQueue inDatabase:^(FMDatabase * _Nonnull db) {
[db executeUpdate:@"UPDATE session ...", arg1, arg2];
}];
}
这可以吗?或者我是否需要在第一个inDatabase
块内移动while循环?
我正在使用FMDB和Objective C,但我的猜测是这样的东西在大多数数据库包装器中都是标准的。
答案 0 :(得分:0)
经过一些测试,我能够回答我自己的问题。当我尝试上面概述的内容时,我会收到警告:
警告:执行[FMDatabaseQueue inDatabase:]后,至少有一个打开的结果集
所以我猜你可以这样做,因为我确实得到了结果。但至少fmdb,不喜欢这个想法...