但是在JTDS官方网站上发现JTDS驱动是支持updatable的。
String CLASSFORNAME = "net.sourceforge.jtds.jdbc.Driver";
String SERVANDDB ="jdbc:jtds:sqlserver://localhost/cstrip";
Statement stmt = conn.createStatement(
                    ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_UPDATABLE);我的JAVA环境是JDK1.5、JBUILDER2005。
程序出错信息:java.sql.SQLException: ResultSet is read only.
at net.sourceforge.jtds.jdbc.JtdsResultSet.checkUpdateable(JtdsResultSet.java:327)
at net.sourceforge.jtds.jdbc.JtdsResultSet.setColValue(JtdsResultSet.java:228)
at net.sourceforge.jtds.jdbc.MSCursorResultSet.setColValue(MSCursorResultSet.java:171)
at net.sourceforge.jtds.jdbc.JtdsResultSet.updateBytes(JtdsResultSet.java:761)
at cstrip.test.ImageOperation.setImage(ImageOperation.java:96)
at cstrip.test.ImageOperation.storeImage(ImageOperation.java:69)
at cstrip.test.ImageOperation.main(ImageOperation.java:151)我的程序是插入图片到SQL数据库,难道是不支持IMAGE类型吗?换微软JDBC驱动运行没有问题。

解决方案 »

  1.   

    ResultSet is read only。
    说的很明白ResultSet是只读的,可以把你对它的操作贴出来吗?
      

  2.   

    你的查询语句中是不是有了*;
    比如"select * from"
    不能用*,另外createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    如果用了*会使结果集自动变为只读。
      

  3.   

    OK,这个问题已经解决,原来必须设成ResultSet.TYPE_SCROLL_SENSITIVE属性,JTDS驱动才可以支持更新。但MS JDBC驱动不存在这个问题。为什么呢?经常听人说微软的JDBC驱动性能很差,但这次JTDS驱动又令人感到困惑。