iOS, SQLite: невозможно прочитать из БД - PullRequest
0 голосов
/ 11 сентября 2011

У меня есть база данных SQLite, я могу открыть ее с помощью браузера SQLite, выполнить запросы к ней и т. Д. Но я не могу получить какие-либо данные из нее в своем проекте Xcode.

NSString *databaseName = @"dbFile.db";
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
sqlite3 *database;

if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
    NSLog(@"db is ok"); // works just fine
    const char *sqlStatement = "SELECT table.column FROM table";
    sqlite3_stmt *compiledStatement;

    if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
        NSLog(@"OK"); // nothing happens
    }
    sqlite3_close(database);
}

Тот же самый запрос, выполненный из браузера SQLite для Mac, работает просто отлично.

1 Ответ

1 голос
/ 11 сентября 2011

sqlite3_open не сообщает обо всех ошибках, пока вы не начнете получать доступ к данным. Например, практически любое имя файла и путь будут проходить без ошибок.

Вы уверены, что база данных находится в папке «Документы»? Это не там по умолчанию. Возможно, это в основном комплекте?

Try NSString * databaseName = [[NSBundle mainBundle] pathForResource: @ "dbFile" ofType: @ "db"];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...