关闭

使用存储过程实现分页打印

1004人阅读 评论(0) 收藏 举报


使用存储过程实现分页打印。

这个存储过程是一个小区宽带用户管理系统,项目里代码的一部分。

功能是:
实现把表userinfo里的用户资料按IP网段排序进行分页打印!!
比如172.20.128.XX的IP简称为128网段的用户,
172.20.119.XX的IP简称为119网段的用户,

每个网段的用户打印在一张A4纸上,
不足一张的按一张打印,其余的可空出。
大于一张小于两张的按二张打印,其余空出.
经过估算一页最多只能打印37行.
思路是:先把select出的按IP分组的用户信息和计算出的空格行insert进一个临时表中
然后多此临时表打印就行了。

 

--首先清空表
--truncate table subip

declare @result int
declare @subip varchar(20)
declare cur_e scroll cursor for
   select substring(ip_address,8,3) from userinfo group by substring(ip_address,8,3)

open cur_e--打开游标
--print 'aaa'+convert(char(13),@@cursor_rows)
 fetch first from cur_e into @subip

while(@@fetch_status=0)
 begin
  --insert into subip (supip)values (@subip)
   insert into subip select userinfo.username,userinfo.catalyst_port,userinfo.home_address,
userinfo.ip_address,userinfo.phone,catalyst.label,'' from userinfo,
catalyst where userinfo.catalyst_id=catalyst.id and substring(userinfo.ip_address,8,3) =@subip
   set @result=@@rowcount
      if(@result>37)
        begin
          while(@result<74)
           begin
           insert into subip select

username='',catalyst_port='',home_address='',ip_address='',phone='',label='',account=''
           set @result=@result+1
           end
        end
      else
        begin
          while (@result<37)
           begin
            insert into subip select

username='',catalyst_port='',home_address='',ip_address='',phone='',label='',account=''
           set @result=@result+1
           end
         end
   --select @@rowcount
  fetch next from cur_e into @subip
 end
close cur_e
deallocate cur_e

0
0
查看评论

Oracle使用存储过程分页

今天我要说的就是基于Oracle存储过程的一种简单的分页方式,首先就是页面前端发起对分页的请求,然后向Oracle存储过程中传入页面当前数,页面大小,查询的SQL语句,而存储过程返回来的则是数据总条数和当前页面要显示的数据集合。形式如下所示:procedure P_GetPageSize(p_pag...
  • lingyiwin
  • lingyiwin
  • 2016-04-26 17:31
  • 1659

什么时候用存储过程+分页例子

存储过程一般用于处理比较复杂的任务,基础ms这个平台,可以大大降低耗时,其编译机制也提高了数据库执行速度。 当然在系统控制方便方面,例如当系统进行调整时,这是只需要将后台存储过程进行更改,而不需要更改客户端程序。也无需重新安装客户端应用程序。 存储过程不仅仅适用于大型项目,对于中小型项目,使用存...
  • cc41798520101
  • cc41798520101
  • 2016-08-02 16:00
  • 966

分页-存储过程5种写法 sqlserver分页

分页-存储过程5种写法 sqlserver分页
  • u012726702
  • u012726702
  • 2016-07-03 12:40
  • 531

java调用存储过程实现分页功能

创建程序包: SQL> create or replace package mypack 2 as 3 type emp_cursor is ref cursor; 4 end mypack; 5 / 程序包已创建。 创建存储过程:
  • xingzhemoluo
  • xingzhemoluo
  • 2014-09-17 20:10
  • 982

使用存储过程进行分页查询

使用存储过程进行分页查询
  • hjnth
  • hjnth
  • 2016-04-09 13:36
  • 1818

完整的分页存储过程以及c#调用方法

高效分页 存储过程
  • kongxiangli
  • kongxiangli
  • 2010-06-17 11:26
  • 4753

Mysql分页查询通用存储过程

前段时间没有给出SQLServer转到Mysql的通用存储过程,本着共享的精神,为大家奉献这段Mysql分页查询通用存储过程,假设所用数据库为guestbook: use guestbook;delimiter $$drop procedure if...
  • fcrpg2005
  • fcrpg2005
  • 2007-03-07 00:33
  • 10582

简单分页存储过程原理

<br />昨天看了几个通用的分页存储过程,代码又长有复杂,以后要用怎么办呢?鄙人对其进行总结发现其中的原理,以后就可以自己写。不用去找去拷贝。<br />随笔中总结的不好或者需要改正,欢迎高手或浏览者提出意见和建议,在此谢谢!<br />几乎所有的分页存储过程的...
  • zyp_tfy
  • zyp_tfy
  • 2010-12-29 09:21
  • 1102

sql server 带输入输出参数的分页存储过程(效率最高)

create procedure proc_page_withtopmax ( @pageIndex int,--页索引 @pageSize int,--每页显示数 @pageCount int output,--总页数,输出参数 @totalCount int output--总条数 ...
  • kingmax54212008
  • kingmax54212008
  • 2015-07-14 11:34
  • 5747

MyBatis,MySql存储过程分页查询

前言一般我们使用MyBatis时进行分页主要通过使用PageHelper这个插件。但某些时候,在某些公司可能会遇到跨库查询并分页显示的场景,这时就无法在使用PageHelper了。如果待查询的MySql不同库在一台机器上那么可以通过 数据库名.表明 的形式来进行跨库查询,这是可以通过存储过程来完成查...
  • Revivedsun
  • Revivedsun
  • 2017-04-23 19:49
  • 1173
    个人资料
    • 访问:15999次
    • 积分:292
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档