0

2 つの .sqlite ファイルがあります。1 つは完全版用、もう 1 つは Lite 版用です。次のコードを使用して、1 つの条件に対して 1 つの .sqlite ファイルを選択しています。

if (FULLVERSION) {
self.databaseName = @"Alpha.sqlite";
}
else {
self.databaseName = @"AlphaLite.sqlite";
}

クエリを実行するときに、この self.databaseName を使用したいと思います。私は今このようにしています:

-(NSMutableArray *) Alpha {
    sqlite3 *database;
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
        const char *sqlStatement = "SELECT * FROM Alpha";
        sqlite3_stmt *compiledStatement;
        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

    }
        sqlite3_finalize(compiledStatement);
    }
    sqlite3_close(database);

    return alpha;   
}

「SELECT * FROM Alpha」行で、Alpha の代わりに、条件に応じたデータベース名を持つ self.databaseName を使用します。

これを行う方法?助けてください。ありがとう。

4

2 に答える 2

1

SELECTステートメントで、const char *sqlStatement = "SELECT * FROM Alpha";次の 2 行に置き換えます。

NSString *sqlString = [NSString stringWithFormat:@"SELECT * FROM %@", self.databaseName];
const char *sqlStatement = [sqlString UTF8String];

また

const char *sqlStatement = "SELECT * FROM Alpha";と置き換えます

const char *sqlStatement;
if (FULLVERSION) {
    sqlStatement = "SELECT * FROM Alpha";
} else {
    sqlStatement = "SELECT * FROM AlphaLite";
}
于 2013-03-29T10:04:18.893 に答える
0

Stringwithformat を使用してから utf8string を取得できます

NSString *sql = [NSString stringWithFormat:@"SELECT * FROM %@",self.databaseName];
const char *sqlStatement = [sql UTF8String];
于 2013-03-29T10:05:20.740 に答える