| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 470 人关注过本帖
标题:还是ASP板块的人都,以前使用ASP开发时经常来,现在到JSP、JAVA板块,凄凉啊 ...
只看楼主 加入收藏
ming206
Rank: 2
来 自:重庆
等 级:等待验证会员
威 望:3
帖 子:545
专家分:7
注 册:2005-8-2
结帖率:100%
收藏
 问题点数:0 回复次数:1 
还是ASP板块的人都,以前使用ASP开发时经常来,现在到JSP、JAVA板块,凄凉啊。到底
使用存储过程分页问题,其实我不该来这里发贴,我在JSP、JAVA板块里发过,没有一个人回答,以前也经常在ASP板块上发过蛮多的帖,大家还是很热情的,不明白,为什么JSP、JAVA,数据库等板块这么冷淡呢?我们都是在学习阶段。有什么问题大家互相讨论,可能真正的高手不愿意帮助吧。。。。。。我还是把我的这个问题在这里帖一下吧。
这个问题如何解决呢?

使用存储过程分页,我想取得返回值,同时使用循环取得N条记录的信息,该怎么做呢
我的过程为:
/*实现分页的存储过程*/
CREATE PROCEDURE dbo.getUserList
@iPageCount int OUTPUT, /*总页数,需要返回*/
@iPage int, /*-当前页号*/
@iPageSize int /*-每页记录数*/
as
set nocount on
begin
/*创建临时表 */
create table #User_New_Table
(
UserID int Not Null,
UserName varchar(20),
PassWords Varchar(16)
)
/*向临时表中写入数据*/
insert into #User_New_Table
select * from dbo.[UserInfo_Table]
order by UserID

/*取得记录总数 */
declare @iRecordCount int
set @iRecordCount = @@rowcount

/*确定总页数*/
IF @iRecordCount%@iPageSize=0
SET @iPageCount=CEILING(@iRecordCount/@iPageSize)
ELSE
SET @iPageCount=CEILING(@iRecordCount/@iPageSize)+1

/*若请求的页号大于总页数,则显示最后一页*/
IF @iPage > @iPageCount
SELECT @iPage = @iPageCount

/*确定当前页的始末记录*/
DECLARE @iStart int /*start record*/
DECLARE @iEnd int /*end record*/
SELECT @iStart = (@iPage - 1) * @iPageSize
SELECT @iEnd = @iStart + @iPageSize + 1

/*取当前页记录*/
select * from #User_New_Table where UserID>@iStart and UserID<@iEnd

/*删除临时表*/
DROP TABLE #User_New_Table

/*返回记录总数*/
RETURN @iRecordCount
end
GO
我的JAVA程序为:
/*包名MyDB
*/
package MyDB;

import java.sql.*;
/*类名:ExeProcedure
*专门处理SQL的存储过程
*/
public class ExeProcedure extends DBSource{
/*构造方法
*利用构造方法建立与数据库的连接
*/
public ExeProcedure(){
super();
}
/*Procedure_getUserList
*参数:iPage表示当前页号?PageSize为每页显示的条数
*/
public void Procedure_getUserList(int iPage,int iPageSize){
try{
connect=DriverManager.getConnection(sConnstr);
cs=connect.prepareCall("{call getUserList(?,?,?)}");
cs.registerOutParameter(1,Types.INTEGER);
cs.setInt(2,iPage); //当前页号
cs.setInt(3,iPageSize);//每页显示的总记录

if(cs.getInt(1)>0){
/*想在此使用循环列出当前页中每条记录的信息
*该怎么读存储过程中的
*select * from #User_New_Table where UserID>@iStart and UserID<@iEnd
呢?如果有更好的方法可以告诉我吗?急切期待!
*/

System.out.println("总页数为:"+cs.getInt(1));
}
else{
System.out.println("没有任何记录");
}
}catch(SQLException SQLe){
System.err.println("发现有错误!\n"+SQLe.getMessage());
}
}

public static void main(String[] args){
ExeProcedure E=new ExeProcedure();
E.Procedure_getUserList(0,20);
}

搜索更多相关主题的帖子: JAVA JSP ASP 开发 
2006-03-12 20:57
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
目前对于JSP了解得还不是特多,无法帮助楼主。
2006-03-12 21:32
快速回复:还是ASP板块的人都,以前使用ASP开发时经常来,现在到JSP、JAVA板块, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011569 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved