使用Qt执行SQL查询是否有一种更具表现力的方式?

使用Qt执行SQL查询是否有一种更具表现力的方式?,qt,qt4,Qt,Qt4,我目前有以下代码: // Construct query QString const statement = QString("drop database if exists %1") .arg(databaseName_); QSqlQuery query(db); query.exec(statement); 有没有比上述更好的编码方法 具体地说,我不喜欢如何将QString用于SQL语句。如果Qt有

我目前有以下代码:

  // 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);

我认为您基本上是在描述查询占位符:

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之间的唯一区别是,在创建查询时必须指定数据库