Я новичок в приложениях Objective-C и iphone.
Я обращаюсь к SQLite, и у меня в таблице 3 строки "coffee". Я использовал следующий способ, чтобы извлечь что-то из таблицы, однако только тогда вынимаются 2-я и 3-я строки {1-я строка всегда пропускается}. Это из-за логики в моем цикле while, проверяя, что sqlite3_step (selectstmt) возвращает SQLITE_ROW - неправильно? Вот код:
if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) {
const char *sql = "select coffeeID, coffeeName from coffee";
sqlite3_stmt *selectstmt;
NSLog(@"sqlite_prepare_v2 returns: %i", sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL));
if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK) {
NSLog(@"sqlite3_step returns: %i", sqlite3_step(selectstmt));
while(sqlite3_step(selectstmt) == SQLITE_ROW) {
NSInteger primaryKey = sqlite3_column_int(selectstmt, 0);
Coffee *coffeeObj = [[Coffee alloc] initWithPrimaryKey:primaryKey];
coffeeObj.coffeeName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)];
NSLog(@"this is the coffee name: %@", coffeeObj.coffeeName);
coffeeObj.isDirty = NO;
[appDelegate.coffeeArray addObject:coffeeObj];
[coffeeObj release];
}
}
}
С другой стороны, есть ли какой-нибудь удобный для меня способ проверить количество строк, восстановленных в запросе непосредственно из интерфейса C SQLite?
Большое спасибо.