我的声明如下。
const QString createSQL = "CREATE TABLE customer (x INTEGER PRIMARY KEY ASC, y, z);" ;
我还有一个变量
QString name="name1";
我需要将表“customer”的名称更改为name1。如何将变量插入上面的sqlite查询?
答案 0 :(得分:1)
这是直接从文档中获取的。
// Execute query with positional binding using named placeholders
QVariantList contactValues;
contactValues << 1 << "Mike" << "Chepesky";
DataAccessReply reply = sc.executeAndWait(
"insert into contact (id, firstname, lastname) values (:id, :firstname, :lastname)",
contactValues);
和
// Execute query with positional binding using positional (?) placeholders
QVariantList contactValues;
contactValues << 1 << "Mike" << "Chepesky";
DataAccessReply reply = sc.executeAndWait(
"insert into contact (id, firstname, lastname) values (?, ?, ?)",
contactValues);
答案 1 :(得分:0)
要重命名表格,请使用ALTER TABLE
:
"ALTER TABLE customer RENAME TO " + name
如果您只需要将表名插入查询,
"CREATE TABLE " + name + "(x INTEGER ...
答案 2 :(得分:0)
我不相信你可以用绑定变量更改表名,但你可以这样做:
QString name = "tableName";
QString createSQL = QString("CREATE TABLE %1 (x INTEGER PRIMARY KEY ASC, y, z)").arg(name);
要回答H2CO3的评论,你绝对可以绑定值:
QString queryStr = QString("SELECT * FROM TABLE %1 WHERE col = :selected").arg(name);
QSqlQuery query(qSqlDatabase);
query.prepare(queryStr);
query.bindValue(":selected", "Selected Value");