用查询中的变量替换表名
Replacing table name with a variable in a query
我有以下代码。我的桌子叫tableu。我想替换'tableu'与一个变量,将持有表的名称。我该怎么表达呢?
query.prepare(
"INSERT INTO tableu (village, weight, diet, age)"
"VALUES (:village, :weight, :diet, :age)"
);
如果您想将表名从tableu
更改为NewTableName
,可以使用以下任何语法:
query.prepare(
"RENAME tableu TO NewTableName"
);
或
query.prepare(
"ALTER TABLE tableu RENAME TO NewTableName"
);
更新:可能是OP在找这个
QString tableName = QString("tableu");
QString sqlQuery = QString("INSERT INTO %1 (village, weight, diet, age) VALUES (:village, :weight, :diet, :age)").arg(tableName);
我不是100%确定您想要什么,但这段代码将允许您拥有一个变量,该变量可能包含放置在查询中的不同表名
char sBuffer [1024];
char sQueryTable[] = "tableu";
sprintf(sBuffer , "INSERT INTO %s (village, weight, diet, age) VALUES (:village, :weight, :diet, :age)", sQueryTable);
query.prepare(sBuffer);
在这里阅读有关sprint和格式化字符串的内容
注意:您也可以使用std::strings,并将包含表名的变量和字符串的其余部分连接在一起
相关文章:
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- 将变量替换为可变参数模板
- 如何使替换 c 函数的变量名成为错误?
- 关于读取有效 c++ 第 4 项(将非局部静态变量替换为局部静态变量)的问题
- 即使宏替换也无法解析变量
- 编译器是否将常量变量替换为它们在 C++ 中的值
- 在没有其他变量的情况下替换值的程序
- 将类转换为过程 API C++:替换成员变量的常用方法?
- 无法替换两跳之外的全局变量
- 是否有一种方法可以将变量列表传递给#Define指令,并导致其通过文字值替换字符串值
- 我如何用1个变量替换为正则字符串
- 在c/c++中替换perl的散列变量
- 用向量替换类新的[]变量-移动、复制运算符
- 用变量替换结构成员名称
- Scons:如何在使用变量替换时创建 LIB 依赖项
- 通过变量替换和死代码截断来减少C++源
- 变量宏是否可以对每个参数进行替换
- 当用文字替换变量用法时,程序速度减慢了很多,为什么
- 将正有符号变量替换为无符号变量
- 预处理/预编译-用常量替换变量