@Override public boolean rowUpdated() throws SQLException { try { return _res.rowUpdated(); } catch (SQLException e) { handleException(e); return false; } }
public boolean rowUpdated() throws SQLException { return rs.rowUpdated(); }
private void testUpdateDeleteInsert() throws SQLException { Connection c1 = getConnection(); Connection c2 = getConnection(); Statement stat = c1.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); stat.execute("DROP TABLE IF EXISTS TEST"); stat.execute("CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255))"); int max = 8; for (int i = 0; i < max; i++) { stat.execute("INSERT INTO TEST VALUES(" + i + ", 'Hello" + i + "')"); } ResultSet rs; rs = stat.executeQuery("SELECT * FROM TEST ORDER BY ID"); rs.next(); assertEquals(0, rs.getInt(1)); rs.moveToInsertRow(); rs.updateInt(1, 100); rs.moveToCurrentRow(); assertEquals(0, rs.getInt(1)); rs = stat.executeQuery("SELECT * FROM TEST"); int j = max; while (rs.next()) { int id = rs.getInt(1); if (id % 2 == 0) { Statement s2 = c2.createStatement(); s2.execute("UPDATE TEST SET NAME = NAME || '+' WHERE ID = " + rs.getInt(1)); if (id % 4 == 0) { rs.refreshRow(); } rs.updateString(2, "Updated " + rs.getString(2)); rs.updateRow(); } else { rs.deleteRow(); } // the driver does not detect it in any case assertFalse(rs.rowUpdated()); assertFalse(rs.rowInserted()); assertFalse(rs.rowDeleted()); rs.moveToInsertRow(); rs.updateString(2, "Inserted " + j); rs.updateInt(1, j); j += 2; rs.insertRow(); // the driver does not detect it in any case assertFalse(rs.rowUpdated()); assertFalse(rs.rowInserted()); assertFalse(rs.rowDeleted()); } rs = stat.executeQuery("SELECT * FROM TEST ORDER BY ID"); while (rs.next()) { int id = rs.getInt(1); String name = rs.getString(2); assertEquals(0, id % 2); if (id >= max) { assertEquals("Inserted " + id, rs.getString(2)); } else { if (id % 4 == 0) { assertEquals("Updated Hello" + id + "+", rs.getString(2)); } else { assertEquals("Updated Hello" + id, rs.getString(2)); } } trace("id=" + id + " name=" + name); } c2.close(); c1.close(); // test scrollable result sets Connection conn = getConnection(); for (int i = 0; i < 5; i++) { testScrollable(conn, i); } conn.close(); }