sqlserver数据库分页问题,急、、、
各位兄弟姐妹,这个程序再oracle、mysql上执行没任何问题
其中:$where为条件,currentPage为当前页码,totalRecords为记录总数,numPerPage为页记录数
在oracle、mysql上可以返回正确的记录总数,但在sqlserver上返回记录总数为-3,是何原因啊?
应该如何去改正呢?谢谢各位了!
public static List query(String $where, Integer currentPage,
AIInteger totalRecords, int numPerPage) {
List templist = new ArrayList();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = MyDBHelper.getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
rs.last(); //1>处
totalRecords.setValue(rs.getRow()); //2>处
System.out.println("current page:= " + currentPage.toString() +
"; total:= " +
totalRecords + "; numPerPage:= " + numPerPage);
if (currentPage.intValue() > 1)
rs.absolute( (currentPage.intValue() - 1) * numPerPage);
else
rs.beforeFirst();
rs.setFetchSize(numPerPage);
while (rs.next()) {
、
、
、
tempList.add(temp);
numPerPage--;
}
rs.close();
stmt.close();
}
catch (SQLException ex) {
while (ex != null) {
System.out.println("Message :" + ex.getMessage());
}
}
catch (java.lang.Exception ex) {
ex.printStackTrace();
}
//释放一个连接到连接池
finally {
try {
conn.close();
}
catch (SQLException sqle) {
}
}
return tempList;
} 问题点数:100、回复次数:5Top
1 楼treeroot(旗鲁特)回复于 2005-11-03 11:29:00 得分 10
sqlserver uses top clause!
mysql uses limit clause!
oracle uses row_num function
using cursor is unefficientTop
2 楼believefym(feng)回复于 2005-11-03 11:30:43 得分 20
有可能是rs.last();的问题
你试试next循环计数Top
3 楼zhaosy(盛)回复于 2005-11-03 11:31:14 得分 0
兄弟,能说的具体些吗?怎么改正呢?
Top
4 楼keiy()回复于 2005-11-03 11:36:18 得分 50
csdn有多个关于rs.first(), rs.last()问题的
它有时总不能得到期望的结果(与数据库有关,与数据库返回类型表关,如表或光标)
这个好像都没有一个合理的解释或解决方案
要解决你的问题,可用
select count(*) recc form 表 where 条件
来先预查记录数Top
5 楼believefym(feng)回复于 2005-11-03 11:42:29 得分 20
获得resultset之后
int counter = 0;
while(resultset.next())
counter++;
来获得总记录数,或者也可以参考楼上的方法
last、first等方法经常会有问题Top
相关问题
- ASP 分页问题,数据库SQL Server,急急急!
- 关于数据库分页
- 附加SQLServer数据库!(急!!!)
- 分页显示数据库的问题
- 求助:大数据量SQLSERVER 数据库分页显示的高效查询语句写法
- 请哪位高手帮忙,发一个有数据库生成分页的ASP程序!(急啊!)
- 急救!!!!我要用php通过odbc访问oracle9数据库,请问我怎么分页阿?
- 急,大家帮忙看看下面有什么错误(分页中读取数据库中的记录问题)
- 数据库!!!!!急……
- 急!互联网中sqlserver数据库如何下载到本地数据库中?
100分求连接oracle数据库的自写分页代码或算法,感激不尽!
如题.
问题点数:100、回复次数:8Top
1 楼smallMage(小马哥)回复于 2005-11-05 11:50:49 得分 25
搜索一下。太多了。CREATE PROCEDURE pagination2
(
@SQL nVARCHAR(4000), --不带排序语句的SQL语句
@Page int, --页码
@RecsPerPage int, --每页