如何在不同的列中插入随机数量的值? 查询.C++.SQlite 数据库
How can I insert a random number of values in different columns? querys. C++. SQlite database
在我的数据库中,我有一个名为"history"的表,有 3 列(距离 1、距离 2、距离 3(
我将简化代码中的内容:
我有一个向量"Ldist",每次都有不同的距离量。有时 1 个距离,或 2 个或 3 个距离。 通常我知道它会有多远的距离,我的工作方式是这样的:
(例如:如果我知道向量将有 2 个距离(
QSqlQuery qry;
qry.prepare("INSERT INTO history (distance1, distance2) "
"VALUES (:placeholder0, :placeholder1)");
qry.bindValue(":placeholder0", Ldist.at(0));
qry.bindValue(":placeholder1", Ldist.at(1));
qry.exec();
当我不知道这个向量会有多少距离时,我的问题就来了。如何使"列影响"和"所需的占位符"可用于处理向量"Ldist"中的随机值数量?
我试图做一个循环,但我不知道如何更改我的代码以适应我需要的东西。
谢谢建议。
你说得对,需要一个循环。像这样的东西(未经测试(
if (!Ldist.empty())
{
QString columns, values;
for (size_t i = 0; i < std::min(3, Ldist.size()); ++i)
{
columns += QString("distance%1,").arg(i + 1);
values += QString(":placeholder%1,").arg(i);
}
// trim trailing comma
columns.remove(columns.length() - 1, 1);
values.remove(values.length() - 1, 1);
QString queryStr = QString("INSERT INTO history (%1) VALUES (%2)").arg(columns, values);
QSqlQuery qry(queryStr);
for (size_t i = 0; i < std::min(3, Ldist.size()); ++i)
{
QString placeHolder = QString(":placeholder%1,").arg(i);
qry.bindValue(placeHolder, Ldist.at(i));
}
qry.exec();
}
谢谢 acraig5075!! <3
我了解到您也可以对列使用占位符。我不知道。如果我们知道^^,那就容易多了
这就是我让我的代码:
QString column; QSqlQuery qry;
for (c=0; c < Ldist.size(); c++)
{
column = QString("dist%1").arg(c+1);
qry.prepare("INSERT INTO history (:placeholder0) VALUES (:placeholder1)");
qry.bindValue(":placeholder0",column);
qry.bindValue(":placeholder1",Ldist.at(c));
qry.exec();
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 查询SQLite数据库中的日期
- 如何在ArangoDb AQL查询中指定数据库
- 如何从 Oracle 数据库中获取 qt 中 SQL 查询的传输字节大小?
- 查询数据库以在 C++ 中创建自定义类集合的最佳方法
- 如何在不同的列中插入随机数量的值? 查询.C++.SQlite 数据库
- Windows 10 中的 MS Access 数据库 SQL 查询问题
- 在什么条件下,数据库在从 cpp 执行选择查询时不会关闭游标
- 如果存在查询图像,则可以通过数据库中的单个图像获得面部识别
- 从记录集或数据库查询填充树中的项时如何跟踪树中的项
- QT 查询 SQL 精简版数据库
- C++和 Sqlite DELETE 查询实际上不会从数据库文件中删除该值
- 无法删除 QSql数据库 - 查询仍处于活动状态
- 在Win32 C中查询Sqlite数据库的最佳方式
- 杀死一个Linux进程,停止它在Oracle数据库中的查询工作吗?
- 为什么 SQLite 不允许我查询特定的 ATTACHED 数据库?
- boost.asio并查询数据库
- 具有发布、订阅和查询筛选器的内存数据库
- 在sqlite3数据库中搜索查询某些项目
- 使用SqlConnection连接和查询托管C++中的数据库