ResultSet指针不能滚动的问题..急急急,解决问题叫爷爷都成.

biggie 2002-11-12 03:12:12
ResultSet指针不能滚动...
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY
据朋友说他的也出现了问题,但是网上有人说好使有人说不行!
我的也不好用是不是环境配置问题?不过应该没什么问题才对,我现在运行的环境是
jdk1.4 + resin + mysql
请高手指点小弟.. 十万火急!!!!!!!!!!!!!!!!!!!!!!
请高手指点小弟.. 十万火急!!!!!!!!!!!!!!!!!!!!!!
请高手指点小弟.. 十万火急!!!!!!!!!!!!!!!!!!!!!!
请高手指点小弟.. 十万火急!!!!!!!!!!!!!!!!!!!!!!
请高手指点小弟.. 十万火急!!!!!!!!!!!!!!!!!!!!!!
请高手指点小弟.. 十万火急!!!!!!!!!!!!!!!!!!!!!!
...全文
125 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyeagle0000 2010-06-09
  • 打赏
  • 举报
回复
ResultSet.RTYPE_FORWORD_ONLY:这是缺省值,只可向前滚动;
ResultSet.TYPE_SCROLL_INSENSITIVE:双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。
ResultSet.TYPE_SCROLL_SENSITIVE:双向滚动,并及时跟踪数据库的更新,以便更改ResultSet中的数据。

ResultSet.CONCUR_READ_ONLY:这是缺省值,指定不可以更新 ResultSet
ResultSet.CONCUR_UPDATABLE:指定可以更新 ResultSet

我也遇到了类似问题,尚在解决中:
PreparedStatement ps = c.prepareStatement(str_procedureName, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
这句话已经设置了结果集可以双向滚动了吧。。。
但是执行rs = ps.executeQuery();后,rs.getType()为1003,即“ResultSet.RTYPE_FORWORD_ONLY”,不明原因,请高手指教。
我用的驱动是:“sun.jdbc.odbc.JdbcOdbcDriver”驱动,和这个有关吗?
heartlessbug 2002-11-13
  • 打赏
  • 举报
回复
楼上的兄弟们说那么多压根就没有用

mysql的驱动不支持滚动
如果你非要滚动,只有用最新的oracle

或则将result里的数据放到数组里!:)
cutty21 2002-11-13
  • 打赏
  • 举报
回复
Statement stm = con.createStatement(ResultSet.SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY)
这样在sqlsever下面,没有问题。将ResultSet.SCROLL_INSENSITIVE, 改为
ResultSet.SCROLL_SENSITIVE,
sm8848 2002-11-13
  • 打赏
  • 举报
回复
应该与jdk版本没有关系
lgcfm 2002-11-13
  • 打赏
  • 举报
回复
首先是你的驱动的版本有问题,要不你下载一个新的版本
我想肯定是你的jdk1.4的问题,不相信你换成1.3的,保证能行
hotenM 2002-11-12
  • 打赏
  • 举报
回复
跟驱动有关系
esinosoft 2002-11-12
  • 打赏
  • 举报
回复
不知道这样行不行啊
private Connection conn = DriverManager.getConnection(dbLink, dbFund, dbPass);
stmt = conn.createStatement();
string strup="sql语句"
rst=stmt.executeQuery(strup)
rst.next();
string a=rst.getString(1)
..............
希望对你有帮助
我现在也在用mysql数据库,但是没有出现任何关于这方面的问题,这是我做法,希望你喜欢.
biggie 2002-11-12
  • 打赏
  • 举报
回复
可以访问数据库,我都做完一个薄言本了.指针不能移动,查询一遍我就交所有信息存为vector,存为数组,然后调用,不过很麻烦.我要解决这个问题.

也许是驱动的问题,不过不知道你知不知道如何设置?解决这个问题.
Feng_Feng 2002-11-12
  • 打赏
  • 举报
回复
直接用java程序访问数据库试试,如果可以,说明是环境问题
可能包含此驱动的包没有放在classpath下
如果不行,应该是驱动有问题。
biggie 2002-11-12
  • 打赏
  • 举报
回复
这些我都知道..Statement stm = con.createStatement(ResultSet.SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)
这个我也定义了.
但是用first();还是用last();
都不行.驱动程序用的com.caucho.jdbc.mysql.Driver

按理来说加入ResultSet.SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY

应该可以滚动,可是事实上不可以!我不清楚是我自身的原因还是什么原因?我希望大家可以试一试,帮帮我解决这个问题
adijava 2002-11-12
  • 打赏
  • 举报
回复
在JDK1.1中,ResultSet类中只定义了next()方法支持数据指针的下移.但在Java 2中,ResultSet类增加了如下方法支持数据指针的移动,包括:
ResultSet.first():将数据指针移到结果集的第一行
ResultSet.last(): 将数据指针移到结果集的最后一行
ResultSet.previous(): 将数据指针上移一行
利而不害 2002-11-12
  • 打赏
  • 举报
回复
Statement stm = con.createStatement(ResultSet.SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)
怎么不好使了?
superbamboo 2002-11-12
  • 打赏
  • 举报
回复
resultset 本来就是一个只能向前滚的东东,

滚过去了的地方决不会再滚回来。


peihexian 2002-11-12
  • 打赏
  • 举报
回复
这个
com.caucho.jdbc.mysql.Driver
用这个
peihexian 2002-11-12
  • 打赏
  • 举报
回复
你用的什么驱动啊?resin本身有mysql的jdbc驱动,你用的是不是这个啊?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧