我目前正在OpenEdge中开发REST (使用新的面向对象的WebSpeed处理程序),由Kendo网格小部件使用。
我真正挣扎的一个领域是实现分页-- Kendo网格要求API为其提供总记录,以确定有多少页。我发现唯一推荐的方法是执行一个PRESELECT查询,然后使用NUM-RESULTS,如下所示:
CREATE QUERY hQuery.
hQuery:SET-BUFFERS(BUFFER sales_order:HANDLE).
hQuery:QUERY-PREPARE("PRESELECT EACH sales_order WHERE co_no = 1").
hQuery:QUERY-OPEN().
oJson:Add("total", hQuery:NUM-RESULTS).可以预见,这是愚蠢的缓慢--对服务器的请求从每页72 is上升到500 is,使网格感到非常缓慢。这是在一个非常低的页面大小,太!
这里最明显的解决办法是:
所以,我的问题是,是否有更快的方法来获取查询的记录总数?
发布于 2016-07-13 19:06:53
不幸的是,这仍然是OE中的一个问题。
提到了缓存,但只有在没有应用筛选器的情况下,它才能工作,因为记录的总数取决于筛选条件。
要提高性能,唯一可以做的事是在预选中包括字段选项。
hQuery:QUERY-PREPARE("PRESELECT EACH sales_order FIELDS(table_field_here) WHERE co_no = 1").到目前为止,这是您能做的最好的事情,至少是本文中推荐的:4GL.哪一种方法能最快地计算桌子上的记录?
https://stackoverflow.com/questions/38073024
复制相似问题