deleterow,resultset.deleterow出现问题

resultset.deleterow出现问题 - 故障解答 - 电脑教程网

resultset.deleterow出现问题

日期:2007-08-20   荐:
resultset.deleterow出现问题我对一个没有主键的mysql数据库的表做如下处理时遇到问题:-------------------------- pst = conn.prepareStatement("select * from mytable",ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);rs = pst.executeQuery();while (rs.next()) { String name = rs.getString("name"); resultSet.deleteRow(); } } -------------------------- om.mysql.jdbc.NotUpdatable: Result Set not updatable.This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, and must select all primary keys from that table.改成pst = conn.prepareStatement("select * from mytable");也是一样的错误。有谁有什么办法吗?我目的是取到这个记录然后删除掉。非常感谢!另外在DB2同样不能成功,只不过是另外的问题。getString () 返回的是null.晕,直接写delete的SQL不行吗?应该是目前版本的JDBC不支持Updatable result set试试 relive(六道轮回,无想转生) 的方法,不然就只有这样认为了:应该是目前版本的JDBC不支持Updatable result set1。先判断一个数据库是否支持可更新结果集合DatabaseMetaData dmd = connection.getMetaData();if(dmd.supportsResultSetConcurrency( ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE)){}else{}2.如果支持的话,Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE));resultSet.deleteRow(); 换成rs.deleteRow();你的程序我用sql server 2000 完全可以执行同意楼上的,resultSet不是一个打开的记录集,哎。同意楼上的too.!研究学习非常感谢大家的回复,voxer的回答解决了我的问题。我用ResultSet.TYPE_SCROLL_SENSITIVE就解决了问题。另外前面resultSet.deleteRow();应该是rs.deleteRow(); 这是我的笔误,不是问题的关键。另外,直接写delete的SQL来删除不能满足我的需要,因为我要先得到这些数据以作它用。
标签: