将变量插入SQLite查询

时间:2013-12-21 12:50:27

标签: c++ database qt sqlite blackberry-10

我的声明如下。

 const QString createSQL = "CREATE TABLE customer (x INTEGER PRIMARY KEY ASC, y, z);" ;

我还有一个变量

 QString name="name1";

我需要将表“customer”的名称更改为name1。如何将变量插入上面的sqlite查询?

3 个答案:

答案 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);

查看documentation/source

答案 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");
相关问题