Привет всем, у меня есть некоторые проблемы с использованием sqlite в IOS.У меня есть выбор данных из базы данных, а затем я хочу сохранить эти данные в переменной.Но когда я использую цикл while(sqlite3_step(statement) == SQLITE_ROW)
, код никогда не выполняется.
вот мой код:
-(void)retrieveProjectNameFromDb:(NSString *)segmenId{
NSString *query;
NSString *nameProjectStr;
NSString *dbPath = [[NSBundle mainBundle] pathForResource:@"database" ofType:@"sqlite"];
if (sqlite3_open([dbPath UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSAssert(0, @"Database failed to open.");
}else {
query = [NSString stringWithFormat:@"SELECT remote_projectname, remote_base_uri FROM REMOTE_SETTING WHERE remote_settingid = '%@' ORDER BY remote_projectname", segmenId];
NSLog(@"query : %@", query);
}
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(db, [query UTF8String], -1, &statement, nil)==SQLITE_OK){
NSLog(@"sqlite row : %d", SQLITE_ROW);
NSLog(@"sqlite 3 : %d", sqlite3_step(statement));
while (sqlite3_step(statement) == SQLITE_ROW) {
char *nameProject = (char *)sqlite3_column_text(statement, 0);
if (nameProject == nil) {
NSLog(@"UNNAMED");
}else {
NSLog(@"else");
nameProjectStr = [NSString stringWithUTF8String:nameProject];
}
projectName.text = nameProjectStr;
nameProject = nil;
}
NSLog(@"project name : %@", projectName.text);
sqlite3_close(db);
}
}
, когда я nslog значение, sqlite3_step (оператор) всегда показывают 101 и sqlite_row всегда показывают 100. Почему это может произойти ??Может ли кто-нибудь помочь мне, пожалуйста?
спасибо
С уважением
-risma-