Замена имени таблицы переменной в запросе - PullRequest
1 голос
/ 12 августа 2011

У меня есть следующий код. Моя таблица называется tableu. Я хочу заменить tableu на переменную, которая будет содержать имя таблицы.Как я могу это представить.

   query.prepare(
                "INSERT INTO tableu (village, weight, diet, age)"
                "VALUES (:village, :weight, :diet, :age)"
                );

Ответы [ 2 ]

3 голосов
/ 12 августа 2011

Если вы хотите изменить имя таблицы с tableu на, скажем, NewTableName, это можно сделать с помощью любого из следующего синтаксиса:

query.prepare(
              "RENAME tableu TO NewTableName"
             );

OR

query.prepare(
              "ALTER TABLE tableu RENAME TO NewTableName"
             );

Обновление:

Может быть, ОП ищет это.

QString tableName = QString("tableu");
QString sqlQuery = QString("INSERT INTO %1 (village, weight, diet, age) VALUES (:village, :weight, :diet, :age)").arg(tableName);
2 голосов
/ 12 августа 2011

Я не на 100% уверен, что вы хотите, но этот код позволит вам иметь переменную, которая может содержать разные имена таблиц, помещенные в запрос

  char sBuffer [1024];

  char sQueryTable[] = "tableu";

  sprintf(sBuffer , "INSERT INTO %s (village, weight, diet, age) VALUES (:village, :weight, :diet, :age)", sQueryTable);

  query.prepare(sBuffer);

Читать о sprinft и форматировании строк здесь

Примечание: вы всегда можете также использовать std :: strings и объединить строку вместе из переменной, содержащей имя таблицы и остальную часть строки

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