如果一个表有很多数据,查询时间很长,用户希望随时终止已经通过QSqlQuery发起的查询。
请给出成功的方法。 能给出思路就可以,一定是成功实现的哦。
5 个解决方案
#1
查询目前是在单独的线程里执行的。
线程可终止,窗体也可以关闭,但已经执行的查询,实际上没有终止。
线程可终止,窗体也可以关闭,但已经执行的查询,实际上没有终止。
#2
QSqlQuery.exec()的时候,Sql 语句是数据库在执行,Qt 只是等待返回结果,所以没法打断 Sql 语句的执行。
#3
那为什么有的软件可以终止查询呢?
#4
那为什么有的软件却可以终止查询呢?
是如何做到的呢?
#5
看了一下pgAdmin的源码,它取消查询的功能是借助驱动程序中的一个api实现的。
而 QsqlQuery 没有实现 取消的功能。
而 QsqlQuery 没有实现 取消的功能。
#1
查询目前是在单独的线程里执行的。
线程可终止,窗体也可以关闭,但已经执行的查询,实际上没有终止。
线程可终止,窗体也可以关闭,但已经执行的查询,实际上没有终止。
#2
QSqlQuery.exec()的时候,Sql 语句是数据库在执行,Qt 只是等待返回结果,所以没法打断 Sql 语句的执行。
#3
那为什么有的软件可以终止查询呢?
#4
那为什么有的软件却可以终止查询呢?
是如何做到的呢?
#5
看了一下pgAdmin的源码,它取消查询的功能是借助驱动程序中的一个api实现的。
而 QsqlQuery 没有实现 取消的功能。
而 QsqlQuery 没有实现 取消的功能。