网络编程
位置:首页>> 网络编程>> Asp编程>> 通过session在ASP中改善动态分页的性能(2)

通过session在ASP中改善动态分页的性能(2)

作者:caokai1860  发布时间:2007-09-11 14:00:00 

标签:session,分页

3.将查询结果保存到动态数组

  Sub SaveRecordSet() 
  if objRs.EOF = false then 
  objRs.movelast 
  session(“iRowCount") = objRs.recordCount 
  session(“iFieldCount") = objRs.Fields.Count 
  session(“iPageCount") = objRs.pagecount 
  redim Preserve TempArray(session 
  (“iRowCount"),session(“iFieldCount")) 
  ’TempArray是一个二维动态数组, 
  根据记录集大小重新定义其大小 
  objRs.MoveFirst 
  iCount=0 
  do while objRs.EOF=false 
  iCount = iCount + 1 
  for i= 1 to session(“iFieldCount") 
  TempArray(iCount,i)=objRs.Fields.Item 
  (i-1).value 
  next 
  objRs.MoveNext 
  loop 
  session(“StoredArray") = TempArray 
  objRs.Close 
  else 
  session(“iPageCount") = 0 
  end if 
  End Sub 


4.显示记录内容 
   

 Sub ShowRecord() 
  ...... 
  LocalArray=session(“StoredArray") 
  iShowTotal=(iPageCurrent-1)*iPageSize+1 
  iRowLoop = 1 
  do while iRowLoop < = iPageSize and iShowTotal 
  < = session(“iRowCount") 
  Response.Write(“< TR >") 
  for i = 1 To session(“iFieldCount") 
  Response.write(“< TD >" 
  & LocalArray(iShowTotal,i)) Next 
  Response.Write(“< /TR >") 
  iShowTotal = iShowTotal + 1 
  iRowLoop = iRowLoop + 1 loop 
  Response.Write(“< /TABLE >") 
  if iPageCurrent < > 1 and 
  iPageCurrent < session 
  (“iPageCount") then 
  % > 
  < center >< A HREF=“db_pag.asp?page=< %= 
  iPageCurrent - 1 % >" >前一页< /A >< A HREF= 
  “db_pag.asp?page=< %= iPageCurrent + 1 % >" > 
  后一页< /A >< /center > 
  < % 
  else 
  if iPageCurrent < > 1 then 
  % > 
  < center >< A HREF=“db_pag.asp?page=< %= 
  iPageCurrent - 1 % >" >前一页 < /A >< /center > 
  < % 
  end if 
  if iPageCurrent < session(“iPageCount")then 
  % > 
  < center >< A HREF=“db_pag.asp?page= 
  < %= iPageCurrent + 1 % >" >后一页 < /A > 
  < /center > 
  < % 
  end if 
  end if 
  End Sub 


5.主程序
 if Request.QueryString(“page") = “" then
  ’提交查询申请并且查询条件与上一次不同
  ......
  call GetRecordSet(strBbmc,strKssj,strZzsj,
  strNodeCode,strFxzl)
  call SaveRecordSet
  Else
  iPageCurrent=CInt(Request.QueryString(“page"))
  strKssj=session(“strKssj")
  end if
  if session(“iPageCount") = 0 then
  Response.Write “抱歉!没有满足条件的记录"
  Response.Write “< Br >"
  else
  call showrecord()
  end if
 
   
结束语
  ----本程序的关键在于Session数组的定义及其赋值的实现,通过应用Session数组可以提高处理大量数据的应用程序的性能。 
  

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com