ASP.NET调用oracle存储过程实现快速分页

http://tech.ddvip.com   2007年11月24日    社区交流

内容摘要:在WEB开发中,分页是我们必须要解决的一个问题,今天我们一起来看看ASP.NET调用ORACEL存储过程实现分页的方法。

  在WEB开发中,分页是我们必须要解决的一个问题,今天我们一起来看看ASP.NET调用ORACEL存储过程实现分页的方法。

  包定义:

以下是引用片段:
  createorreplacepackageMaterialManageis
  TYPET_CURSORISREFCURSOR;
  ProcedurePer_QuickPage
  (
  TbNameinvarchar2,--表名
  FieldStrinvarchar2,--字段集
  RowFilterinvarchar2,--过滤条件
  SortStrinvarchar2,--排序集
  RownumFieldStrinvarchar2,--分页条件
  TotalCountoutnumber,--总记录数
  Cur_ReturnCuroutT_CURSOR--返回的游标
  );
  endMaterialManage;

  包主体:

以下是引用片段:
  createorreplacepackagebodyMaterialManageis
  ProcedurePer_QuickPage
  (
  TbNameinvarchar2,--表名
  FieldStrinvarchar2,--字段集
  RowFilterinvarchar2,--过滤条件
  SortStrinvarchar2,--排序集
  MinRowNuminnumber,--分页小值
  MaxRowNuminnumber,--分页大值
  TotalCountoutnumber,--总记录数
  Cur_ReturnCuroutT_CURSOR
  )
  is
  v_SourceTb1varchar2(3000);--动态表名1
  v_SourceTb2varchar2(3000);--动态表名2
  v_SourceTb3varchar2(3000);--动态表名3
  v_SourceTb4varchar2(3000);--动态表名4
  v_TotalCountvarchar2(50);--总记录数
  v_sqlvarchar2(3000);--动态sql
  begin
  v_SourceTb1:=’’’’(select’’’’||FieldStr||’’’’from’’’’||TbName||’’’’)SourceTb1’’’’;
  v_SourceTb2:=’’’’(select*from’’’’||v_SourceTb1||’’’’where’’’’||RowFilter||’’’’’’’’||SortStr||’’’’)SourceTb2’’’’;
  v_SourceTb3:=’’’’(selectrownumasRowindex,SourceTb2.*from’’’’||v_SourceTb2||’’’’whererownum<=’’’’||MaxRowNum||’’’’)SourceTb3’’’’;
  v_SourceTb4:=’’’’(select*from’’’’||v_SourceTb1||’’’’where’’’’||RowFilter||’’’’)SourceTb4’’’’;
  v_sql:=’’’’selectcount(*)asTotalCountfrom’’’’||v_SourceTb4;
  executeimmediatev_sqlintov_TotalCount;
  TotalCount:=v_TotalCount;
  v_sql:=’’’’select*from’’’’||v_SourceTb3||’’’’whereRowIndex>=’’’’||MinRowNum;
  openCur_ReturnCurforv_sql;
  endPer_QuickPage;
  ENDMaterialManage;

责编:豆豆技术应用

正在加载评论...