无法获取数据 - sqlite3

时间:2012-02-08 17:42:53

标签: objective-c ios

我在我的简单iOS应用程序中使用sqlite。问题是我无法从查询中获得结果。我将跳过负责打开数据库的代码。它有效。

NSString *query = @"SELECT * FROM tickets LIMIT 0,1";

if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK)
    {
    NSString *strResult = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)]; 
            NSLog(@"%@", strResult);
            sqlite3_finalize(statement);
    }    

此处应用程序崩溃并显示一条消息:

NSInvalidArgumentException', reason: '*** +[NSString stringWithUTF8String:]: NULL cString'

我100%确定查询

SELECT * FROM tickets LIMIT 0,1

返回非NULL的结果。我用sqlite客户端测试了上面的查询,它运行正常。

这里有什么问题?

1 个答案:

答案 0 :(得分:2)

您没有评估自己的陈述。你应该使用:

int sqlite3_step(sqlite3_stmt*);

sqlite3_prepare_v2之后。