簡體   English   中英

在SQLite查詢中插入變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM