国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

關于使用存儲過程創建分頁

2024-05-04 11:05:06
字體:
來源:轉載
供稿:網友

要構建一個Web應用程序,分頁瀏覽功能是必不可少的,這個問題在數據庫處理中是很常見的,其實這種分頁方法只適用于少量數據的情況,下面就跟著錯新技術頻道小編的步伐來了解一下吧!
思路來源:
從publish?表中取出第?n?條到第?m?條的記錄:?
Select?TOP?m-n+1?*?
FROM?publish?
Where?(id?NOT?IN?
(Select?TOP?n-1?id?
    ?FROM?publish))

以下為存儲過程:?

復制代碼 代碼如下:

Create?PROCEDURE?pagination3
@tblName?varchar(255)?,?--?表名
@strGetFields?varchar(1000)?=?'*',?--?需要返回的列?
@fldName?varchar(255)='',?--?排序的字段名
@PageSize?int?=?10,?--?頁尺寸
@PageIndex?int?=?1,?--?頁碼
@doCount?bit?=?0,?--?返回記錄總數,?非?0?值則返回
@OrderType?bit?=?0,?--?設置排序類型,?非?0?值則降序
@strWhere?varchar(1500)?=?''?--?查詢條件?(注意:?不要加?where)
AS

declare?@strSQL?varchar(5000)?--?主語句
declare?@strTmp?varchar(110)?--?臨時變量
declare?@strOrder?varchar(400)?--?排序類型

if?@doCount?!=?0
begin
if?@strWhere?!=''
set?@strSQL?=?'select?count(*)?as?Total?from?['?+?@tblName?+?']?where?'+@strWhere
else
set?@strSQL?=?'select?count(*)?as?Total?from?['?+?@tblName?+?']?'
end?
--以上代碼的意思是如果@doCount傳遞過來的不是0,就執行總數統計。以下的所有代碼都是@doCount為0的情況:

else
begin
if?@OrderType?!=?0
begin
set?@strTmp?=?'<(select?min'
set?@strOrder?=?'?order?by?['?+?@fldName?+']?desc'
--如果@OrderType不是0,就執行降序,這句很重要!

end
else
begin
set?@strTmp?=?'>(select?max'
set?@strOrder?=?'?order?by?['?+?@fldName?+']?asc'
end

if?@PageIndex?=?1
begin
if?@strWhere?!=?''?

set?@strSQL?=?'select?top?'?+?str(@PageSize)?+'?'+@strGetFields+?'?from?['?+?@tblName?+?']?where?'?+?@strWhere?+?'?'?+?@strOrder
else

set?@strSQL?=?'select?top?'?+?str(@PageSize)?+'?'+@strGetFields+?'?from?['+?@tblName?+?']?'+?@strOrder
--如果是第一頁就執行以上代碼,這樣會加快執行速度
end
else
begin
set?@strSQL?=?'select?top?'?+?str(@PageSize)?+'?'+@strGetFields+?'?from?['
+?@tblName?+?']?where?['?+?@fldName?+?']'?+?@strTmp?+?'(['
+?@fldName?+?']) from?(select?top?'?+?str((@PageIndex-1)*@PageSize)?+?'?['
+?@fldName?+?']? from?['?+?@tblName?+?']'?+?@strOrder?+?')?as?tblTmp)'
+?@strOrder

if?@strWhere?!=?''
set?@strSQL?=?'select?top?'?+?str(@PageSize)?+'?'+@strGetFields+?'?from?['
+?@tblName?+?']?where?['?+?@fldName?+?']'?+?@strTmp?+?'(['
+?@fldName?+?'])?from?(select?top?'?+?str((@PageIndex-1)*@PageSize)?+?'?['
+?@fldName?+?']?from?['?+?@tblName?+?']?where?'?+?@strWhere?+?'?'
+?@strOrder?+?')?as?tblTmp)?and?'?+?@strWhere?+?'?'?+?@strOrder
end
end
exec?(@strSQL)
--print?@strSQL
GO?

通過錯新技術頻道小編介紹的內容,相信大家都有了一定的了解,想要了解更多的技術內容,請繼續關注錯新技術頻道吧!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华蓥市| 禄丰县| 望江县| 宣恩县| 南开区| 泸水县| 永平县| 涿州市| 湘潭市| 台中市| 汝阳县| 文昌市| 遂宁市| 扎鲁特旗| 怀化市| 东兰县| 商洛市| 庆阳市| 错那县| 渭南市| 页游| 金塔县| 铜山县| 青龙| 澄迈县| 奎屯市| 西峡县| 米泉市| 威宁| 阜新| 许昌市| 平果县| 毕节市| 延川县| 资阳市| 公安县| 美姑县| 如皋市| 乡城县| 彰化市| 娄烦县|