我目前有这段代码:
// 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);
答案 0 :(得分:3)
我认为您基本上是在描述查询占位符:
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之间的唯一区别是你必须在创建查询时指定数据库。