只进结果集不支持请求的操作。

来源:互联网 发布:网络订票时间限制 编辑:程序博客网 时间:2024/05/10 10:02

问题:

在分页时,常因为是新手会出现如下的问题:

 

com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作。

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerResultSet.throwNotScrollable(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetIsScrollable(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerResultSet.absolute(Unknown Source)

at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.absolute(DelegatingResultSet.java:335)

at com.rsglxt.db.ManageDB.getImpList(ManageDB.java:78)

at com.rsglxt.manage.ImpleeyListAction.getImpList(ImpleeyListAction.java:199)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:517)

at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:931)

at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:53)

at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:121)

at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.getProperty(OgnlValueStack.java:58)

at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)

at com.opensymphony.xwork2.util.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:101)

at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)

at ognl.ASTProperty.getValueBody(ASTProperty.java:92)

at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)

at ognl.SimpleNode.getValue(SimpleNode.java:210)

at ognl.Ognl.getValue(Ognl.java:333)

at ognl.Ognl.getValue(Ognl.java:310)

…………

…………

…………

…………

 


解决方法:

 

因为在创建stmt容器的时候,没有加上如下红色的参数:

 

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

 

其意为创建一个滚动的结果集,相信大家看参数的英文意思,也能明白啦,scroll=滚动

 

如果没有加上这个参数,那么这个结果集就只能迭代一次,就不能rs.XXXX调用ResultSet下的某些方法了

 

这也是程序中抛出的异常:说结果集只进的原因了!!!


转自http://zithan.iteye.com/blog/734441

0 0
原创粉丝点击