使用儲存過程實現分頁列印

2021-04-17 04:21:01 字數 1632 閱讀 3512

使用儲存過程實現分頁列印。

這個儲存過程是乙個小區寬頻使用者管理系統,專案裡**的一部分。

功能是:

實現把錶userinfo裡的使用者資料按ip網段排序進行分頁列印!!

比如172.20.128.xx的ip簡稱為128網段的使用者,

172.20.119.xx的ip簡稱為119網段的使用者,

每個網段的使用者列印在一張a4紙上,

不足一張的按一張列印,其餘的可空出。

大於一張小於兩張的按二張列印,其餘空出.

經過估算一頁最多只能列印37行.

思路是:先把select出的按ip分組的使用者資訊和計算出的空格行insert進乙個臨時表中

然後多此臨時表列印就行了。

--首先清空表

--truncatetablesubip

declare@resultint

declare@subipvarchar(20)

declarecur_escrollcursorfor

selectsubstring(ip_address,8,3)fromuserinfogroupbysubstring(ip_address,8,3)

opencur_e--開啟游標

--print'aaa'+convert(char(13),@@cursor_rows)

fetchfirstfromcur_einto@subip

while(@@fetch_status=0)

begin

--insertintosubip(supip)values(@subip)

insertintosubipselectuserinfo.username,userinfo.catalyst_port,userinfo.home_address,

userinfo.ip_address,userinfo.phone,catalyst.label,'fromuserinfo,

catalystwhereuserinfo.catalyst_id=catalyst.idandsubstring(userinfo.ip_address,8,3)=@subip

set@result=@@rowcount

if(@result>37)

begin

while(@result<74)

begin

insertintosubipselect

username=',catalyst_port=',home_address=',ip_address=',phone=',label=',account='

set@result=@result+1

endend

else

begin

while(@result<37)

begin

insertintosubipselect

username=',catalyst_port=',home_address=',ip_address=',phone=',label=',account='

set@result=@result+1

endend

--select@@rowcount

fetchnextfromcur_einto@subip

endclosecur_e

deallocatecur_e

儲存過程實現分頁

一 create procedure dbo basic pagination2000 tblname varchar 255 表名 fidlelist varchar 2000 要查詢字段 fldname varchar 255 排序字段 pagesize int,頁尺寸 pageindex in...

儲存過程實現分頁

一 create procedure dbo basic pagination2000 tblname varchar 255 表名 fidlelist varchar 2000 要查詢字段 fldname varchar 255 排序字段 pagesize int,頁尺寸 pageindex in...

使用儲存過程分頁

use oa go object storedprocedure dbo spgetbypage script date 11 05 2014 13 01 37 set ansi nulls on goset quoted identifier on goalter procedure dbo sp...