sqlite3_open - Не удается открыть базу данных? - PullRequest
3 голосов
/ 20 июля 2010

В моем коде есть следующее утверждение:

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

но, похоже, он не открывает мою базу данных.

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 20 июля 2010

Не зная ничего о вашей проблеме, можно только предположить, что ваш путь неверен.

Попробуйте использовать этот путь, чтобы проверить, работает ли он

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);
}
0 голосов
/ 19 ноября 2013

Просто используйте этот метод filepath

- (NSString *) filePath 
{    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    return basePath;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...