Result set type is TYPE_FORWARD_ONLY错误...

jgjgjg23 2007-04-24 09:25:37
不知道为什么会出这个错.
package library;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
class Data2{
Connection con; //声明对象
Statement s;
public boolean getData()//加载驱动方法,无需参数,必须在声明Data对象之后
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动语句
}catch(ClassNotFoundException cnfe)
{
JOptionPane.showMessageDialog(null,"加载驱动出错"+cnfe.getMessage(),"出错",JOptionPane.ERROR_MESSAGE);
}
try{
con=DriverManager.getConnection("jdbc:odbc:test");//创建连接
s=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); //创建执行对象
return true; //如果程序执行到这个地方则返回true表示执行成功
}catch(SQLException e1)
{
JOptionPane.showMessageDialog(null,"创建连接或执行对象时出错"+e1.getMessage(),"出错",JOptionPane.ERROR_MESSAGE);
}
return false; //执行到这的时候说明出错了
}
public ResultSet select(String sqlstr)
{
ResultSet rs=null;
try{
rs = s.executeQuery(sqlstr); //执行查询
return rs; //运行到这里时表示已经成功执行查询
}catch(SQLException e)
{
JOptionPane.showMessageDialog(null,"执行查询语句出错!"+e.getMessage(),"出错",JOptionPane.ERROR_MESSAGE);
}
return rs; //运行到这里时表示已经出错
}
}

public class Untitled1 {

public static void main(String [] args)
{
try{
Data2 aa = new Data2();
aa.getData();
ResultSet rs = aa.select("use library select * from BookMessage");
rs.absolute(1);
System.out.println(rs.getString(1));
}catch(SQLException se)
{
System.out.println(se.getMessage());
}
}
}
...全文
895 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jgjgjg23 2007-04-30
  • 打赏
  • 举报
回复
感谢关住
已经解决.是SQL语句不能加USE .
lsj19830812 2007-04-28
  • 打赏
  • 举报
回复
rs.absolute(1);
System.out.println(rs.getString(1));

游标已经到第一个了,下面只能写System.out.println(rs.getString(2));
因为定义的游标只能向前滚动

TYPE_SCROLL_INSENSITIVE代表可以向前也可以向后
brooksychen 2007-04-24
  • 打赏
  • 举报
回复
要学会代码出现错误以后,根据出错信息进行调试。
jgjgjg23 2007-04-24
  • 打赏
  • 举报
回复
public void jButton1_actionPerformed(ActionEvent e) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException eeee){
System.out.println(eeee.getMessage());
}
try{
Connection con=DriverManager.getConnection("jdbc:odbc:test");
Statement s=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=s.executeQuery("select * from bookmessage");
rs.absolute(2);
System.out.println(rs.getString(1));
rs.absolute(2);
System.out.println(rs.getString(2));
}catch(SQLException ee)
{
System.out.println(ee.getMessage());

}
这个不知道为什么不报错..
jgjgjg23 2007-04-24
  • 打赏
  • 举报
回复
那要如何配置呢?
brooksychen 2007-04-24
  • 打赏
  • 举报
回复
Result set type is TYPE_FORWARD_ONLY

这说明你用的数据库的记录集只支持向前滚动,如果你确实需要记录集的游标向后滚动的话,那就改改数据库的配置吧。具体如何改,可以查看数据库的帮助。

62,614

社区成员

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

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