Passing column name instead of index in sqlite3

Problem Code:

NSString *query = @"SELECT Name FROM Category";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)
        == SQLITE_OK) {
    while (sqlite3_step(statement) == SQLITE_ROW) {
        char *row =(char *)sqlite3_column_text(statement,0);
        char *rowData = (char *)sqlite3_column_text(statement,1);

        NSString *fieldName = [[NSString alloc] initWithUTF8String:row];
        NSString *fieldValue = [[NSString alloc] initWithUTF8String:rowData];
        NSLog(@"%@",fieldName);
        NSLog(@"%@",fieldValue);

        [fieldName release];
        [fieldValue release];
    }
    sqlite3_finalize(statement);
}


char *row =(char *)sqlite3_column_text(statement,0);

In the above code, instead of 0, can't I just pass the column name? How can i do this?

+3
source share
1 answer

In any case, you cannot, and not with C. bindings. Instead, you can use this Objective-C wrapper according to the C: FMDB standard

+1
source

Source: https://habr.com/ru/post/1741763/


All Articles