[英]inserting a variable to a SQLite query
我有如下聲明。
const QString createSQL = "CREATE TABLE customer (x INTEGER PRIMARY KEY ASC, y, z);" ;
我也有一個變量
QString name="name1";
我需要將表“ customer”的名稱更改為name1。 如何將變量插入上述sqlite查詢中?
這直接從文檔中刪除。
// 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);
查看文檔/來源
要重命名表,請使用ALTER TABLE
:
"ALTER TABLE customer RENAME TO " + name
如果您只需要在查詢中插入表名,
"CREATE TABLE " + name + "(x INTEGER ...
我不相信您可以使用綁定變量來更改表名,但是您可以這樣做:
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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.