sqlite3_open - 无法打开数据库?

时间:2010-07-20 08:39:38

标签: iphone sqlite

我的代码中有以下声明:

if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 

但它似乎没有打开我的数据库。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

在不了解您的问题的任何其他内容的情况下,您只能假设您的路径无效。

尝试使用此路径查看是否有效

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths lastObject];
NSString* databasePath = [documentsDirectory stringByAppendingPathComponent:@"mydb.sqlite"];

if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
     NSLog(@"Opened sqlite database at %@", databasePath);
    //...stuff
} else {
     NSLog(@"Failed to open database at %@ with error %s", databasePath, sqlite3_errmsg(database));
     sqlite3_close (database);
}

答案 1 :(得分:0)

只需使用此文件路径方法

- (NSString *) filePath 
{    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    return basePath;
}