客户端回调实现gridView无刷新分页1
点击次数:25 次 发布日期:2008-11-26 11:09:06 作者:源代码网
|
源代码网推荐 由于客户对速度和性能上的要求越来越变态,而数据量一天天的庞大,因此本人产生了数据的查询和分页完全由客户端回调来实现。想法看上去复杂,实现起来也不难。废话不多说,看程序吧。 源代码网推荐 源代码网推荐 一、存储过程 源代码网推荐 源代码网推荐 包头: 源代码网推荐 源代码网推荐 create or replace package H_QUERYPACK is 源代码网推荐 源代码网推荐 -- Author : Evorul 源代码网推荐 -- Created : 2007-3-29 源代码网推荐 -- Purpose : 查询机构表 源代码网推荐 源代码网推荐 -- Public type declarations 源代码网推荐 type MYCURSOR is REF CURSOR; 源代码网推荐 PROCEDURE QUERYLOG (RET_CURSOR OUT MYCURSOR,ERRORCODE OUT INT,p_logID int,p_StartTime Date,p_EndTime Date,p_Operator varchar2 ,p_OrderField varchar2 , 源代码网推荐 p_Desc int,p_PageSize Int,p_PageIndex Int,p_RecordCount Out Int); 源代码网推荐 源代码网推荐 end H_QUERYPACK; 源代码网推荐 源代码网推荐 源代码网推荐 包体: 源代码网推荐 源代码网推荐 create or replace package body H_QUERYPACK Is 源代码网推荐 -- Author : Evorul 源代码网推荐 -- Created : 2007-3-29 源代码网推荐 -- Purpose : 查询 源代码网推荐 源代码网推荐 -- 查询公司,分页用 源代码网推荐 PROCEDURE QUERYLOG (RET_CURSOR OUT MYCURSOR,ERRORCODE OUT INT,p_logID int,p_StartTime Date,p_EndTime Date,p_Operator varchar2 ,p_OrderField varchar2 , 源代码网推荐 p_Desc int,p_PageSize Int,p_PageIndex Int,p_RecordCount Out Int) 源代码网推荐 AS 源代码网推荐 v_sql varchar2(3000); 源代码网推荐 v_sqlcount varchar2(3000); 源代码网推荐 v_orderfield varchar2(100); 源代码网推荐 v_order VARCHAR2(5); --顺序 源代码网推荐 v_count int; 源代码网推荐 v_heiRownum int; 源代码网推荐 v_lowRownum int; 源代码网推荐 BEGIN 源代码网推荐 ERRORCODE:=0; 源代码网推荐 源代码网推荐 v_sql:="select * from LOG Where 1=1 "; 源代码网推荐 源代码网推荐 if(p_logID <> 0)then 源代码网推荐 v_sql := v_sql || " and id = " || TO_CHAR(p_logID); 源代码网推荐 end if; 源代码网推荐 源代码网推荐 IF p_Operator Is Not Null Then then 源代码网推荐 v_sql := v_sql || "And operator LIKE ""%" || RTRIM(LTRIM(p_Operator))||"%"""; 源代码网推荐 end if; 源代码网推荐 源代码网推荐 v_sql := v_sql ||" and (TO_CHAR(time,""YYYYMMDD"") between """ || to_char(p_StartTime, "YYYYMMDD") ||""" and """ || to_char(p_EndTime, "YYYYMMDD") ||""")"; 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 ----取记录总数 源代码网推荐 v_sqlcount := "select count(*) from (" || v_sql || ")"; 源代码网推荐 execute immediate v_sqlcount into v_count; 源代码网推荐 p_RecordCount := v_count; 源代码网推荐 源代码网推荐 --排序字段 源代码网推荐 IF p_OrderField IS NOT NULL THEN 源代码网推荐 v_orderfield:=p_OrderField; 源代码网推荐 Else 源代码网推荐 v_orderfield:="ID"; 源代码网推荐 END IF; 源代码网推荐 --是否降序 源代码网推荐 IF p_Desc <>0 THEN 源代码网推荐 v_order:=" ASC"; 源代码网推荐 Else 源代码网推荐 v_order:=" DESC"; 源代码网推荐 END IF; 源代码网推荐 源代码网推荐 v_sql:=v_sql || "ORDER BY "|| v_orderfield || v_order; 源代码网推荐 ----执行分页查询 源代码网推荐 v_heiRownum := p_PageIndex * p_PageSize; 源代码网推荐 v_lowRownum := v_heiRownum - p_PageSize + 1; 源代码网推荐 源代码网推荐 v_sql := "SELECT * FROM ( 源代码网推荐 SELECT A.*, rownum rn FROM ("|| v_sql ||") A WHERE rownum <= "|| to_char(v_heiRownum) || ") B WHERE rn >= " || to_char(v_lowRownum) ; 源代码网推荐 源代码网推荐 源代码网推荐 OPEN RET_CURSOR FOR v_sql; 源代码网推荐 源代码网推荐 EXCEPTION 源代码网推荐 WHEN NO_DATA_FOUND THEN 源代码网推荐 ERRORCODE:=9999; 源代码网推荐 WHEN OTHERS THEN 源代码网推荐 ERRORCODE:=9999; 源代码网推荐 END QUERYLOG; 源代码网推荐 源代码网推荐 END H_QUERYPACK; 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
