[前][次][番号順一覧][スレッド一覧]

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

[前][次][番号順一覧][スレッド一覧]