Xcode - sql选择单个值不起作用

时间:2014-06-07 23:41:29

标签: sqlite select

在我的应用中,我尝试使用查询从数据库中获取单个ID:

SELECT _id FROM rules  where codigo_rest = 2345

我将该查询传递给以下函数:

-(NSString *)selectIDrest:(NSString *)query{
    NSString * retval;

    sqlite3_stmt *statement;
    if (sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil)
        == SQLITE_OK) {
        while (sqlite3_step(statement) == SQLITE_ROW) {
            int uniqueId = sqlite3_column_int(statement, 0);
            NSLog(@"int %i",uniqueId);

            retval = [NSString stringWithFormat:@"%d",uniqueId];
        }
        sqlite3_finalize(statement);
    }
    NSLog(@"%@",retval);

    return retval;
}

但是retval总是0.,而表内容id是不同的(1,2,3,4 ......等)。 通过NSlogs,我意识到虽然(sqlite3_step(statement)== SQLITE_ROW)从未执行过。 我的错是什么?

1 个答案:

答案 0 :(得分:2)

您永远不会执行查询,您只准备执行它。您需要调用sqllite3_step来读取第一行。您可以调用sqllit3_column_int。

您可以在本教程中看到如何调用它:http://www.raywenderlich.com/913/sqlite-tutorial-for-ios-making-our-app