在做分页程序遇到一个问题
rs = stmt.executeQuery(nowPageSql);
ResultSetMetaData rsmd = rs.getMetaData();
int nowColumn = rsmd.getColumnCount();
int r = 1;
while (rs.next())
{
if (r == 1)
rs.absolute(startNum+1);
Element dataList = doc.createElement("dataList");
dataInfo.appendChild(dataList);
for (int i=0;i<nowColumn;i++)
{
String rltstr = rs.getString(i+1);
if (rltstr!=null){
rltstr = rltstr.trim();
}
dataList.setAttribute(rsmd.getColumnLabel(i+1).toLowerCase(),rltstr);
}
if (r++ >= pageNum)
break;
}
其中的rs.absolute(startNum+1);
如果把stmt = conn.createStatement();则报
java.sql.SQLException: JZ0BT: 类型 TYPE_FORWARD_ONLY 的 ResultSets 不支持 absolute(int) 方法。
at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:492)
at com.sybase.jdbc2.jdbc.SybResultSet.checkForScrollability(SybResultSet.java:1643)
at com.sybase.jdbc2.jdbc.SybResultSet.absolute(SybResultSet.java:658)
解决方法,应该初始化
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
本文介绍了一种在使用Sybase数据库进行分页查询时遇到的问题及解决方案。问题表现为使用特定方法初始化Statement对象时,调用ResultSet的absolute方法会抛出异常。通过调整Statement的创建方式,设置其支持滚动特性,成功解决了该问题。
1284

被折叠的 条评论
为什么被折叠?



