我有两个 .sqlite 文件。一种用于完整版,一种用于精简版。 我使用以下代码为一种条件选择一个 .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”行中,我想使用 self.databaseName 代替 Alpha,它将根据条件获得数据库名称。
如何做到这一点? 请帮忙。谢谢。
最佳答案
在 SELECT
语句中,将 const char *sqlStatement = "SELECT * FROM Alpha";
替换为以下两行:
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";
}
关于iphone - 使用 Objective C 编写 SQLite 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15701020/