【发布时间】:2021-02-05 08:48:21
【问题描述】:
我们有一个代码来对数据进行排序和分页并将数据呈现到 Jqgrid。该代码在连接到 SQL 服务器时工作正常。那就是对每个页面进行分页时会按预期返回不同的数据。但是在某个时间点后连接到 oracle 服务器时,会呈现重复的数据。 Oracle 和 SQL Server 都有相同的数据。 Jqgrid 页面中的参数和页面数在服务器端按预期工作。那是在分页起点和块大小正确传输到服务器端。在对数据库中 varchar 类型但也包含数字的列进行排序后,会观察到重复值。数据库状态列包含值 3 和 A,在观察到分页问题时,使用状态列对重复数据进行排序后。从某种意义上说,重复数据,第 2 页上的数据将与第 3 页上的数据相同。任何帮助将不胜感激。提前致谢... 查询一:-
select * from ( select row_.*, rownum rownum_ from ( Select x,y,z,status FROM tablename c WHERE status IN('in condition seperated with status') ORDER BY status asc ) row_ where rownum <= 30 ) where rownum_ > 20;
查询二:-
select * from ( select row_.*, rownum rownum_ from ( Select x,y,z,status FROM tablename c WHERE status IN('in condition seperated with status') ORDER BY status asc ) row_ where rownum <= 20 ) where rownum_ > 10;
这里查询 1 和 2 总是返回相同的结果。
【问题讨论】:
-
我唯一能建议你的是观察你的服务器端代码。检查发生了什么以及传递给 sql 查询的参数以及它是如何构建的。您是使用 jqGrid for PHP 还是您有自己的分页排序代码等?任何细节和代码都会有所帮助
-
@TonyTomov 我们在 Jsp 和 Java 中的实现与服务器端相同。由于它是服务器端分页,我们已经实现了自己的代码用于分页目的。在调试时,所有数据似乎都在正确获取。但似乎没有像预期的那样填充到 Jqgrid。
-
在浏览器控制台查看服务器返回的内容,如果没问题,就可以发布你的jqGrid代码并指定使用哪个版本的jqGrid。
-
@TonyTomov 感谢您对此进行调查。请找到修改后的问题。附上示例代码。
标签: oracle pagination jqgrid