无法在ios上打开sqlite db

时间:2013-02-27 12:42:50

标签: iphone ios xcode sqlite

您好我正在尝试在ios中创建一个sqlite数据库。 我使用sqlite3_open方法和所需的参数但我总是得到错误14(SQLITE_CANTOPEN 14 / *无法打开数据库文件* /)。

即使使用最简单的声明也无法正常工作

NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"data.sqlite3"];

BOOL success = [fileMgr fileExistsAtPath:dbPath];

sqlite3 *db;

if(!success)
{
    NSLog(@"Cannot locate database file '%@'.", dbPath);
}

if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
    NSLog(@"An error has occured.");
}
else{
    NSLog(@"Ok");
}

任何想法发生了什么?

感谢。

2 个答案:

答案 0 :(得分:2)

您无法在应用程序包中获得对sqlite数据库的写入权限。而是将捆绑中的数据库复制到“文件”系统中,在适当的位置(给定iCloud问题),然后在那里打开它。让您的应用程序首先在文件系统中查找数据库,只有在不存在时才复制它。

答案 1 :(得分:0)

使用文档目录存储数据库文件,然后创建sqlite ....它可以工作