在java中更新firebird数据库时报错如下:
org.firebirdsql.jdbc.FBResultSetNotUpdatableException: Underlying result set does not contain all columns that form 'best row identifier'.
at org.firebirdsql.jdbc.FBRowUpdater.getParameterMask(FBRowUpdater.java:252)
at org.firebirdsql.jdbc.FBRowUpdater.executeStatement(FBRowUpdater.java:548)
at org.firebirdsql.jdbc.FBRowUpdater.insertRow(FBRowUpdater.java:472)
at org.firebirdsql.jdbc.AbstractResultSet.insertRow(AbstractResultSet.java:2479)
下边是程序的部分更新数据库的代码: strSql= "select * from GroupUser where GroupAttr is null";
rs = wdb.query(strQuery); rs.moveToInsertRow();//寻找可插入位置,游标指向该位置。 rs.updateString("GroupAttr",strGroupAttr);
rs.updateString("PassWord",strPassWord);
rs.updateString("CheckWord",strPassCheck);
rs.updateDate("RegisterDate",dateNow);
rs.updateDate("LastAccessDate",dateNow); rs.insertRow(); 就是这个rs.insertRow();时报的错,请高手帮忙!
另外,我的Statement设置的是可更新的,如下:
statement= connection.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
org.firebirdsql.jdbc.FBResultSetNotUpdatableException: Underlying result set does not contain all columns that form 'best row identifier'.
at org.firebirdsql.jdbc.FBRowUpdater.getParameterMask(FBRowUpdater.java:252)
at org.firebirdsql.jdbc.FBRowUpdater.executeStatement(FBRowUpdater.java:548)
at org.firebirdsql.jdbc.FBRowUpdater.insertRow(FBRowUpdater.java:472)
at org.firebirdsql.jdbc.AbstractResultSet.insertRow(AbstractResultSet.java:2479)
下边是程序的部分更新数据库的代码: strSql= "select * from GroupUser where GroupAttr is null";
rs = wdb.query(strQuery); rs.moveToInsertRow();//寻找可插入位置,游标指向该位置。 rs.updateString("GroupAttr",strGroupAttr);
rs.updateString("PassWord",strPassWord);
rs.updateString("CheckWord",strPassCheck);
rs.updateDate("RegisterDate",dateNow);
rs.updateDate("LastAccessDate",dateNow); rs.insertRow(); 就是这个rs.insertRow();时报的错,请高手帮忙!
另外,我的Statement设置的是可更新的,如下:
statement= connection.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
jaybird-2.1.6.jar
jaybird-full-2.1.6.jar
jaybird-pool-2.1.6.jar
http://blog.csdn.net/thirtysix1207/archive/2007/09/25/1799800.aspx
这个就是那个类的源码:
http://fisheye1.atlassian.com/browse/firebird/client-java/src/main/org/firebirdsql/jdbc/FBRowUpdater.java?r=1.18
被抛出的就是252这个Exception
有时也会抛出260的Exception
看起来好象是没有其中的哪个列导致的,不过确实都有啊
高手帮忙看下原因
我也怀疑是驱动了,但是驱动包和数据库都是2.0版本的啊,而且是官网下的
请问谁还有好用的firebird2.0的驱动包啊?分享下吧