更新时出错。 '尝试编写只读数据库

时间:2011-03-17 16:15:36

标签: objective-c cocoa sqlite

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 :(得分:0)

在Cocoa应用程序中使用SQLite的许多示例都提到了将空“模板”数据库副本存储为应用程序包中的资源的方法。重要的是要注意应用程序包不应该是可写的,因此这种方法要求您将模板复制到可写位置(请使用标准存储位置)并使用 文件作为可写副本

这可能是你的问题吗?