日期:2014-05-20  浏览次数:20676 次

java更新firebird数据库数据时报错
在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) 


下边是程序的部分更新数据库的代码: 

Java code
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设置的是可更新的,如下: 
Java code
statement= connection.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);


------解决方案--------------------
不是很清楚。帮你顶。
------解决方案--------------------
怎么有2个?
------解决方案--------------------
帮顶
------解决方案--------------------
是不是违反了数据的同一性,
相同的数据已经被添加了?