首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从SQLite数据库iOS6.0中检索数据

无法从SQLite数据库iOS6.0中检索数据
EN

Stack Overflow用户
提问于 2012-09-29 15:29:04
回答 3查看 771关注 0票数 4

当我运行构建ios5.0或更低版本时,Sqlite响应正确并检索数据,它的工作正常,但是当我在ios6.0上运行时,我试图从my.sqlite数据库中获取数据,但它没有执行我的if case。它总是在else条件下进入。我做错了什么?我无法执行我的if情况,即if(sqlite3_prepare_v2(database, sqlQuerry, -1, &querryStatement, NULL)==SQLITE_OK).

作为参考,请查看此代码。

代码语言:javascript
复制
NSLog(@"sqlite3_prepare_v2 = %d SQLITE_OK %d ",sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil),SQLITE_OK);

    if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
    {

        NSLog(@"sqlite3_step = %d SQLITE_ROW %d ",sqlite3_step(compiledStatement),SQLITE_ROW);
        while (sqlite3_step(compiledStatement)==SQLITE_ROW)
        {           if(sqlite3_column_text(compiledStatement, 2) != nil)
                modelObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];

        }
    }
    else
    {

    }

iOS6.0日志打印

代码语言:javascript
复制
 sqlite3_prepare_v2 = 1 SQLITE_OK 0   
 sqlite3_step = 21 SQLITE_ROW 100 

iOS5.0日志打印

代码语言:javascript
复制
sqlite3_prepare_v2 = 0 SQLITE_OK 0  
sqlite3_step = 100 SQLITE_ROW 100 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-10 07:51:43

放在else this中,这样我们就可以看到产生的错误。

代码语言:javascript
复制
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
{

    NSLog(@"sqlite3_step = %d SQLITE_ROW %d ",sqlite3_step(compiledStatement),SQLITE_ROW);
    while (sqlite3_step(compiledStatement)==SQLITE_ROW)
    {           if(sqlite3_column_text(compiledStatement, 2) != nil)
        modelObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];

    }
}
else{
    //error
    NSLog(@"Failed to open database. Error: %s",sqlite3_errmsg(database));
}
票数 2
EN

Stack Overflow用户

发布于 2012-09-29 17:46:41

尝试从设备(或模拟器)中删除您的应用程序,然后清除并构建

票数 1
EN

Stack Overflow用户

发布于 2012-10-16 02:44:07

我不是100%确定,但是关于这一点:是一个空*是一个id

所以如果你能改变这一点:

代码语言:javascript
复制
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)

点击这个:

代码语言:javascript
复制
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, NULL)==SQLITE_OK)

我只是把nil改成NULL。同样,不是100%确定,但我在你的代码中只看到了这一点。我总是使用NULL :)

希望这能帮到你。

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

https://stackoverflow.com/questions/12650823

复制
相关文章

相似问题

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