首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqlite 3 "SQL错误‘内存不足’(7)“objc

sqlite 3 "SQL错误‘内存不足’(7)“objc
EN

Stack Overflow用户
提问于 2013-08-20 01:19:21
回答 1查看 6.8K关注 0票数 4

有人能指出我做错了什么吗?错误是:

代码语言:javascript
复制
SQL error 'out of memory' (7)



  - (NSArray *)RecipeInfo
{    
    NSMutableArray *retval = [[NSMutableArray alloc] init];
    NSString *query = [NSString stringWithFormat:@"SELECT key, name FROM recipes WHERE type = \'%@\'", self.RecipeType];

NSLog(query);

sqlite3_stmt *statement;

if (sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, NULL) != SQLITE_OK)
{
    NSLog(@"[SQLITE] Error when preparing query!");
    NSLog(@"%s SQL error '%s' (%1d)", __FUNCTION__, sqlite3_errmsg(_database), sqlite3_errcode(_database));

    }
    else
    {
        while (sqlite3_step(statement) == SQLITE_ROW)
        {
            int uniqueId = sqlite3_column_int(statement, 0);
            char *nameChars = (char *) sqlite3_column_text(statement, 1);
            NSString *name = [[NSString alloc] initWithUTF8String:nameChars];
            RecipeInfo *info = [[RecipeInfo alloc] initWithUniqueId:uniqueId name:name];
            [retval addObject:info];
        }

        sqlite3_finalize(statement);
    }
return retval;
}

sql在我使用的数据库管理环境中执行得很好,这与我使用sql的方式有关,有人能发现有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-20 01:30:38

令人困惑的是,如果忽略打开数据库,指针是NULL (或者,正如拉马迪所说,如果它是NULL ),您可能会得到这个错误。在打开数据库的地方放置一个日志语句,并确保它成功,并且您有一个有效的sqlite3指针。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18325523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档