Ошибка при обновлении.попытка написать базу данных только для чтения - PullRequest
0 голосов
/ 17 марта 2011

HI

Я использую базу данных sqlite. Я знаю, что после сбоя приложения или сбоя системы база данных блокируется ..

Как мне избежать блокировки базы данных sqlite.

Как проверить эту блокировку базы данных во время запросов DML.

Как открыть заблокированную базу данных.

Спасибо

Mandeep

ниже - мой код.

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyApp.sqlite"];
    return defaultDBPath;

Теперь я изменил код выше на этот.

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];

1 Ответ

0 голосов
/ 17 марта 2011

Во многих примерах использования SQLite в приложениях Какао упоминается подход к сохранению пустой «шаблонной» копии базы данных в качестве ресурса в комплекте приложений.Важно отметить, что пакет приложения не должен быть доступным для записи, поэтому этот подход требует, чтобы вы скопировали шаблон в доступное для записи место (используйте стандартные места хранения, пожалуйста) и использовали этот файл в качестве доступной для записи копии.

Может ли это быть вашей проблемой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...