objective-c - 如何解决 Error calling sqlite3_step (21 : out of memory) rs in FMDB

标签 objective-c ios4 sqlite

我正在使用我用过的 FMDB 包装器 这段代码

- (BOOL)update:(NSString *) Body fromValue:(NSString *)froms {

    BOOL success = NO;
    FMResultSet *rs;
//I have **searchTable** and in that folder name **OFFICE**  

    rs = [self.database executeQuery:@"select searchId,body from searchTable WHERE folder = 'OFFICE'"];


    NSInteger primaryKey = -1;
    NSString *body = nil;
    NSString *md5OfSearchEmailBody = nil;
    while ([rs next]) {
        primaryKey  = [rs intForColumn:@"searchId"];
        body = [rs stringForColumn:@"body"];
    }           

    [rs close];
    return success;
}

第一次

- (BOOL)update:(NSString *) Body fromValue:(NSString *)froms{
}

方法运行良好。在循环中第二次它不工作

Error calling sqlite3_step (21: out of memory) rs

如何解决这个问题

最佳答案

检查 [rs close];

可能是释放或关闭数据库。

============================================= ====

最好使用 CoreData 在您的应用程序中实现 sqlite。

当应用程序中有更好的内部库时,为什么要使用外部库。你不需要删除你的 sqlite 表。您可以轻松地将现有数据库迁移到 CoreData。

关于objective-c - 如何解决 Error calling sqlite3_step (21 : out of memory) rs in FMDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8606261/

相关文章:

objective-c - 将 NSObject 转换为 NSDictionary

ios - 基本身份验证 iOS 6 - 不工作

iphone - 如何判断从现在到 NSDate 的天数?

xcode - 安装 iOS 4.2 和 4.2 SDK 后无法在设备上运行

iphone - UIScrollView contentSize 问题 - 带有示例代码

ios4 - 如何使用commitEditingStyle? (UITableViewCell-UITableView)

c++ - g++ 未定义对 libscrypt_scrypt 的引用(链接器参数化不是问题?)

c# - System.Data.SQLite.DLL 在切换目标框架后不再加载

objective-c - 每个 Action 方法都需要一个发送者对象吗?

ios - 从SQLite提取数据并且只想获取列ID的最后一个值