遍历事务之外的结果集?
Posted
技术标签:
【中文标题】遍历事务之外的结果集?【英文标题】:Iterate through a ResultSet outside of a Transaction? 【发布时间】:2018-02-22 18:36:42 【问题描述】:我有一些看起来像这样的代码:
__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,但我猜这样的东西在大多数数据库包装器中都是标准的。
【问题讨论】:
【参考方案1】:经过更多测试,我能够回答我自己的问题。当我尝试上面概述的内容时收到警告:
警告:在执行 [FMDatabaseQueue inDatabase:] 后,周围至少有一个打开的结果集
所以我猜你可以做到,因为我确实得到了结果。但至少fmdb,不喜欢这个主意……
【讨论】:
以上是关于遍历事务之外的结果集?的主要内容,如果未能解决你的问题,请参考以下文章