#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 .