Hi,
It seems to me that something has gone with transactions.
Every commit seems to turn autocommit to true.
If that is not enough then listen to this.
Every insert and update commit a transaction and set autocommit to true.
Only select works as expected.
Could this be related to change in 165?
"When enabling autocommit, the transaction is now committed (as required
by the JDBC API)."
Attached is a test case.
I am using 166 by the way.
- Rami
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.
import java.sql.*;
Class.forName("org.h2.Driver");
Connection conn =
DriverManager.getConnection("jdbc:h2:tcp://localhost/exodus;user=tv7;password=mannaIhme");
Statement stmt = conn.createStatement();
conn.setAutoCommit(false);
System.out.println("Before 1: conn.getAutoCommit = " + conn.getAutoCommit());
stmt.executeUpdate("DROP SCHEMA IF EXISTS TEST");
System.out.println("After 1: conn.getAutoCommit = " + conn.getAutoCommit());
conn.setAutoCommit(false);
System.out.println("Before 2: conn.getAutoCommit = " + conn.getAutoCommit());
stmt.executeUpdate("CREATE SCHEMA TEST");
System.out.println("After 2: conn.getAutoCommit = " + conn.getAutoCommit());
conn.setAutoCommit(false);
System.out.println("Before 3: conn.getAutoCommit = " + conn.getAutoCommit());
stmt.executeUpdate("SET SCHEMA TEST");
System.out.println("After 3: conn.getAutoCommit = " + conn.getAutoCommit());
conn.setAutoCommit(false);
System.out.println("Before 4: conn.getAutoCommit = " + conn.getAutoCommit());
stmt.executeUpdate("CREATE TABLE T1(A INT IDENTITY, B VARCHAR)");
System.out.println("After 4: conn.getAutoCommit = " + conn.getAutoCommit());
conn.setAutoCommit(false);
System.out.println("Before 5: conn.getAutoCommit = " + conn.getAutoCommit());
stmt.executeUpdate("INSERT INTO T1 VALUES(1, 'FOO')");
System.out.println("After 5: conn.getAutoCommit = " + conn.getAutoCommit());
// Statement.RETURN_GENERATED_KEYS
conn.setAutoCommit(false);
System.out.println("Before 6: conn.getAutoCommit = " + conn.getAutoCommit());
stmt.executeUpdate("UPDATE T1 SET B = 'FOO' WHERE A = 1");
System.out.println("After 6: conn.getAutoCommit = " + conn.getAutoCommit());
conn.rollback();
conn.setAutoCommit(false);
System.out.println("Before 7: conn.getAutoCommit = " + conn.getAutoCommit());
ResultSet rs = stmt.executeQuery("SELECT * FROM T1");
System.out.println("After 7: conn.getAutoCommit = " + conn.getAutoCommit());
while(rs.next()) {
System.out.println("ROW: A = " + rs.getString("A") + "; B = " +
rs.getString("B"));
}