急,设置了conn.createStatement后查询出错,100分求解

eye_heart31 2004-12-24 05:15:26
方式1:Statement stmt = conn.createStatement();
方式2:Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
使用方式1时,select hjx,bkkl,count(bkkl) as c from ks group by hjx,bkkl order by hjx,count(bkkl) desc返回结果正常
为了实现分页,改用方式2,查询结果就出现数据不完整
求解决的方法?谢谢!
...全文
187 点赞 收藏 15
写回复
15 条回复
afanyun 2004年12月25日
可能也跟连接的数据库有关,sqlserver有些功能是不支持的.
回复 点赞
afanyun 2004年12月25日
PreparedStatement stmt=conn.prepareStatement(sqlstr,ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);

建立PreparedStatement时这样,然后
rs.first();
while(!(rs.isAfterLast())
{
//操作
}
这样试试吧,就不会出错.
回复 点赞
eye_heart31 2004年12月24日
用huazhebia的方法出错
回复 点赞
afanyun 2004年12月24日
rs.first();
while(!(rs.isAfterLast())
{
//操作
}
这样试试吧
回复 点赞
eye_heart31 2004年12月24日
while(rs.next())
{%> <tr align="center">
<th height="32" scope="row" class="a13"><%=rs.getString("hjx")%></th>
<td class="a13"><%=rs.getString("bkkl")%></td>
<td class="a13"><%=rs.getString("c")%></td>
</tr>
<%}%>
用conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
后结果就少了3条记录
用了rs.beforeFirst();修改后还是一样
回复 点赞
steveyue 2004年12月24日
你是怎么区得rs的?帖出代码给大伙看看啊
回复 点赞
不徻写代码 2004年12月24日
UP
回复 点赞
menghuanlang 2004年12月24日
你在使用conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);的时候,在返回的数据集rs后,在取rs里的数据之前调用一下rs.beforeFirst();然后你在rs.next去取数据看看。。
应该不会出现你说的这种情况的。除非你的SQL语句不健壮
回复 点赞
tom2005 2004年12月24日
不可能吧
回复 点赞
eye_heart31 2004年12月24日
使用SELECT,正常情况是返回7条记录,加了ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE,
只返回了4条记录,有3条记录丢失
回复 点赞
tom2005 2004年12月24日
什么数据不完整
回复 点赞
viano 2004年12月24日

sorry
!
回复 点赞
华生豆 2004年12月24日
应该是完整的吧,是不是你rs移动时有的数据没有读到呢~~~
回复 点赞
menghuanlang 2004年12月24日
rs = stmt.executeQuery();
回复 点赞
menghuanlang 2004年12月24日
PreparedStatement stmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY)
用这个语句再试试
回复 点赞
发动态
发帖子
Web 开发
创建于2007-09-28

5.2w+

社区成员

34.1w+

社区内容

Java Web 开发
社区公告
暂无公告