FMDB - executeQuery Невозможно предоставить параметры

Код, который работает:

A) FMResultSet *r = [self.db executeQuery:@"SELECT COUNT(*) FROM myDB"];

Что я хочу работать:

B) r = [self.db executeQuery:@"SELECT COUNT(*) FROM ?",@"myDB"];

Ошибка при использовании B:

DB Error: 1 "near "?": syntax error"
DB Query: SELECT COUNT(*) FROM ?

Как я могу получить B работать?

1 ответ

Решение

Я не думаю, что вы можете передать имя таблицы в параметризованном запросе.

В качестве альтернативы вы можете сделать это следующим образом:

- (void)queryBuilder:(NSString *)tableName
{
   NSString *result = [NSString stringWithFormat:@"SELECT COUNT(*) FROM %@",tableName];
   return result;
}

И используйте это как:

r = [self.db executeQuery:[self queryBuilder:@"myDB"]];
Другие вопросы по тегам