Index: AbstractJdbc2ResultSet.java =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java,v retrieving revision 1.10.2.1 diff -C10 -r1.10.2.1 AbstractJdbc2ResultSet.java *** AbstractJdbc2ResultSet.java 2003/02/24 16:38:25 1.10.2.1 --- AbstractJdbc2ResultSet.java 2003/02/28 17:26:42 *************** *** 506,525 **** --- 506,531 ---- throws SQLException { if (doingUpdates) { doingUpdates = false; clearRowBuffer(); } } + protected PreparedStatement mkStatement (String sql) + throws SQLException + { + return (PreparedStatement) ((java.sql.Connection) connection). + prepareStatement(sql); + } public synchronized void deleteRow() throws SQLException { if ( !isUpdateable() ) { throw new PSQLException( "postgresql.updateable.notupdateable" ); } if (onInsertRow) *************** *** 550,570 **** for ( int i = 0; i < numKeys; i++ ) { deleteSQL.append( ((PrimaryKey) primaryKeys.get(i)).name ).append( " = ? " ); if ( i < numKeys - 1 ) { deleteSQL.append( " and " ); } } ! deleteStatement = ((java.sql.Connection) connection).prepareStatement(deleteSQL.toString()); } deleteStatement.clearParameters(); for ( int i = 0; i < numKeys; i++ ) { deleteStatement.setObject(i + 1, ((PrimaryKey) primaryKeys.get(i)).getValue()); } deleteStatement.executeUpdate(); --- 556,576 ---- for ( int i = 0; i < numKeys; i++ ) { deleteSQL.append( ((PrimaryKey) primaryKeys.get(i)).name ).append( " = ? " ); if ( i < numKeys - 1 ) { deleteSQL.append( " and " ); } } ! deleteStatement = mkStatement (deleteSQL.toString ()); } deleteStatement.clearParameters(); for ( int i = 0; i < numKeys; i++ ) { deleteStatement.setObject(i + 1, ((PrimaryKey) primaryKeys.get(i)).getValue()); } deleteStatement.executeUpdate(); *************** *** 609,629 **** paramSQL.append("?,"); } else { paramSQL.append("?)"); } } insertSQL.append(paramSQL.toString()); ! insertStatement = ((java.sql.Connection) connection).prepareStatement(insertSQL.toString()); Enumeration keys = updateValues.keys(); for ( int i = 1; keys.hasMoreElements(); i++) { String key = (String) keys.nextElement(); Object o = updateValues.get(key); if (o instanceof NullObject) insertStatement.setNull(i,java.sql.Types.NULL); else --- 615,635 ---- paramSQL.append("?,"); } else { paramSQL.append("?)"); } } insertSQL.append(paramSQL.toString()); ! insertStatement = mkStatement (insertSQL.toString ()); Enumeration keys = updateValues.keys(); for ( int i = 1; keys.hasMoreElements(); i++) { String key = (String) keys.nextElement(); Object o = updateValues.get(key); if (o instanceof NullObject) insertStatement.setNull(i,java.sql.Types.NULL); else *************** *** 945,966 **** PrimaryKey primaryKey = ((PrimaryKey) primaryKeys.get(i)); selectSQL.append(primaryKey.name).append("= ?"); if ( i < numKeys - 1 ) { selectSQL.append(" and "); } } if ( Driver.logDebug ) Driver.debug("selecting " + selectSQL.toString()); ! selectStatement = ((java.sql.Connection) connection).prepareStatement(selectSQL.toString()); ! for ( int j = 0, i = 1; j < numKeys; j++, i++) { selectStatement.setObject( i, ((PrimaryKey) primaryKeys.get(j)).getValue() ); } AbstractJdbc2ResultSet rs = (AbstractJdbc2ResultSet) selectStatement.executeQuery(); if ( rs.first() ) { --- 951,971 ---- PrimaryKey primaryKey = ((PrimaryKey) primaryKeys.get(i)); selectSQL.append(primaryKey.name).append("= ?"); if ( i < numKeys - 1 ) { selectSQL.append(" and "); } } if ( Driver.logDebug ) Driver.debug("selecting " + selectSQL.toString()); ! selectStatement = mkStatement (selectSQL.toString ()); for ( int j = 0, i = 1; j < numKeys; j++, i++) { selectStatement.setObject( i, ((PrimaryKey) primaryKeys.get(j)).getValue() ); } AbstractJdbc2ResultSet rs = (AbstractJdbc2ResultSet) selectStatement.executeQuery(); if ( rs.first() ) { *************** *** 1028,1048 **** PrimaryKey primaryKey = ((PrimaryKey) primaryKeys.get(i)); updateSQL.append(primaryKey.name).append("= ?"); if ( i < numKeys - 1 ) { updateSQL.append(" and "); } } if ( Driver.logDebug ) Driver.debug("updating " + updateSQL.toString()); ! updateStatement = ((java.sql.Connection) connection).prepareStatement(updateSQL.toString()); int i = 0; Iterator iterator = updateValues.values().iterator(); for (; iterator.hasNext(); i++) { Object o = iterator.next(); if (o instanceof NullObject) updateStatement.setNull(i+1,java.sql.Types.NULL); else updateStatement.setObject( i + 1, o ); --- 1033,1053 ---- PrimaryKey primaryKey = ((PrimaryKey) primaryKeys.get(i)); updateSQL.append(primaryKey.name).append("= ?"); if ( i < numKeys - 1 ) { updateSQL.append(" and "); } } if ( Driver.logDebug ) Driver.debug("updating " + updateSQL.toString()); ! updateStatement = mkStatement (updateSQL.toString ()); int i = 0; Iterator iterator = updateValues.values().iterator(); for (; iterator.hasNext(); i++) { Object o = iterator.next(); if (o instanceof NullObject) updateStatement.setNull(i+1,java.sql.Types.NULL); else updateStatement.setObject( i + 1, o );