сбой sqlite3_prepare_v2

#objective-c #sqlite

#objective-c #sqlite

Вопрос:

Может ли кто-нибудь объяснить мне, почему этот оператор if не запускается? База данных открывается просто отлично, просто я не могу извлечь какие-либо значения из базы данных. Кроме того, имя таблицы также является правильным.

     if (sqlite3_prepare_v2(database, [query UTF8String], -1, amp;statement, nil)== SQLITE_OK) {


        while (sqlite3_step(statement) == SQLITE_ROW) {
            int uniqueId = sqlite3_column_int(statement, 0);

            char *nameChars = (char *) sqlite3_column_text(statement, 1);
            char *addressChars = (char *) sqlite3_column_text(statement, 2);

            NSString *name = [[NSString alloc] initWithUTF8String:nameChars];
            NSString *address = [[NSString alloc] initWithUTF8String:addressChars];

            PersonInfo *info = [[PersonInfo alloc] initWithUniqueID:uniqueId name:name address:address];

            [returnArray addObject:info];


        }

        sqlite3_finalize(statement);
    }
    return returnArray;
}
  

Комментарии:

1. Разбейте оператор if открытым и перехватите код возврата — это должно дать вам некоторое представление о том, почему sqlite3_prepare_v2 вызов завершается с ошибкой Кроме того, нам нужно знать, что это за запрос, чтобы попытаться его отладить.

2. ВЫБЕРИТЕ * ИЗ CON_PARTENT; .. Просто выбрав все из таблицы

3. Я ничего не получаю в инструкции return.

4. Проверьте наличие кодов ошибок и в этом случае вызовите sqlite3_errmsg .