mysql:7867
From: seiji takegata <seiji takegata <takegata@xxxxxxxxxx>>
Date: Tue, 3 Jun 2003 02:39:31 +0900
Subject: [mysql 07867] connector/J3.0 で ResultSet を update しできない?
ヴェルテックの竹形といいます。 MySql+connector/JでResultSetをupdateしようとしています。OSはW2Kです。 mysql-connector-java-2.0.14-bin.jarでは問題ないのですが、 mysql-connector-java-3.0.8-stable-bin.jarに入れ替えると、updateRow()を呼んだ ところで例外が発生し、次のようなメッセージが表示ます。 refreshRow() called on row that has been deleted or had primary key changed. 該当の行は削除もしていませんし、プライマリキーも変更していません(のつもりです)。 何がいけないのでしょう? ソースを貼っておきます。 import java.sql.*; class RsUpdateTest{ public static void main(String[] args){ try { Class.forName("com.mysql.jdbc.Driver"); String connStr="jdbc:mysql://localhost/jamyto" + "?user=Mulder&password=TrustNo1" + "&useUnicode=true&characterEncoding=Shift_JIS"; Connection conn =DriverManager.getConnection(connStr); Statement stmt = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sqlcommand="SELECT * FROM person WHERE id=5"; ResultSet rs= stmt.executeQuery(sqlcommand); rs.next(); rs.updateString("name","野口五郎"); rs.updateRow(); System.out.println(rs.getInt("id")+":"+rs.getString("name")); rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { System.out.println("データベースのエラーです。"); System.out.println("エラーメッセージ:"+ e.getMessage()); } catch (Exception e) { e.printStackTrace (); } } } -- seiji takegata takegata@xxxxxxxxxx