в то время как (sqlite3_step (Statement1) == SQLITE_ROW) не работает, даже если оба значения в iPhone равны - PullRequest
0 голосов
/ 19 марта 2012

Я не знаю точной проблемы, но вот уже 4 часа чешу голову.

    if (sqlite3_open([dataBasePath UTF8String], &bookDB) == SQLITE_OK) {


    NSString *Query = [NSString stringWithFormat:@"SELECT * FROM linktable WHERE pageid = 2"];

    if (sqlite3_prepare_v2(bookDB, [Query UTF8String], -1, &statement1, nil) == SQLITE_OK) {

        markupsArray = [NSMutableArray arrayWithCapacity:1];

        NSLog(@"sqlite3_step(statement1) is %d",sqlite3_step(statement1));

        while (sqlite3_step(statement1) == SQLITE_ROW) {
            NSLog(@"yup");

            MarkupData *markUpObject = [[MarkupData alloc] init];

            markUpObject.linkID =  [[[NSString alloc] initWithUTF8String:(const char*) sqlite3_column_text(statement1, 0)] autorelease];
            markUpObject.pageID =  [[[NSString alloc] initWithUTF8String:(const char*) sqlite3_column_text(statement1, 1)] autorelease];
            markUpObject.markupID =  [[[NSString alloc] initWithUTF8String:(const char*) sqlite3_column_text(statement1, 2)] autorelease];
            markUpObject.folioNumber =  [[[NSString alloc] initWithUTF8String:(const char*) sqlite3_column_text(statement1, 5)] autorelease];


            [markupsArray addObject:markUpObject];
        }
    }
}

Вот странная вещь.Значение sqlite3_step(statement1) равно 100, поэтому значение SQLITE_ROW.Но даже тогда цикл while не выполняется.Может ли кто-нибудь помочь мне разобраться в этом странном сценарии, пожалуйста ... Только что был поражен здесь ..: (

1 Ответ

2 голосов
/ 19 марта 2012

Если ваш sqlite-запрос возвращает только 1 запись, sqlite3_step() фактически проходит через эту запись.Поскольку ваш оператор NSLog выполняет sqlite3_step(), запись здесь уже пройдена.Следовательно, ваш цикл while не будет выполнен, так как больше нет строк для перехода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...