我可以使用相同的qsqlquery变量执行多个语句
Can I use the same QSQLQuery variable to execute multiple statements?
我可以使用相同的 QSQLQuery
变量在 QT 5.3.2 中执行多个语句>使用 sqlite ?每次执行后,我应该调用finish
或clear
函数吗?
例如:
QSqlQuery query;
query.prepare("INSERT INTO myTable (id, name) VALUES (:id, :name)");
query.bindValue(":id", id);
query.bindValue(":name", name);
if( !query.exec() )
{
qDebug() << "Error";
}
query.finish() // or query.clear()?
query.prepare("INSERT INTO myProducts (product, price) VALUES (:product, :price)");
query.bindValue(":product", product);
query.bindValue(":price", price);
if( !query.exec() )
{
qDebug() << "Error";
}
query.finish() // or query.clear()?
NOTE :我认为我需要使用finish
函数,但是我不完全理解clear
函数的功能。文档说:
清除结果集,并发布查询中持有的任何资源。 将查询状态设置为无活动。
无需在您的情况下使用这些功能,您可以做得很好,而无需您询问的两行中的任何一个
我可以使用相同的qsqlquery变量在qt 5.3.2中使用sqlite?
执行多个语句
当然可以,但是您没有义务这样做。例如,如果您想执行SQL查询,并且碰巧您已经有一个有效的QSqlQuery
对象(您不愿意从中获取更多数据),则可以使用相同的QSqlQuery
对象使用您的新查询,因为无需创建另一个QSqlQuery
。
我应该在执行每次执行后调用完成或清晰的功能吗?
这是文档对QSqlQuery::finish()
的评价:
指示数据库驱动程序,直到重新执行此查询,将不再从此查询中获取数据。通常无需调用此函数,但是如果您打算在上重新使用查询,则可能会有所帮助,例如锁定或光标等资源。>时间。
这意味着只有在要长时间完成的QSqlQuery
对象以便使用它时,才需要使用它。但是确实没有必要,只要完成后,只要让您的对象从范围中消失。
和关于 QSqlQuery::clear()
:
清除结果集,并发布查询中持有的任何资源。将查询状态设置为无效。如果需要调用此功能,您应该很少会
您可以查看主详细示例,尤其是createConnection()
功能,以查看如何多次使用相同的QSqlQuery
对象。
相关文章:
- 执行函数时导致崩溃的变量
- 是否可以依赖函数范围的静态变量来执行程序关闭期间调用的方法?
- 对OpenMP reduction子句中的变量执行原子操作
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 子线程中的条件变量等待停止主线程中的执行
- 如果函数包含静态变量,为什么编译器不执行内联?
- 提供变量作为 MATLAB 系统命令的输入参数,以便C++可执行文件
- 为什么变量的打印地址在每次执行时都会打印随机值,即使它是 C 中的逻辑地址?
- 我如何将一个变量与另一个变量进行比较,例如我想如果(var1 > var2 x 1),然后执行此 c++
- 在 MinGW 和 MinGW-64 上执行命令后变量为空?
- 程序的执行在 C++ 中输入 char 变量后结束
- 即使变量为 false,'If'也会执行
- make_shared是否对每个成员变量执行默认初始化(零初始化)
- 在链接的程序集文件中,我想从 c++ 调用代码访问变量.是否可以在不触发访问冲突的情况下执行此操作?
- 在调用进程的上下文中通过 win32 执行批处理,从而保留环境变量
- 为什么在执行条件变量通知之前我们需要一个空的 std::lock_guard?
- QProcess::执行环境变量扩展字符串
- 在C++的系统中执行变量(" " )
- 使用类定义来执行变量
- 识别和执行变量