我在我的代码下面的语句:sqlite3_open - 无法打开数据库?
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
,但它似乎并没有被打开我的数据库。
任何想法?
我在我的代码下面的语句:sqlite3_open - 无法打开数据库?
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
,但它似乎并没有被打开我的数据库。
任何想法?
如果您不了解您的问题,只能假定您的路径无效。
尝试使用此路径,看看它的工作原理
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);
}
databasePath具有以下详细信息:/ Users/stephenconnolly/Library/Application Support/iPhone Simulator/3.1.3/Applications/C42A3304-8A6E-45B5-9618-5BD6A1B05335/Documents – Stephen 2010-07-20 08:58:16
只需使用此文件路径方法
- (NSString *) filePath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
return basePath;
}
什么是“databasePath”的值,并在运行的iPhone-应用模拟器还是真实的设备?你能确保'databasePath'指向一个有效的父目录的现有数据库或空路径吗? – Akusete 2010-07-20 08:43:47
databasePath具有以下详细信息:/用户/ stephenconnolly /库/应用程序支持/ iPhone模拟器/ 3.1.3 /应用程序/ C42A3304-8A6E-45B5-9618-5BD6A1B05335/Documents。 此时应用程序正在模拟器上运行。 – Stephen 2010-07-20 08:56:07
您的数据库路径是一个现有的目录,请改为在路径中添加一个文件名。 – Akusete 2010-07-20 08:58:07