У меня странная проблема ..
Я создал таблицу в базе данных sqlite3, вставил в нее 2-3 записи с терминала, когда я выполняю запрос выбора на терминале, я получаю требуемый результат,Я добавил эту существующую базу данных в мой проект Xcode 4.
Если я пытаюсь открыть эту базу данных из моего кода, она открывается успешно, но моя таблица не существует в базе данных.
Я хотел выбрать значения из своего кода, но он говорит, что такая таблица не закрывается. Как мне добавить таблицу, которую я создал в терминале?Мне кажется странным, что если база данных была скопирована, то почему она не может получить таблицу?
Код:
- (NSString *)dataFilePath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:@"questionaire.sqlite3"];
}
if (sqlite3_open([[self dataFilePath] UTF8String], &database)!= SQLITE_OK)
{
sqlite3_close(database);
NSAssert(0, @"Failed to open database");
}
else if(sqlite3_open([[self dataFilePath] UTF8String], &database)== SQLITE_OK)
{
NSLog(@"Opened");
}
NSString *query = @"select QID, QUESTION, OPTION1, OPTION2, OPTION3, OPTION4 from QUIZ_QUESTIONS WHERE QID =1";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [query UTF8String],-1, &statement, nil) == SQLITE_OK)
{
NSLog(@"not in");
if(sqlite3_step(statement) == SQLITE_ROW )
{
int row = sqlite3_column_int(statement, 0);
NSString *QIDField = [[NSString alloc] initWithFormat:@"%d", row];
char *showQuestion = (char *)sqlite3_column_text(statement, 1);
NSString *questionField = [[NSString alloc] initWithUTF8String:showQuestion];
char *optionA = (char *)sqlite3_column_text(statement, 2);
NSString *optionAField = [[NSString alloc] initWithUTF8String:optionA];
char *optionB = (char *)sqlite3_column_text(statement, 3);
NSString *optionBField = [[NSString alloc] initWithUTF8String:optionB];
char *optionC = (char *)sqlite3_column_text(statement, 4);
NSString *optionCField = [[NSString alloc] initWithUTF8String:optionC];
char *optionD = (char *)sqlite3_column_text(statement, 5);
NSString *optionDField = [[NSString alloc] initWithUTF8String:optionD];
question.text = questionField;
option1.text = optionAField;
option2.text = optionBField;
option3.text = optionCField;
option4.text = optionDField;
}
sqlite3_finalize(statement);
}
else {
NSLog(@"Cant open");
}
sqlite3_close(database);