我在我的代碼下面的語句: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