1

我尝试在我的支持文件文件夹中导入 db 并使用以下方法连接到 db:

NSString *sqliteDb = [[NSBundle mainBundle] pathForResource:@”person” ofType:@”sqlite”];
if(sqlite3_open([sqliteDb UTF8String], & database)!=SQLITE_OK)

我尝试通过插入的代码插入值,但是当我退出程序并检查数据库时,值不存在。我不知道这里出了什么问题。

4

3 回答 3

1

行。现在将该数据库复制到将成为应用程序数据存储的任何本地位置。下面给出的代码将执行相同的操作。

    NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *docDir = [docPaths objectAtIndex:0];
    NSString *dbPath = [[docDir stringByAppendingPathComponent:@"person.rsd"] retain];    
    NSFileManager *fm = [NSFileManager defaultManager];
    BOOL success = [fm fileExistsAtPath:dbPath];
    if(success) return;
    NSString *dbPathFromApp=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent :@"person.rsd"];
    [fm copyItemAtPath:dbPathFromApp toPath:dbPath error:nil];

之后,执行您的查询,您将在应用程序模拟器文件夹中插入数据。

于 2011-08-31T08:42:03.027 回答
1

捆绑包中的文件是只读的。您不能编辑它们。您需要将该数据库复制到应用程序的缓存、文档或临时目录以执行操作。

于 2012-10-01T12:32:38.273 回答
0

首先将您的 person.sqlite 数据库复制到应用程序的文档目录中,然后打开该数据库进行操作。

于 2011-08-31T09:01:39.657 回答