У меня проблемы с перехватом пустого набора результатов из FMDB.Код ниже.Я получаю NSLog из базы данных открытия и закрытия и NSLog "1", но ни один из них в операторе If!Если у меня есть данные в базе данных, это нормально, но я хочу перехватить и отредактировать результат, если база данных пуста.
[self openDatabase];
NSNumberFormatter *nfcurrency = [[NSNumberFormatter alloc]init];
[nfcurrency setNumberStyle:NSNumberFormatterCurrencyStyle];
[nfcurrency setLocale:[NSLocale currentLocale]];
FMResultSet *result = [[self getDatabase]executeQuery:@"SELECT BFNeeded FROM tblBets ORDER BY pk DESC LIMIT 1,1;"];
//FMResultSet *result = [[self getDatabase]executeQuery:@"SELECT BFNeeded FROM tblBets ORDER BY pk DESC LIMIT 1,1;"];
NSLog(@"1");
if (result == NULL) {
NSLog(@"Last BFNeeded Result = nil");
} else {
while ([result next]) {
NSLog(@"HERE");
NSString *lastBFNeeded = [nfcurrency stringFromNumber:[NSNumber numberWithDouble:[result doubleForColumn:@"BFNeeded"]]];
NSLog(@"lastBFNeeded=%@",lastBFNeeded);
}
}
NSLog(@"ClosingDB");
[self closeDatabase];
Продолжение после получения первого ответа:
Я не могу получитьhasAnotherRow работать как положено.У меня есть этот код:
FMResultSet *result = [[self getDatabase]executeQuery:@"SELECT BFNeeded FROM tblBets ORDER BY pk DESC LIMIT 0,1;"];
if (result == nil) {
NSLog(@"Last BFNeeded Result = nil");
}
else {
NSLog(@"has results1: %@", [result hasAnotherRow] ? @"YES" : @"NO");
while ([result next]) {
NSLog(@"has results2: %@", [result hasAnotherRow] ? @"YES" : @"NO");
}
}
С базой данных, которая возвращает результат, я получаю result1 NO, result2 YES, поэтому я предполагаю, что hasAnotherRow должен идти внутри цикла while ([result next]).Однако с пустой базой данных я получаю результат1 НЕТ, а он даже не достигает результата2!