Проблема при вставке данных в SQLite? - PullRequest
1 голос
/ 13 августа 2010

Привет! Я использую FMDB для извлечения данных из базы данных SQLITE.

db  = [[FMDatabase alloc] initWithPath:path];   
[db open];  
FMResultSet *fResult= [db executeQuery:@"SELECT * FROM Users"];

aUsers = [[NSMutableArray alloc] init];
while([fResult next])
{
    userData = [fResult stringForColumn:@"Name"];       
    lblUsers.text=[lblUsers.text  stringByAppendingString:userData];
    [aUsers addObject:userData];        
    NSLog(@"The data is %@=",userData);
}   
[db close];
[aUsers release];
[db release];

Итак, я получил вывод для этой программы

Сачин Рахул Дравид

Но когда я пытаюсь вставить данные в базу данных, я использовал следующую кодировку

   [db beginTransaction];
[db executeUpdate:@"insert into users (name) values('Balaji R')" ,nil];
[db commit];

Теперь я снова получаю данные из базы данных. Итак, я получил вывод, как это

Сачин Рахул Дравид Баладжи R

Но когда я закрываю свое приложение, а затем снова делаю это, Сейчас я вижу только старые записи

Сачин Рахул Дравид

Вставленный записанный "Balaji R" исчез!

Кто-нибудь знает, где я совершил ошибку? Пожалуйста, скажите мне решение ......

1 Ответ

2 голосов
/ 16 августа 2010

Вы пытаетесь записать в каталог приложений, что не разрешено.Вам необходимо скопировать исходную базу данных в каталог документов пользователя и передать путь к копии в FMDB initWithPath:. Ознакомьтесь с Руководством по программированию приложений iOS .Взгляните на пример кода CoreDataBooks .Делегат приложения содержит код в методе persistentStoreCoordinator, который вы можете использовать в качестве руководства для своей реализации.

...