iOS sqlite: цикл по строкам (sqlite3_step) с несколькими таблицами для извлечения сохраненных данных

В моем приложении для iOS я могу создать базу данных с двумя таблицами и вставить данные в соответствующие им строки / столбцы. У меня проблема при получении данных на этом while(sqlite3_step(statement) == SQLITE_OK) петля.

Метод экземпляра для извлечения данных выглядит следующим образом:

-(NSArray)findData:(NSString*) rowID
{
    int rowNumber = 0;
    const char *dbpath = [databasePath UTF8String];
    if(sqlite3_open(dbpath, &database) == SQLITE_OK)
    {
        NSString *querySQL = [NSString stringWithFormat:"@SELECT T1.ID, T1.X, T1.Y, T2.ID, T2.A, T2.B FROM T1 JOIN T2 ON T1.ID = T2.ID WHERE T1.ID = \"%@\"",rowID];
        const char* query_stmt = [querySQL UTF8String];
        NSMutableArray *returnArray = [[NSMutableArray alloc]init];
        if(sqlite3_prepare_v2(database, query_stmt, -1, &statement, NULL)==SQLITE_OK)
        {
            int columnCount = sqlite3_column_count(statement)
            NSLog (@"Total number of columns:%d", comumnCount);
            while(sqlite3_step(statement) == SQLITE_ROW)
            {
                rowNumber++;
                NSlog(@"Rownumber is: %d", rowNumber);
                for(int a=1; a<columnCount; a++)
                {
                    NSString *field = [[NSString alloc] initWithUTF8String:(cont char*) sqlite3_column_text(statement,a)];
                    [returnArray addObject:field];
                }
            }
            sqlite3_finalize(statement);
            sqlite3_close(database);
            return returnArray;
        }
    }
    return nil;
}

Здесь if Состояние sqlite3_prepare_v2 хорошее. Работает нормально и columnCount печатается. Тем не менее while петля не работает. Он отлично работает при извлечении данных только из одной таблицы. Есть ли что-нибудь, чтобы быть добавленным к условию нескольких таблиц?

0 ответов

Другие вопросы по тегам