环顾四周,使用QSqlTableModel,将所有行从表中取出的方法是
select();
while( canFetchMore() ) {
fetchMore();
}第一个选择似乎很好,但fetchMore()似乎一次只获取一行。我正在敲击Sql服务器,获取大约350行将占用几秒钟的时间,更不用说浪费一堆CPU了。
数据库是SQL-Server.没有更好的办法了吗?
发布于 2017-07-20 13:38:31
编辑:经过DBA的一些挖掘和帮助,我可以确认我从两个不同的数据库中得到了不同的行为。不幸的是,它们是SQL Server的相同版本,它们都在Linux上使用ODBC驱动程序(由Microsoft编写)。在工作表下,一个将选择256行,然后每次fetchMore()的迭代将选择另外256个行。对于另一种情况,select()和fetchMore()一次只能得到一行,并导致各种问题。
不幸的是,我的解决方案是将QSqlQuery传递给QSqlDatabase。
https://stackoverflow.com/questions/45193416
复制相似问题