偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Sybase分頁(yè)顯示存儲(chǔ)過(guò)程

數(shù)據(jù)庫(kù)
建立一個(gè)web應(yīng)用,分頁(yè)瀏覽功能必不可少,下文就教您一個(gè)Sybase分頁(yè)顯示存儲(chǔ)過(guò)程的方法,如果您感興趣的話,不妨一看。

實(shí)現(xiàn)Sybase分頁(yè)顯示存儲(chǔ)過(guò)程是我們經(jīng)常會(huì)遇到的問(wèn)題,下面就對(duì)Sybase分頁(yè)顯示存儲(chǔ)過(guò)程的方法進(jìn)行詳細(xì)介紹,供您參考。

建立一個(gè)web應(yīng)用,分頁(yè)瀏覽功能必不可少。這個(gè)問(wèn)題是數(shù)據(jù)庫(kù)處理中十分常見(jiàn)的問(wèn)題。經(jīng)典的數(shù)據(jù)分頁(yè)方法是:ADO 紀(jì)錄集分頁(yè)法,也就是利用ADO自帶的分頁(yè)功能(利用游標(biāo))來(lái)實(shí)現(xiàn)分頁(yè)。但這種分頁(yè)方法僅適用于較小數(shù)據(jù)量的情形,因?yàn)橛螛?biāo)本身有缺點(diǎn):游標(biāo)是存放在內(nèi)存中,很費(fèi)內(nèi)存。游標(biāo)一建立,就將相關(guān)的記錄鎖住,直到取消游標(biāo)。游標(biāo)提供了對(duì)特定集合中逐行掃描的手段,一般使用游標(biāo)來(lái)逐行遍歷數(shù)據(jù),根據(jù)取出數(shù)據(jù)條件的不同進(jìn)行不同的操作。而對(duì)于多表和大表中定義的游標(biāo)(大的數(shù)據(jù)集合)循環(huán)很容易使程序進(jìn)入一個(gè)漫長(zhǎng)的等待甚至死機(jī)。

更重要的是,對(duì)于非常大的數(shù)據(jù)模型而言,分頁(yè)檢索時(shí),如果按照傳統(tǒng)的每次都加載整個(gè)數(shù)據(jù)源的方法是非常浪費(fèi)資源的?,F(xiàn)在流行的分頁(yè)方法一般是檢索頁(yè)面大小的塊區(qū)的數(shù)據(jù),而非檢索所有的數(shù)據(jù),然后單步執(zhí)行當(dāng)前行。

最早較好地實(shí)現(xiàn)這種根據(jù)頁(yè)面大小和頁(yè)碼來(lái)提取數(shù)據(jù)的方法大概就是“俄羅斯存儲(chǔ)過(guò)程”。這個(gè)存儲(chǔ)過(guò)程用了游標(biāo),由于游標(biāo)的局限性,所以這個(gè)方法并沒(méi)有得到大家的普遍認(rèn)可。

下面的存儲(chǔ)過(guò)程就是結(jié)合我們的辦公自動(dòng)化實(shí)例寫的Sybase分頁(yè)存儲(chǔ)過(guò)程:

  1. CREATE procedure pagination1  
  2.  
  3. (@pagesize int,   --頁(yè)面大小,如每頁(yè)存儲(chǔ)20條記錄  
  4.  
  5. @pageindex int    --當(dāng)前頁(yè)碼  
  6.  
  7. )  
  8.  
  9. as  
  10.  
  11. set nocount on  
  12.  
  13. begin  
  14.  
  15. declare @indextable table(id int identity(1,1),nid int)   --定義表變量  
  16.  
  17. declare @PageLowerBound int   --定義此頁(yè)的底碼  
  18.  
  19. declare @PageUpperBound int   --定義此頁(yè)的頂碼  
  20.  
  21. set @PageLowerBound=(@pageindex-1)*@pagesize  
  22.  
  23. set @PageUpperBound=@PageLowerBound+@pagesize  
  24.  
  25. set rowcount @PageUpperBound  
  26.  
  27. insert into @indextable(nid) select gid from TGongwen where fariqi >dateadd(day,-365,getdate()) order by fariqi desc  
  28.  
  29. select O.gid,O.mid,O.title,O.fadanwei,O.fariqi from TGongwen O,@indextable t where O.gid=t.nid  
  30.  
  31. and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id  
  32.  
  33. end  
  34.  
  35. set nocount off  
  36.  

以上存儲(chǔ)過(guò)程運(yùn)用了SQL SERVER的最新技術(shù)――表變量。應(yīng)該說(shuō)這個(gè)存儲(chǔ)過(guò)程也是一個(gè)非常優(yōu)秀的分頁(yè)存儲(chǔ)過(guò)程。當(dāng)然,在這個(gè)過(guò)程中,您也可以把其中的表變量寫成臨時(shí)表:CREATE TABLE #Temp。但很明顯,在SQL SERVER中,用臨時(shí)表是沒(méi)有用表變量快的。所以剛開(kāi)始使用這個(gè)存儲(chǔ)過(guò)程時(shí),感覺(jué)非常的不錯(cuò),速度也比原來(lái)的ADO的好。

 

 

【編輯推薦】

簡(jiǎn)單商討Oracle Sybase數(shù)據(jù)庫(kù)

Sybase數(shù)據(jù)庫(kù)修復(fù)的兩種情況

Sybase數(shù)據(jù)災(zāi)難方案淺析

sybase分頁(yè)存儲(chǔ)過(guò)程的實(shí)現(xiàn)

Sybase數(shù)據(jù)倉(cāng)庫(kù)大鵬證券應(yīng)用案例

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-11-29 09:12:46

sybase分頁(yè)存儲(chǔ)過(guò)

2010-11-29 15:25:39

Sybase存儲(chǔ)過(guò)程

2010-09-13 13:12:28

sqlserver分頁(yè)

2011-03-28 10:46:36

sql server存儲(chǔ)分頁(yè)

2011-03-24 13:38:47

SQL Server 存儲(chǔ)分頁(yè)

2011-10-10 16:44:37

分頁(yè)數(shù)據(jù)庫(kù)

2010-11-29 11:27:08

oracle創(chuàng)建存儲(chǔ)過(guò)

2011-04-11 09:16:31

Sybase存儲(chǔ)

2010-10-26 14:50:11

oracle存儲(chǔ)過(guò)程

2012-04-23 15:10:18

ASP.NET

2010-09-14 10:47:45

sql server存

2011-03-24 13:31:35

2分法存儲(chǔ)過(guò)程分頁(yè)

2011-06-17 17:37:16

JavaSQL Server

2010-06-10 12:37:27

MySQL分頁(yè)查詢

2010-04-30 08:47:22

Oracle分頁(yè)存儲(chǔ)

2010-06-30 14:36:49

SQL Server

2010-11-10 15:16:14

Sql Server分

2010-06-18 10:34:38

SQL Server

2010-04-12 09:26:52

Oracle查詢分頁(yè)

2010-05-06 14:01:12

Oracle分頁(yè)存儲(chǔ)過(guò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)