Есть ли более выразительный способ выполнения SQL-запроса с использованием Qt? - PullRequest
2 голосов
/ 19 марта 2010

У меня сейчас есть этот код:

  // Construct query
  QString const statement = QString("drop database if exists %1")
                                    .arg(databaseName_);

  QSqlQuery query(db);
  query.exec(statement);

Есть ли лучший способ кодирования, чем приведенный выше?

В частности, мне не нравится, как я использую QString для оператора SQL. Было бы хорошо, если бы у Qt был какой-то класс, чтобы я мог сделать что-то вроде:

  // Construct query
  QSomeClass statement = "drop database if exists %1";
  statement.setArg(1, databaseName_); // Replace all %1 in the original string.

  QSqlQuery query(db);
  query.exec(statement);

1 Ответ

3 голосов
/ 19 марта 2010

Я думаю, что вы в основном описываете заполнители запросов:

QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
              "VALUES (:id, :forename, :surname)");
query.bindValue(":id", 1001);
query.bindValue(":forename", "Bart");
query.bindValue(":surname", "Simpson");
query.exec();

Единственная разница между кодом, приведенным выше, и QSomeClass, который вы описали, заключается в том, что вам нужно указать базу данных при создании запроса.

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