2741N/A * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. Oracle designates this 0N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 0N/A * The standard implementation of the <code>FilteredRowSet</code> interface. See the interface 0N/A * defintion for full behaviour and implementation requirements. 0N/A * @see javax.sql.rowset.Predicate 0N/A * @author Jonathan Bruce, Amit Handa 0N/A * Construct a <code>FilteredRowSet</code> 0N/A * Construct a <code>FilteredRowSet</code> with a specified synchronization 0N/A * @param env a Hashtable containing a desired synchconizatation provider 0N/A * Apply the predicate for this filter 0N/A * @param p an implementation of the predicate interface 0N/A * Retrieve the filter active for this <code>FilteredRowSet</code> 0N/A * @return a <code>Predicate</code> object instance 0N/A * Over-riding <code>internalNext()</code> implementation. This method 0N/A * applies the filter on the <code>RowSet</code> each time the cursor is advanced or 0N/A * manipulated. It moves the cursor to the next row according to the set 0N/A * predicate and returns <code>true</code> if the cursor is still within the rowset or 0N/A * <code>false</code> if the cursor position is over the last row 0N/A * @return true if over the valid row in the rowset; false if over the last 0N/A // CachedRowSetImpl.next() internally calls 0N/A // this(crs).internalNext() NOTE: this holds crs object 0N/A // So when frs.next() is called, 0N/A // internally this(frs).internalNext() will be called 0N/A // which will be nothing but this method. 0N/A // because this holds frs object 0N/A // keep on doing super.internalNext() 0N/A // rather than doing it once. 0N/A // p.evaluate will help us in changing the cursor 0N/A // and checking the next value by returning true or false. 0N/A // to fit the filter 0N/A // So while() loop will have a "random combination" of 0N/A // true and false returned depending upon the records 0N/A // are in or out of filter. 0N/A // We need to traverse from present cursorPos till end, 0N/A // whether true or false and check each row for "filter" 0N/A // "till we get a "true" 0N/A * Over-riding <code>internalPrevious()</code> implementation. This method 0N/A * applies the filter on the <code>RowSet</code> each time the cursor is moved backward or 0N/A * manipulated. It moves the cursor to the previous row according to the set 0N/A * predicate and returns <code>true</code> if the cursor is still within the rowset or 0N/A * <code>false</code> if the cursor position is over the last row 0N/A * @return true if over the valid row in the rowset; false if over the last 0N/A // with previous move backwards, 0N/A // i.e. from any record towards first record 0N/A * Over-riding <code>internalFirst()</code> implementation. This method 0N/A * applies the filter on the <code>RowSet</code> each time the cursor is moved to first 0N/A * row. It moves the cursor to the first row according to the set 0N/A * predicate and returns <code>true</code> if the cursor is still within the rowset or 0N/A * <code>false</code> if the cursor position is over the last row 0N/A * @return true if over the valid row in the rowset; false if over the last 0N/A // from first till present cursor position(go forward), 0N/A // find the actual first which matches the filter. 0N/A * Over-riding <code>internalLast()</code> implementation. This method 0N/A * applies the filter on the <code>RowSet</code> each time the cursor is moved to 0N/A * last row. It moves the cursor to the last row according to the set 0N/A * predicate and returns <code>true</code> if the cursor is still within the rowset or 0N/A * <code>false</code> if the cursor position is over the last row 0N/A * @return true if over the valid row in the rowset; false if over the last 0N/A // from last to the present cursor position(go backward), 0N/A // find the actual last which matches the filter. 0N/A }
// end internalLast() 0N/A * Moves the cursor the specified number of rows from the current 0N/A * position, with a positive number moving it forward and a 0N/A * negative number moving it backward. 0N/A * If the number is positive, the cursor moves the specified number of 0N/A * rows toward the end of the rowset, starting at the current row. 0N/A * For example, the following command, in which 0N/A * <code>crs</code> is a <code>CachedRowSetImpl</code> object with 100 rows, 0N/A * moves the cursor forward four rows from the current row. If the 0N/A * current row is 50, the cursor would move to row 54. 0N/A * If the number is negative, the cursor moves back toward the beginning 0N/A * the specified number of rows, starting at the current row. 0N/A * For example, calling the method 0N/A * <code>absolute(-1)</code> positions the cursor on the last row, 0N/A * <code>absolute(-2)</code> moves it on the next-to-last row, and so on. 0N/A * If the <code>CachedRowSetImpl</code> object <code>crs</code> has five rows, 0N/A * the following command moves the cursor to the fourth-to-last row, which 0N/A * in the case of a rowset with five rows, is also the second row 0N/A * from the beginning. 0N/A * If the number specified is larger than the number of rows, the cursor 0N/A * will move to the position after the last row. If the number specified 0N/A * would move the cursor one or more rows before the first row, the cursor 0N/A * moves to the position before the first row. In both cases, this method 0N/A * throws an <code>SQLException</code>. 0N/A * Note: Calling <code>absolute(1)</code> is the same as calling the 0N/A * method <code>first()</code>. Calling <code>absolute(-1)</code> is the 0N/A * same as calling <code>last()</code>. Calling <code>relative(0)</code> 0N/A * is valid, but it does not change the cursor position. 0N/A * @param rows an <code>int</code> indicating the number of rows to move 0N/A * the cursor, starting at the current row; a positive number 0N/A * moves the cursor forward; a negative number moves the cursor 0N/A * backward; must not move the cursor past the valid 0N/A * @return <code>true</code> if the cursor is on a row in this 0N/A * <code>CachedRowSetImpl</code> object; <code>false</code> 0N/A * @throws SQLException if the rowset is type <code>ResultSet.TYPE_FORWARD_ONLY</code> 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the row number 0N/A * <p>If the number is positive, the cursor moves to an absolute row with 0N/A * respect to the beginning of the rowset. The first row is row 1, the second 0N/A * is row 2, and so on. For example, the following command, in which 0N/A * <code>crs</code> is a <code>CachedRowSetImpl</code> object, moves the cursor 0N/A * to the fourth row, starting from the beginning of the rowset. 0N/A * If the number is negative, the cursor moves to an absolute row position 0N/A * with respect to the end of the rowset. For example, calling 0N/A * <code>absolute(-1)</code> positions the cursor on the last row, 0N/A * <code>absolute(-2)</code> moves it on the next-to-last row, and so on. 0N/A * If the <code>CachedRowSetImpl</code> object <code>crs</code> has five rows, 0N/A * the following command moves the cursor to the fourth-to-last row, which 0N/A * in the case of a rowset with five rows, is also the second row, counting 0N/A * from the beginning. 0N/A * If the number specified is larger than the number of rows, the cursor 0N/A * will move to the position after the last row. If the number specified 0N/A * would move the cursor one or more rows before the first row, the cursor 0N/A * moves to the position before the first row. 0N/A * Note: Calling <code>absolute(1)</code> is the same as calling the 0N/A * method <code>first()</code>. Calling <code>absolute(-1)</code> is the 0N/A * same as calling <code>last()</code>. 0N/A * @param rows a positive number to indicate the row, starting row numbering from 0N/A * the first row, which is <code>1</code>; a negative number to indicate 0N/A * the row, starting row numbering from the last row, which is 0N/A * <code>-1</code>; it must not be <code>0</code> 0N/A * @return <code>true</code> if the cursor is on the rowset; <code>false</code> 0N/A * @throws SQLException if the given cursor position is <code>0</code> or the 0N/A * type of this rowset is <code>ResultSet.TYPE_FORWARD_ONLY</code> 0N/A * Moves the cursor for this <code>CachedRowSetImpl</code> object 0N/A * to the insert row. The current row in the rowset is remembered 0N/A * while the cursor is on the insert row. 0N/A * The insert row is a special row associated with an updatable 0N/A * rowset. It is essentially a buffer where a new row may 0N/A * be constructed by calling the appropriate <code>updateXXX</code> 0N/A * methods to assign a value to each column in the row. A complete 0N/A * row must be constructed; that is, every column that is not nullable 0N/A * must be assigned a value. In order for the new row to become part 0N/A * of this rowset, the method <code>insertRow</code> must be called 0N/A * before the cursor is moved back to the rowset. 0N/A * Only certain methods may be invoked while the cursor is on the insert 0N/A * row; many methods throw an exception if they are called while the 0N/A * cursor is there. In addition to the <code>updateXXX</code> 0N/A * and <code>insertRow</code> methods, only the <code>getXXX</code> methods 0N/A * may be called when the cursor is on the insert row. A <code>getXXX</code> 0N/A * method should be called on a column only after an <code>updateXXX</code> 0N/A * method has been called on that column; otherwise, the value returned is 0N/A * @throws SQLException if this <code>CachedRowSetImpl</code> object is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * This is explanation for the overriding of the updateXXX functions. 0N/A * These functions have been overriden to ensure that only correct 0N/A * values that pass the criteria for the filter are actaully inserted. 0N/A * The evaluation of whether a particular value passes the criteria 0N/A * of the filter is done using the evaluate function in the Predicate 0N/A * The checking can will done in the evaluate function which is implemented 0N/A * in the class that implements the Predicate interface. So the checking 0N/A * can vary from one implementation to another. 0N/A * Some additional points here on the following: 0N/A * 1. updateBytes() - since the evaluate function takes Object as parameter 0N/A * a String is constructed from the byte array and would 0N/A * passed to the evaluate function. 0N/A * 2. updateXXXstream() - here it would suffice to pass the stream handle 0N/A * to the evaluate function and the implementation 0N/A * of the evaluate function can do the comparision 0N/A * based on the stream and also type of data. 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>int</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>int</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>boolean</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>boolean</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>byte</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>byte</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>short</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>short</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>long</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>long</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>float</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>float</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>double</code> value. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>double</code> value. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>java.math.BigDecimal</code> object. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>java.math.BigDecimal</code> object. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset, but it does not update the database. 0N/A * If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>String</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to mark the row as updated. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called to insert the new row into this rowset and mark it 0N/A * as inserted. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * The method <code>acceptChanges</code> must be called if the 0N/A * updated values are to be written back to the underlying database. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>String</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>byte</code> array. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>byte</code> array. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Date</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, (3) the type of the designated column is not 0N/A * an SQL <code>DATE</code> or <code>TIMESTAMP</code>, or 0N/A * (4) this rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Date</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, (3) the type 0N/A * of the designated column is not an SQL <code>DATE</code> or 0N/A * <code>TIMESTAMP</code>, or (4) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Time</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, (3) the type of the designated column is not 0N/A * an SQL <code>TIME</code> or <code>TIMESTAMP</code>, or 0N/A * (4) this rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Time</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, (3) the type 0N/A * of the designated column is not an SQL <code>TIME</code> or 0N/A * <code>TIMESTAMP</code>, or (4) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Timestamp</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, (3) the type of the designated column is not 0N/A * an SQL <code>DATE</code>, <code>TIME</code>, or 0N/A * <code>TIMESTAMP</code>, or (4) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Timestamp</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if the given column index is out of bounds or 0N/A * the cursor is not on one of this rowset's rows or its 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, (3) the type 0N/A * of the designated column is not an SQL <code>DATE</code>, 0N/A * <code>TIME</code>, or <code>TIMESTAMP</code>, or (4) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * ASCII stream value. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @param length the number of one-byte ASCII characters in the stream 0N/A * @throws SQLException if this method is invoked 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * ASCII stream value. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @param length the number of one-byte ASCII characters in the stream 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>java.io.Reader</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value; must be a <code>java.io.Reader</code> 0N/A * containing <code>BINARY</code>, <code>VARBINARY</code>, 0N/A * <code>LONGVARBINARY</code>, <code>CHAR</code>, <code>VARCHAR</code>, 0N/A * or <code>LONGVARCHAR</code> data 0N/A * @param length the length of the stream in characters 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, (3) the data in the stream is not a binary or 0N/A * character type, or (4) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>java.io.Reader</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param reader the new column value; must be a 0N/A * <code>java.io.Reader</code> containing <code>BINARY</code>, 0N/A * <code>VARBINARY</code>, <code>LONGVARBINARY</code>, <code>CHAR</code>, 0N/A * <code>VARCHAR</code>, or <code>LONGVARCHAR</code> data 0N/A * @param length the length of the stream in characters 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, (3) the data 0N/A * in the stream is not a binary or character type, or (4) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>java.io.InputStream</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value; must be a <code>java.io.InputStream</code> 0N/A * containing <code>BINARY</code>, <code>VARBINARY</code>, or 0N/A * <code>LONGVARBINARY</code> data 0N/A * @param length the length of the stream in bytes 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, (3) the data in the stream is not binary, or 0N/A * (4) this rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>java.io.InputStream</code> object. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value; must be a <code>java.io.InputStream</code> 0N/A * containing <code>BINARY</code>, <code>VARBINARY</code>, or 0N/A * <code>LONGVARBINARY</code> data 0N/A * @param length the length of the stream in bytes 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, (3) the data 0N/A * in the stream is not binary, or (4) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Object</code> value. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Object</code> value. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Object</code> value. The <code>scale</code> parameter indicates 0N/A * the number of digits to the right of the decimal point and is ignored 0N/A * if the new column value is not a type that will be mapped to an SQL 0N/A * <code>DECIMAL</code> or <code>NUMERIC</code> value. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnIndex the first column is <code>1</code>, the second 0N/A * is <code>2</code>, and so on; must be <code>1</code> or larger 0N/A * and equal to or less than the number of columns in this rowset 0N/A * @param x the new column value 0N/A * @param scale the number of digits to the right of the decimal point (for 0N/A * <code>DECIMAL</code> and <code>NUMERIC</code> types only) 0N/A * @throws SQLException if (1) the given column index is out of bounds, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the designated column in either the current row or the insert 0N/A * row of this <code>CachedRowSetImpl</code> object with the given 0N/A * <code>Object</code> value. The <code>scale</code> parameter 0N/A * indicates the number of digits to the right of the decimal point 0N/A * and is ignored if the new column value is not a type that will be 0N/A * mapped to an SQL <code>DECIMAL</code> or <code>NUMERIC</code> value. 0N/A * This method updates a column value in either the current row or 0N/A * the insert row of this rowset, but it does not update the 0N/A * database. If the cursor is on a row in the rowset, the 0N/A * method {@link #updateRow} must be called to update the database. 0N/A * If the cursor is on the insert row, the method {@link #insertRow} 0N/A * must be called, which will insert the new row into both this rowset 0N/A * and the database. Both of these methods must be called before the 0N/A * cursor moves to another row. 0N/A * @param columnName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @param x the new column value 0N/A * @param scale the number of digits to the right of the decimal point (for 0N/A * <code>DECIMAL</code> and <code>NUMERIC</code> types only) 0N/A * @throws SQLException if (1) the given column name does not match the 0N/A * name of a column in this rowset, (2) the cursor is not on 0N/A * one of this rowset's rows or its insert row, or (3) this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Inserts the contents of this <code>CachedRowSetImpl</code> object's insert 0N/A * row into this rowset immediately following the current row. 0N/A * If the current row is the 0N/A * position after the last row or before the first row, the new row will 0N/A * be inserted at the end of the rowset. This method also notifies 0N/A * listeners registered with this rowset that the row has changed. 0N/A * The cursor must be on the insert row when this method is called. 0N/A * @throws SQLException if (1) the cursor is not on the insert row, 0N/A * (2) one or more of the non-nullable columns in the insert 0N/A * row has not been given a value, or (3) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 2741N/A * This method re populates the resBundle 2741N/A * during the deserialization process 2741N/A // Default state initialization happens here 2741N/A // Initialization of transient Res Bundle happens here . 0N/A}
// end FilteredRowSetImpl class