私はSQLiteデータベースを持っていますが、SQLiteブラウザで開くことができます。クエリを実行できます。しかし、私のXcodeプロジェクトではデータを取得できません。iOS、SQLite:DBから読み込むことができません
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);
}
Mac用のSQLiteブラウザから実行されたのと同じクエリがうまくいきます。
sqliteによって報告されたエラーを確認し、ログに記録する必要があります。おそらく間違っていると思われます。 – Mat
@ufw:これは機能しますか? 'select col from table'、つまり、column-nameの前にtable-nameを付けないでください。 – Tim
どちらの方法でも、SQLiteログには適切なテーブルが見つかりませんでした。しかし、前にも述べたように、スタンドアロンのSQLiteブラウザでデータを取得できます。 – ufw