2741N/A * Copyright (c) 2004, 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 * There will be two sets of data which will be maintained by the rowset at the 0N/A * time of synchronization. The <code>SyncProvider</code> will utilize the 0N/A * <code>SyncResolver</code> to synchronize the changes back to database. 0N/A * This CachedRowSet object will encapsulate a rowset 0N/A * which will be sync'ed with the datasource but will 0N/A * contain values in rows where there is conflict. 0N/A * For rows other than conflict, it will *not* contain 0N/A * any data. For rows containing conflict it will 0N/A * return either of the three values set by SyncResolver.*_CONFLICT 0N/A * This is the actual CachedRowSet object 0N/A * which is being synchronized back to 0N/A * This ArrayList will contain the status of a row 0N/A * from the SyncResolver.* values else it will be null. 0N/A * The RowSetWriter associated with the original 0N/A * CachedRowSet object which is being synchronized. 0N/A * Row number identifier 0N/A * This will contain the size of the <code>CachedRowSet</code> object 0N/A * The <code>Connection</code> handle used to synchronize the changes 0N/A * back to datasource. This is the same connection handle as was passed 0N/A * to the CachedRowSet while fetching the data. 0N/A * The <code>CachedRowSet</code> object which will encapsulate 0N/A * a row at any time. This will be built from CachedRowSet and 0N/A * SyncResolver values. Synchronization takes place on a row by 0N/A * row basis encapsulated as a CahedRowSet. 0N/A * Public constructor 0N/A * Retrieves the conflict status of the current row of this 0N/A * <code>SyncResolver</code>, which indicates the operationthe <code>RowSet</code> 0N/A * object was attempting when the conflict occurred. 0N/A * @return one of the following constants: 0N/A * <code>SyncResolver.UPDATE_ROW_CONFLICT</code>, 0N/A * <code>SyncResolver.DELETE_ROW_CONFLICT</code>, or 0N/A * <code>SyncResolver.INSERT_ROW_CONFLICT</code> 0N/A * Retrieves the value in the designated column in the current row of this 0N/A * <code>SyncResolver</code> object, which is the value that caused a conflict. 0N/A * @param index <code>int</code> designating the column in this row of this 0N/A * <code>SyncResolver</code> object from which to retrieve the value 0N/A * causing a conflict 0N/A * Retrieves the value in the designated column in the current row of this 0N/A * <code>SyncResolver</code> object, which is the value that caused a conflict. 0N/A * @param columnName a <code>String</code> object designating the column in this row of this 0N/A * <code>SyncResolver</code> object from which to retrieve the value 0N/A * causing a conflict 0N/A * Sets <i>obj</i> as the value in column <i>index</i> in the current row of the 0N/A * <code>RowSet</code> object. This value is the resolved value that is to be 0N/A * persisted in the data source. 0N/A * @param index an <code>int</code> giving the number of the column into which to 0N/A * set the value to be persisted 0N/A * @param obj an <code>Object</code> that is the value to be set in the data source 0N/A // modify method to throw SQLException in spec 0N/A * When a value is resolved properly make it to null 0N/A * inside crsRes for that column. 0N/A * For more than one conflicts in the row, 0N/A * check for the last resolved value of the current row 0N/A * (Note: it can be resolved randomly for same row) 0N/A * then sync back immediately. 0N/A // check whether the index is in range 0N/A // check whether index col is in conflict 0N/A // modify method to throw for SQLException 0N/A /** Check resolved value to be either of conflict 0N/A * or in rowset else throw sql exception. 0N/A * If we allow a value other than that in CachedRowSet or 0N/A * datasource we will end up in looping the loop of exceptions. 0N/A * Check whether this is the only conflict in the row. 0N/A * If yes, synchronize this row back 0N/A * which has been resolved, else wait 0N/A * for all conflicts of current row to be resolved 0N/A * Step 1: Update crsRes and make the index col as null 0N/A * crsRes.updateObject(index, obj); 0N/A * Step 2: Change the value in the CachedRowSetImpl object 0N/A * crsSync.updateObject(index, obj); 0N/A * crsSync.updateRow(); 0N/A // break out of loop and wait for other cols 0N/A // in same row to get resolved 0N/A * sync data back using CachedRowSetWriter 0N/A * construct the present row and pass it to the writer 0N/A * to write back to db. 0N/A * Note : The use of CachedRowSetWriter to get *same* Connection handle. 0N/A * The CachedRowSetWriter uses the connection handle 0N/A * from the reader, Hence will use the same connection handle 0N/A * as of original CachedRowSetImpl 0N/A //crw.writeData( (RowSetInternal)crsRow); 0N/A //System.out.printlnt.println("12"); 0N/A * This will occur if db is not allowing 0N/A * even after resolving the conflicts 0N/A * due to some reasons. 0N/A * Also will prevent from going into a loop of SPE's 0N/A }
//end if (crs.getObject ...) block 0N/A * This passes a CachedRowSet as a row the the CachedRowSetWriter 0N/A * after the values have been resolved, back to the datasource. 0N/A * @param row a <code>CachedRowSet</code> object which will hold the 0N/A * values of a particular row after they have been resolved by 0N/A * the user to synchronize back to datasource. 0N/A * @throws SQLException if synchronization does not happen properly 0N/A * maybe beacuse <code>Connection</code> has timed out. 0N/A * This function builds a row as a <code>CachedRowSet</code> object 0N/A * which has been resolved and is ready to be synchrinized to the datasource 0N/A * @throws SQLException if there is problem in building 0N/A * the metadata of the row. 0N/A * Sets <i>obj</i> as the value in column <i>columnName</i> in the current row of the 0N/A * <code>RowSet</code> object. This value is the resolved value that is to be 0N/A * persisted in the data source. 0N/A * @param columnName a <code>String</code> object giving the name of the column 0N/A * into which to set the value to be persisted 0N/A * @param obj an <code>Object</code> that is the value to be set in the data source 0N/A // modify method to throw SQLException in spec 0N/A // %%% Missing implementation! 0N/A * This function is package private, 0N/A * i.e. cannot be accesses outside this package. 0N/A * This is used to set the actual CachedRowSet 0N/A * which is being synchronized to the database 0N/A * This function is package private, 0N/A * i.e. cannot be accesses outside this package. 0N/A * This is used to set the CachedRowSet formed 0N/A * with conflict values. 0N/A * This function is package private, 0N/A * i.e. cannot be accesses outside this package. 0N/A * This is used to set the status of each row 0N/A * to either of the values SyncResolver.*_CONFLICT 0N/A * This function is package private, 0N/A * i.e. cannot be accesses outside this package. 0N/A * This is used to set the handle to the writer object 0N/A * which will write the resolved values back to datasource 0N/A * Moves the cursor down one row from its current position. A <code>SyncResolver</code> 0N/A * cursor is initially positioned before the first conflict row; the first call to the 0N/A * method <code>nextConflict()</code> makes the first conflict row the current row; 0N/A * the second call makes the second conflict row the current row, and so on. 0N/A * If an input stream is open for the current row, a call to the method next will 0N/A * implicitly close it. A <code>SyncResolver</code> object's warning chain is cleared 0N/A * @return true if the new current row is valid; false if there are no more rows 0N/A * @throws SQLException if a database access occurs 0N/A * The next() method will hop from 0N/A * one conflict to another 0N/A * Internally do a crs.next() until 0N/A // bool remains as false 0N/A }
// end next() method 0N/A * Moves the cursor to the previous conflict row in this <code>SyncResolver</code> object. 0N/A * @return <code>true</code> if the cursor is on a valid row; <code>false</code> 0N/A * if it is off the result set 0N/A * @throws SQLException if a database access error occurs or the result set type 0N/A * is TYPE_FORWARD_ONLY 0N/A //----------------------------------------------------------------------- 0N/A //----------------------------------------------------------------------- 0N/A * Sets this <code>CachedRowSetImpl</code> object's command property 0N/A * to the given <code>String</code> object and clears the parameters, 0N/A * if any, that were set for the previous command. 0N/A * The command property may not be needed 0N/A * if the rowset is produced by a data source, such as a spreadsheet, 0N/A * that does not support commands. Thus, this property is optional 0N/A * and may be <code>null</code>. 0N/A * @param cmd a <code>String</code> object containing an SQL query 0N/A * that will be set as the command; may be <code>null</code> 0N/A * @throws SQLException if an error occurs 0N/A //--------------------------------------------------------------------- 0N/A // Reading and writing data 0N/A //--------------------------------------------------------------------- 0N/A * Populates this <code>CachedRowSetImpl</code> object with data from 0N/A * the given <code>ResultSet</code> object. This 0N/A * method is an alternative to the method <code>execute</code> 0N/A * for filling the rowset with data. The method <code>populate</code> 0N/A * does not require that the properties needed by the method 0N/A * <code>execute</code>, such as the <code>command</code> property, 0N/A * be set. This is true because the method <code>populate</code> 0N/A * is given the <code>ResultSet</code> object from 0N/A * which to get data and thus does not need to use the properties 0N/A * required for setting up a connection and executing this 0N/A * <code>CachedRowSetImpl</code> object's command. 0N/A * After populating this rowset with data, the method 0N/A * <code>populate</code> sets the rowset's metadata and 0N/A * then sends a <code>RowSetChangedEvent</code> object 0N/A * to all registered listeners prior to returning. 0N/A * @param data the <code>ResultSet</code> object containing the data 0N/A * to be read into this <code>CachedRowSetImpl</code> object 0N/A * @throws SQLException if an error occurs; or the max row setting is 0N/A * violated while populating the RowSet 0N/A * Populates this <code>CachedRowSetImpl</code> object with data, 0N/A * using the given connection to produce the result set from 0N/A * which data will be read. A second form of this method, 0N/A * which takes no arguments, uses the values from this rowset's 0N/A * user, password, and either url or data source properties to 0N/A * create a new database connection. The form of <code>execute</code> 0N/A * that is given a connection ignores these properties. 0N/A * @param conn A standard JDBC <code>Connection</code> object that this 0N/A * <code>CachedRowSet</code> object can pass to a synchronization provider 0N/A * to establish a connection to the data source 0N/A * @throws SQLException if an invalid <code>Connection</code> is supplied 0N/A * or an error occurs in establishing the connection to the 0N/A * @see java.sql.Connection 0N/A * Propagates all row update, insert, and delete changes to the 0N/A * underlying data source backing this <code>CachedRowSetImpl</code> 0N/A * <b>Note</b>In the reference implementation an optimistic concurrency implementation 0N/A * is provided as a sample implementation of a the <code>SyncProvider</code> 0N/A * This method fails if any of the updates cannot be propagated back 0N/A * to the data source. When it fails, the caller can assume that 0N/A * none of the updates are reflected in the data source. 0N/A * When an exception is thrown, the current row 0N/A * is set to the first "updated" row that resulted in an exception 0N/A * unless the row that caused the exception is a "deleted" row. 0N/A * In that case, when deleted rows are not shown, which is usually true, 0N/A * the current row is not affected. 0N/A * If no <code>SyncProvider</code> is configured, the reference implementation 0N/A * leverages the <code>RIOptimisticProvider</code> available which provides the 0N/A * default and reference synchronization capabilities for disconnected 0N/A * <code>RowSets</code>. 0N/A * @throws SQLException if the cursor is on the insert row or the underlying 0N/A * reference synchronization provider fails to commit the updates 0N/A * @throws SyncProviderException if an internal error occurs within the 0N/A * <code>SyncProvider</code> instance during either during the 0N/A * process or at any time when the <code>SyncProvider</code> 0N/A * instance touches the data source. 0N/A * @see #acceptChanges(java.sql.Connection) 0N/A * @see javax.sql.RowSetWriter 0N/A * @see javax.sql.rowset.spi.SyncProvider 0N/A * Propagates all row update, insert, and delete changes to the 0N/A * data source backing this <code>CachedRowSetImpl</code> object 0N/A * using the given <code>Connection</code> object. 0N/A * The reference implementation <code>RIOptimisticProvider</code> 0N/A * modifies its synchronization to a write back function given 0N/A * the updated connection 0N/A * The reference implementation modifies its synchronization behaviour 0N/A * via the <code>SyncProvider</code> to ensure the synchronization 0N/A * occurs according to the updated JDBC <code>Connection</code> 0N/A * @param con a standard JDBC <code>Connection</code> object 0N/A * @throws SQLException if the cursor is on the insert row or the underlying 0N/A * synchronization provider fails to commit the updates 0N/A * back to the data source 0N/A * @see #acceptChanges 0N/A * @see javax.sql.RowSetWriter 0N/A * @see javax.sql.rowset.spi.SyncFactory 0N/A * @see javax.sql.rowset.spi.SyncProvider 0N/A * Restores this <code>CachedRowSetImpl</code> object to its original state, 0N/A * that is, its state before the last set of changes. 0N/A * Before returning, this method moves the cursor before the first row 0N/A * and sends a <code>rowSetChanged</code> event to all registered 0N/A * @throws SQLException if an error is occurs rolling back the RowSet 0N/A * state to the definied original value. 0N/A * @see javax.sql.RowSetListener#rowSetChanged 0N/A * Releases the current contents of this <code>CachedRowSetImpl</code> 0N/A * object and sends a <code>rowSetChanged</code> event object to all 0N/A * registered listeners. 0N/A * @throws SQLException if an error occurs flushing the contents of 0N/A * @see javax.sql.RowSetListener#rowSetChanged 0N/A * Cancels deletion of the current row and notifies listeners that 0N/A * a row has changed. 0N/A * Note: This method can be ignored if deleted rows are not being shown, 0N/A * which is the normal case. 0N/A * @throws SQLException if the cursor is not on a valid row 0N/A * Immediately removes the current row from this 0N/A * <code>CachedRowSetImpl</code> object if the row has been inserted, and 0N/A * also notifies listeners the a row has changed. An exception is thrown 0N/A * if the row is not a row that has been inserted or the cursor is before 0N/A * the first row, after the last row, or on the insert row. 0N/A * This operation cannot be undone. 0N/A * @throws SQLException if an error occurs, 0N/A * the cursor is not on a valid row, 0N/A * or the row has not been inserted 0N/A * Immediately reverses the last update operation if the 0N/A * row has been modified. This method can be 0N/A * called to reverse updates on a all columns until all updates in a row have 0N/A * been rolled back to their originating state since the last synchronization 0N/A * (<code>acceptChanges</code>) or population. This method may also be called 0N/A * while performing updates to the insert row. 0N/A * <code>undoUpdate</code may be called at any time during the life-time of a 0N/A * rowset, however after a synchronization has occurs this method has no 0N/A * affect until further modification to the RowSet data occurs. 0N/A * @throws SQLException if cursor is before the first row, after the last 0N/A * @see java.sql.ResultSet#cancelRowUpdates 0N/A //-------------------------------------------------------------------- 0N/A //-------------------------------------------------------------------- 0N/A * Returns a new <code>RowSet</code> object backed by the same data as 0N/A * that of this <code>CachedRowSetImpl</code> object and sharing a set of cursors 0N/A * with it. This allows cursors to interate over a shared set of rows, providing 0N/A * multiple views of the underlying data. 0N/A * @return a <code>RowSet</code> object that is a copy of this <code>CachedRowSetImpl</code> 0N/A * object and shares a set of cursors with it 0N/A * @throws SQLException if an error occurs or cloning is 0N/A * @see javax.sql.RowSetEvent 0N/A * @see javax.sql.RowSetListener 0N/A * Returns a new <code>RowSet</code> object containing by the same data 0N/A * as this <code>CachedRowSetImpl</code> object. This method 0N/A * differs from the method <code>createCopy</code> in that it throws a 0N/A * <code>CloneNotSupportedException</code> object instead of an 0N/A * <code>SQLException</code> object, as the method <code>createShared</code> 0N/A * does. This <code>clone</code> 0N/A * method is called internally by the method <code>createShared</code>, 0N/A * which catches the <code>CloneNotSupportedException</code> object 0N/A * and in turn throws a new <code>SQLException</code> object. 0N/A * @return a copy of this <code>CachedRowSetImpl</code> object 0N/A * @throws CloneNotSupportedException if an error occurs when 0N/A * attempting to clone this <code>CachedRowSetImpl</code> object 0N/A * @see #createShared 0N/A * Creates a <code>RowSet</code> object that is a deep copy of 0N/A * this <code>CachedRowSetImpl</code> object's data, including 0N/A * constraints. Updates made 0N/A * on a copy are not visible to the original rowset; 0N/A * a copy of a rowset is completely independent from the original. 0N/A * Making a copy saves the cost of creating an identical rowset 0N/A * from first principles, which can be quite expensive. 0N/A * For example, it can eliminate the need to query a 0N/A * remote database server. 0N/A * @return a new <code>CachedRowSet</code> object that is a deep copy 0N/A * of this <code>CachedRowSet</code> object and is 0N/A * completely independent from this <code>CachedRowSetImpl</code> 0N/A * @throws SQLException if an error occurs in generating the copy of this 0N/A * of the <code>CachedRowSetImpl</code> 0N/A * @see #createShared 0N/A * @see javax.sql.RowSetEvent 0N/A * @see javax.sql.RowSetListener 0N/A * Creates a <code>RowSet</code> object that is a copy of 0N/A * this <code>CachedRowSetImpl</code> object's table structure 0N/A * and the constraints only. 0N/A * There will be no data in the object being returned. 0N/A * Updates made on a copy are not visible to the original rowset. 0N/A * This helps in getting the underlying XML schema which can 0N/A * be used as the basis for populating a <code>WebRowSet</code>. 0N/A * @return a new <code>CachedRowSet</code> object that is a copy 0N/A * of this <code>CachedRowSetImpl</code> object's schema and 0N/A * retains all the constraints on the original rowset but contains 0N/A * @throws SQLException if an error occurs in generating the copy 0N/A * of the <code>CachedRowSet</code> object 0N/A * @see #createShared 0N/A * @see #createCopyNoConstraints 0N/A * @see javax.sql.RowSetEvent 0N/A * @see javax.sql.RowSetListener 0N/A * Creates a <code>CachedRowSet</code> object that is a copy of 0N/A * this <code>CachedRowSetImpl</code> object's data only. 0N/A * All constraints set in this object will not be there 0N/A * in the returning object. Updates made 0N/A * on a copy are not visible to the original rowset. 0N/A * @return a new <code>CachedRowSet</code> object that is a deep copy 0N/A * of this <code>CachedRowSetImpl</code> object and is 0N/A * completely independent from this <code>CachedRowSetImpl</code> object 0N/A * @throws SQLException if an error occurs in generating the copy of the 0N/A * of the <code>CachedRowSet</code> 0N/A * @see #createShared 0N/A * @see #createCopySchema 0N/A * @see javax.sql.RowSetEvent 0N/A * @see javax.sql.RowSetListener 0N/A * Converts this <code>CachedRowSetImpl</code> object to a collection 0N/A * of tables. The sample implementation utilitizes the <code>TreeMap</code> 0N/A * This class guarantees that the map will be in ascending key order, 0N/A * sorted according to the natural order for the key's class. 0N/A * @return a <code>Collection</code> object consisting of tables, 0N/A * each of which is a copy of a row in this 0N/A * <code>CachedRowSetImpl</code> object 0N/A * @throws SQLException if an error occurs in generating the collection 0N/A * @see #toCollection(int) 0N/A * @see #toCollection(String) 0N/A * @see java.util.TreeMap 0N/A * Returns the specified column of this <code>CachedRowSetImpl</code> object 0N/A * as a <code>Collection</code> object. This method makes a copy of the 0N/A * column's data and utilitizes the <code>Vector</code> to establish the 0N/A * collection. The <code>Vector</code> class implements a growable array 0N/A * objects allowing the individual components to be accessed using an 0N/A * an integer index similar to that of an array. 0N/A * @return a <code>Collection</code> object that contains the value(s) 0N/A * stored in the specified column of this 0N/A * <code>CachedRowSetImpl</code> 0N/A * @throws SQLException if an error occurs generated the collection; or 0N/A * an invalid column is provided. 0N/A * @see #toCollection() 0N/A * @see #toCollection(String) 0N/A * @see java.util.Vector 0N/A * Returns the specified column of this <code>CachedRowSetImpl</code> object 0N/A * as a <code>Collection</code> object. This method makes a copy of the 0N/A * column's data and utilitizes the <code>Vector</code> to establish the 0N/A * collection. The <code>Vector</code> class implements a growable array 0N/A * objects allowing the individual components to be accessed using an 0N/A * an integer index similar to that of an array. 0N/A * @return a <code>Collection</code> object that contains the value(s) 0N/A * stored in the specified column of this 0N/A * <code>CachedRowSetImpl</code> 0N/A * @throws SQLException if an error occurs generated the collection; or 0N/A * an invalid column is provided. 0N/A * @see #toCollection() 0N/A * @see #toCollection(int) 0N/A * @see java.util.Vector 0N/A //-------------------------------------------------------------------- 0N/A // Advanced features 0N/A //-------------------------------------------------------------------- 0N/A * Returns the <code>SyncProvider</code> implementation being used 0N/A * with this <code>CachedRowSetImpl</code> implementation rowset. 0N/A * @return the SyncProvider used by the rowset. If not provider was 0N/A * set when the rowset was instantiated, the reference 0N/A * implementation (default) provider is returned. 0N/A * @throws SQLException if error occurs while return the 0N/A * <code>SyncProvider</code> instance. 0N/A * Sets the active <code>SyncProvider</code> and attempts to load 0N/A * load the new provider using the <code>SyncFactory</code> SPI. 0N/A * @throws SQLException if an error occurs while resetting the 0N/A * <code>SyncProvider</code>. 0N/A // methods inherited from RowSet 0N/A //--------------------------------------------------------------------- 0N/A // Reading and writing data 0N/A //--------------------------------------------------------------------- 0N/A * Populates this <code>CachedRowSetImpl</code> object with data. 0N/A * This form of the method uses the rowset's user, password, and url or 0N/A * data source name properties to create a database 0N/A * connection. If properties that are needed 0N/A * have not been set, this method will throw an exception. 0N/A * Another form of this method uses an existing JDBC <code>Connection</code> 0N/A * object instead of creating a new one; therefore, it ignores the 0N/A * properties used for establishing a new connection. 0N/A * The query specified by the command property is executed to create a 0N/A * <code>ResultSet</code> object from which to retrieve data. 0N/A * The current contents of the rowset are discarded, and the 0N/A * rowset's metadata is also (re)set. If there are outstanding updates, 0N/A * they are also ignored. 0N/A * The method <code>execute</code> closes any database connections that it 0N/A * @throws SQLException if an error occurs or the 0N/A * necessary properties have not been set 0N/A //----------------------------------- 0N/A // Methods inherited from ResultSet 0N/A //----------------------------------- 0N/A * Moves the cursor down one row from its current position and 0N/A * returns <code>true</code> if the new cursor position is a 0N/A * The cursor for a new <code>ResultSet</code> object is initially 0N/A * positioned before the first row. The first call to the method 0N/A * <code>next</code> moves the cursor to the first row, making it 0N/A * the current row; the second call makes the second row the 0N/A * current row, and so on. 0N/A * <P>If an input stream from the previous row is open, it is 0N/A * implicitly closed. The <code>ResultSet</code> object's warning 0N/A * chain is cleared when a new row is read. 0N/A * @return <code>true</code> if the new current row is valid; 0N/A * <code>false</code> if there are no more rows 0N/A * @throws SQLException if an error occurs or 0N/A * the cursor is not positioned in the rowset, before 0N/A * the first row, or after the last row 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the next 0N/A * row and returns <code>true</code> if the cursor is still in the rowset; 0N/A * returns <code>false</code> if the cursor has moved to the position after 0N/A * This method handles the cases where the cursor moves to a row that 0N/A * If this rowset shows deleted rows and the cursor moves to a row 0N/A * that has been deleted, this method moves the cursor to the next 0N/A * row until the cursor is on a row that has not been deleted. 0N/A * The method <code>internalNext</code> is called by methods such as 0N/A * <code>next</code>, <code>absolute</code>, and <code>relative</code>, 0N/A * and, as its name implies, is only called internally. 0N/A * This is a implementation only method and is not required as a standard 0N/A * implementation of the <code>CachedRowSet</code> interface. 0N/A * @return <code>true</code> if the cursor is on a valid row in this 0N/A * rowset; <code>false</code> if it is after the last row 0N/A * @throws SQLException if an error occurs 0N/A * Closes this <code>CachedRowSetImpl</code> objecy and releases any resources 0N/A * @throws SQLException if an error occurs when releasing any resources in use 0N/A * by this <code>CachedRowSetImpl</code> object 0N/A * Reports whether the last column read was SQL <code>NULL</code>. 0N/A * Note that you must first call the method <code>getXXX</code> 0N/A * on a column to try to read its value and then call the method 0N/A * <code>wasNull</code> to determine whether the value was 0N/A * SQL <code>NULL</code>. 0N/A * @return <code>true</code> if the value in the last column read 0N/A * was SQL <code>NULL</code>; <code>false</code> otherwise 0N/A * @throws SQLException if an error occurs 0N/A * Returns the insert row or the current row of this 0N/A * <code>CachedRowSetImpl</code>object. 0N/A * @return the <code>Row</code> object on which this <code>CachedRowSetImpl</code> 0N/A * objects's cursor is positioned 0N/A * Removes the row on which the cursor is positioned. 0N/A * This is a implementation only method and is not required as a standard 0N/A * implementation of the <code>CachedRowSet</code> interface. 0N/A * @throws SQLException if the cursor is positioned on the insert 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>String</code> object. 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 the rowset 0N/A * @return the column value; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>null</code> 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) the designated column does not store an 0N/A * SQL <code>TINYINT, SMALLINT, INTEGER, BIGINT, REAL, 0N/A * FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, <b>CHAR</b>, <b>VARCHAR</b></code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type designates the 0N/A * recommended return type. 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>boolean</code> value. 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 the rowset 0N/A * @return the column value as a <code>boolean</code> in the Java progamming language; 0N/A * if the value is SQL <code>NULL</code>, the result is <code>false</code> 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) the designated column does not store an 0N/A * SQL <code>BOOLEAN</code> value 0N/A * @see #getBoolean(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>byte</code> value. 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 the rowset 0N/A * @return the column value as a <code>byte</code> in the Java programming 0N/A * language; if the value is SQL <code>NULL</code>, the result is <code>0</code> 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) the designated column does not store an 0N/A * SQL <code><b>TINYINT</b>, SMALLINT, INTEGER, BIGINT, REAL, 0N/A * FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type 0N/A * designates the recommended return type. 0N/A * @see #getByte(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>short</code> value. 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 the rowset 0N/A * @return the column value; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>0</code> 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) the designated column does not store an 0N/A * SQL <code>TINYINT, <b>SMALLINT</b>, INTEGER, BIGINT, REAL 0N/A * FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type designates the 0N/A * recommended return type. 0N/A * @see #getShort(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as an 0N/A * <code>int</code> value. 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 the rowset 0N/A * @return the column value; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>0</code> 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) the designated column does not store an 0N/A * SQL <code>TINYINT, SMALLINT, <b>INTEGER</b>, BIGINT, REAL 0N/A * FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type designates the 0N/A * recommended return type. 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>long</code> value. 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 the rowset 0N/A * @return the column value; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>0</code> 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) the designated column does not store an 0N/A * SQL <code>TINYINT, SMALLINT, INTEGER, <b>BIGINT</b>, REAL 0N/A * FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type designates the 0N/A * recommended return type. 0N/A * @see #getLong(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>float</code> value. 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 the rowset 0N/A * @return the column value; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>0</code> 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) the designated column does not store an 0N/A * SQL <code>TINYINT, SMALLINT, INTEGER, BIGINT, <b>REAL</b>, 0N/A * FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type designates the 0N/A * recommended return type. 0N/A * @see #getFloat(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>double</code> value. 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 the rowset 0N/A * @return the column value; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>0</code> 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) the designated column does not store an 0N/A * SQL <code>TINYINT, SMALLINT, INTEGER, BIGINT, REAL, 0N/A * <b>FLOAT</b>, <b>DOUBLE</b>, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type designates the 0N/A * recommended return type. 0N/A * @see #getDouble(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>java.math.BigDecimal</code> object. 0N/A * This method is deprecated; use the version of <code>getBigDecimal</code> 0N/A * that does not take a scale parameter and returns a value with full 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 the rowset 0N/A * @param scale the number of digits to the right of the decimal point in the 0N/A * @return the column value with the specified number of digits to the right 0N/A * of the decimal point; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>null</code> 0N/A * @throws SQLException if the given column index is out of bounds, 0N/A * the cursor is not on a valid row, or this method fails 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>byte</code> array value. 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 the rowset 0N/A * @return the column value as a <code>byte</code> array in the Java programming 0N/A * language; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>null</code> 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) the designated column does not store an 0N/A * SQL <code><b>BINARY</b>, <b>VARBINARY</b> or 0N/A * LONGVARBINARY</code> value. 0N/A * The bold SQL type designates the recommended return type. 0N/A * @see #getBytes(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>java.sql.Date</code> object. 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 the rowset 0N/A * @return the column value as a <code>java.sql.Data</code> object; if 0N/A * the value is SQL <code>NULL</code>, the 0N/A * result is <code>null</code> 0N/A * @throws SQLException if the given column index is out of bounds, 0N/A * the cursor is not on a valid row, or this method fails 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>java.sql.Time</code> object. 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 the rowset 0N/A * @return the column value; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>null</code> 0N/A * @throws SQLException if the given column index is out of bounds, 0N/A * the cursor is not on a valid row, or this method fails 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>java.sql.Timestamp</code> object. 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 the rowset 0N/A * @return the column value; if the value is SQL <code>NULL</code>, the 0N/A * result is <code>null</code> 0N/A * @throws SQLException if the given column index is out of bounds, 0N/A * the cursor is not on a valid row, or this method fails 0N/A * Retrieves the value of the designated column in the current row of this 0N/A * <code>CachedRowSetImpl</code> object as a <code>java.io.InputStream</code> 0N/A * A column value can be retrieved as a stream of ASCII characters 0N/A * and then read in chunks from the stream. This method is particularly 0N/A * suitable for retrieving large <code>LONGVARCHAR</code> values. The JDBC 0N/A * driver will do any necessary conversion from the database format into ASCII. 0N/A * <P><B>Note:</B> All the data in the returned stream must be 0N/A * read prior to getting the value of any other column. The next 0N/A * call to a get method implicitly closes the stream. . Also, a 0N/A * stream may return <code>0</code> for <code>CachedRowSetImpl.available()</code> 0N/A * whether there is data available or not. 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 * @return a Java input stream that delivers the database column value 0N/A * as a stream of one-byte ASCII characters. If the value is SQL 0N/A * <code>NULL</code>, the result is <code>null</code>. 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) the designated column does not store an 0N/A * SQL <code>CHAR, VARCHAR</code>, <code><b>LONGVARCHAR</b></code> 0N/A * <code>BINARY, VARBINARY</code> or <code>LONGVARBINARY</code> value. The 0N/A * bold SQL type designates the recommended return types that this method is 0N/A * @see #getAsciiStream(String) 0N/A * A column value can be retrieved as a stream of Unicode characters 0N/A * and then read in chunks from the stream. This method is particularly 0N/A * suitable for retrieving large LONGVARCHAR values. The JDBC driver will 0N/A * do any necessary conversion from the database format into Unicode. 0N/A * <P><B>Note:</B> All the data in the returned stream must be 0N/A * read prior to getting the value of any other column. The next 0N/A * call to a get method implicitly closes the stream. . Also, a 0N/A * stream may return 0 for available() whether there is data 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 * @return a Java input stream that delivers the database column value 0N/A * as a stream of two byte Unicode characters. If the value is SQL NULL 0N/A * then the result is null. 0N/A * @throws SQLException if an error occurs 0N/A * Retrieves the value of the designated column in the current row of this 0N/A * <code>CachedRowSetImpl</code> object as a <code>java.io.InputStream</code> 0N/A * A column value can be retrieved as a stream of uninterpreted bytes 0N/A * and then read in chunks from the stream. This method is particularly 0N/A * suitable for retrieving large <code>LONGVARBINARY</code> values. 0N/A * <P><B>Note:</B> All the data in the returned stream must be 0N/A * read prior to getting the value of any other column. The next 0N/A * call to a get method implicitly closes the stream. Also, a 0N/A * stream may return <code>0</code> for 0N/A * <code>CachedRowSetImpl.available()</code> whether there is data 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 the rowset 0N/A * @return a Java input stream that delivers the database column value 0N/A * as a stream of uninterpreted bytes. If the value is SQL <code>NULL</code> 0N/A * then the result is <code>null</code>. 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) the designated column does not store an 0N/A * SQL <code>BINARY, VARBINARY</code> or <code><b>LONGVARBINARY</b></code> 0N/A * The bold type indicates the SQL type that this method is recommened 0N/A * @see #getBinaryStream(String) 0N/A //====================================================================== 0N/A // Methods for accessing results by column name 0N/A //====================================================================== 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>String</code> object. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TINYINT, SMALLINT, INTEGER 0N/A * BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, <b>CHAR</b>, 0N/A * <b>VARCHAR</b></code> or <code>LONGVARCHAR<</code> value. The bold SQL type 0N/A * designates the recommended return type. 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>boolean</code> value. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value as a <code>boolean</code> in the Java programming 0N/A * language; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>false</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>BOOLEAN</code> value 0N/A * @see #getBoolean(int) 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>byte</code> value. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value as a <code>byte</code> in the Java programming 0N/A * language; if the value is SQL <code>NULL</code>, the result is <code>0</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code><B>TINYINT</B>, SMALLINT, INTEGER, 0N/A * BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, 0N/A * VARCHAR</code> or <code>LONGVARCHAR</code> value. The 0N/A * bold type designates the recommended return type 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>short</code> value. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>0</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TINYINT, <b>SMALLINT</b>, INTEGER 0N/A * BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, 0N/A * VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type 0N/A * designates the recommended return type. 0N/A * @see #getShort(int) 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as an <code>int</code> value. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>0</code> 0N/A * @throws SQLException if (1) the given column name is not the name 0N/A * of a column in this rowset, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) the designated column does not store an 0N/A * SQL <code>TINYINT, SMALLINT, <b>INTEGER</b>, BIGINT, REAL 0N/A * FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type designates the 0N/A * recommended return type. 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>long</code> value. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>0</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TINYINT, SMALLINT, INTEGER 0N/A * <b>BIGINT</b>, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, 0N/A * VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type 0N/A * designates the recommended return type. 0N/A * @see #getLong(int) 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>float</code> value. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>0</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TINYINT, SMALLINT, INTEGER 0N/A * BIGINT, <b>REAL</b>, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, 0N/A * VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type 0N/A * designates the recommended return type. 0N/A * @see #getFloat(String) 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row of this <code>CachedRowSetImpl</code> object 0N/A * as a <code>double</code> value. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>0</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TINYINT, SMALLINT, INTEGER 0N/A * BIGINT, REAL, <b>FLOAT</b>, <b>DOUBLE</b>, DECIMAL, NUMERIC, BIT, CHAR, 0N/A * VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type 0N/A * designates the recommended return types. 0N/A * @see #getDouble(int) 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>java.math.BigDecimal</code> object. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @param scale the number of digits to the right of the decimal point 0N/A * @return a java.math.BugDecimal object with <code><i>scale</i></code> 0N/A * number of digits to the right of the decimal point. 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TINYINT, SMALLINT, INTEGER 0N/A * BIGINT, REAL, FLOAT, DOUBLE, <b>DECIMAL</b>, <b>NUMERIC</b>, BIT CHAR, 0N/A * VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type 0N/A * designates the recommended return type that this method is used to 0N/A * @deprecated Use the <code>getBigDecimal(String columnName)</code> 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>byte</code> array. 0N/A * The bytes represent the raw values returned by the driver. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value as a <code>byte</code> array in the Java programming 0N/A * language; if the value is SQL <code>NULL</code>, the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code><b>BINARY</b>, <b>VARBINARY</b> 0N/A * </code> or <code>LONGVARBINARY</code> values 0N/A * The bold SQL type designates the recommended return type. 0N/A * @see #getBytes(int) 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>java.sql.Date</code> object. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>DATE</code> or 0N/A * <code>TIMESTAMP</code> value 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>java.sql.Time</code> object. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if the given column name does not match one of 0N/A * this rowset's column names or the cursor is not on one of 0N/A * this rowset's rows or its insert row 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>java.sql.Timestamp</code> object. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if the given column name does not match one of 0N/A * this rowset's column names or the cursor is not on one of 0N/A * this rowset's rows or its insert row 0N/A * Retrieves the value of the designated column in the current row of this 0N/A * <code>CachedRowSetImpl</code> object as a <code>java.io.InputStream</code> 0N/A * A column value can be retrieved as a stream of ASCII characters 0N/A * and then read in chunks from the stream. This method is particularly 0N/A * suitable for retrieving large <code>LONGVARCHAR</code> values. The 0N/A * <code>SyncProvider</code> will rely on the JDBC driver to do any necessary 0N/A * conversion from the database format into ASCII format. 0N/A * <P><B>Note:</B> All the data in the returned stream must 0N/A * be read prior to getting the value of any other column. The 0N/A * next call to a <code>getXXX</code> method implicitly closes the stream. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return a Java input stream that delivers the database column value 0N/A * as a stream of one-byte ASCII characters. If the value is SQL 0N/A * <code>NULL</code>, the result is <code>null</code>. 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) the designated column does not store an 0N/A * SQL <code>CHAR, VARCHAR</code>, <code><b>LONGVARCHAR</b></code> 0N/A * <code>BINARY, VARBINARY</code> or <code>LONGVARBINARY</code> value. The 0N/A * bold SQL type designates the recommended return types that this method is 0N/A * @see #getAsciiStream(int) 0N/A * A column value can be retrieved as a stream of Unicode characters 0N/A * and then read in chunks from the stream. This method is particularly 0N/A * suitable for retrieving large <code>LONGVARCHAR</code> values. 0N/A * The JDBC driver will do any necessary conversion from the database 0N/A * format into Unicode. 0N/A * <P><B>Note:</B> All the data in the returned stream must 0N/A * be read prior to getting the value of any other column. The 0N/A * next call to a <code>getXXX</code> method implicitly closes the stream. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return a Java input stream that delivers the database column value 0N/A * as a stream of two-byte Unicode characters. If the value is 0N/A * SQL <code>NULL</code>, the result is <code>null</code>. 0N/A * @throws SQLException if the given column name does not match one of 0N/A * this rowset's column names or the cursor is not on one of 0N/A * this rowset's rows or its insert row 0N/A * @deprecated use the method <code>getCharacterStream</code> instead 0N/A * Retrieves the value of the designated column in the current row of this 0N/A * <code>CachedRowSetImpl</code> object as a <code>java.io.InputStream</code> 0N/A * A column value can be retrieved as a stream of uninterpreted bytes 0N/A * and then read in chunks from the stream. This method is particularly 0N/A * suitable for retrieving large <code>LONGVARBINARY</code> values. 0N/A * <P><B>Note:</B> All the data in the returned stream must be 0N/A * read prior to getting the value of any other column. The next 0N/A * call to a get method implicitly closes the stream. Also, a 0N/A * stream may return <code>0</code> for <code>CachedRowSetImpl.available()</code> 0N/A * whether there is data available or not. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return a Java input stream that delivers the database column value 0N/A * as a stream of uninterpreted bytes. If the value is SQL 0N/A * <code>NULL</code>, the result is <code>null</code>. 0N/A * @throws SQLException if (1) the given column name is unknown, 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) the designated column does not store an 0N/A * SQL <code>BINARY, VARBINARY</code> or <code><b>LONGVARBINARY</b></code> 0N/A * The bold type indicates the SQL type that this method is recommened 0N/A * @see #getBinaryStream(int) 0N/A //===================================================================== 0N/A // Advanced features: 0N/A //===================================================================== 0N/A * The first warning reported by calls on this <code>CachedRowSetImpl</code> 0N/A * object is returned. Subsequent <code>CachedRowSetImpl</code> warnings will 0N/A * be chained to this <code>SQLWarning</code>. 0N/A * <P>The warning chain is automatically cleared each time a new 0N/A * <P><B>Note:</B> This warning chain only covers warnings caused 0N/A * by <code>ResultSet</code> methods. Any warning caused by statement 0N/A * methods (such as reading OUT parameters) will be chained on the 0N/A * <code>Statement</code> object. 0N/A * @return the first SQLWarning or null 0N/A * Clears all the warnings reporeted for the <code>CachedRowSetImpl</code> 0N/A * object. After a call to this method, the <code>getWarnings</code> method 0N/A * returns <code>null</code> until a new warning is reported for this 0N/A * <code>CachedRowSetImpl</code> object. 0N/A * Retrieves the name of the SQL cursor used by this 0N/A * <code>CachedRowSetImpl</code> object. 0N/A * <P>In SQL, a result table is retrieved through a cursor that is 0N/A * named. The current row of a <code>ResultSet</code> can be updated or deleted 0N/A * cursor name. To ensure that the cursor has the proper isolation 0N/A * level to support an update operation, the cursor's <code>SELECT</code> 0N/A * statement should be of the form <code>select for update</code>. 0N/A * If the <code>for update</code> clause 0N/A * is omitted, positioned updates may fail. 0N/A * <P>JDBC supports this SQL feature by providing the name of the 0N/A * SQL cursor used by a <code>ResultSet</code> object. The current row 0N/A * of a result set is also the current row of this SQL cursor. 0N/A * <P><B>Note:</B> If positioned updates are not supported, an 0N/A * <code>SQLException</code> is thrown. 0N/A * @return the SQL cursor name for this <code>CachedRowSetImpl</code> object's 0N/A * @throws SQLException if an error occurs 0N/A * Retrieves a <code>ResultSetMetaData</code> object instance that 0N/A * contains information about the <code>CachedRowSet</code> object. 0N/A * However, applications should cast the returned object to a 0N/A * <code>RowSetMetaData</code> interface implementation. In the 0N/A * reference implementation, this cast can be done on the 0N/A * <code>RowSetMetaDataImpl</code> class. 0N/A * CachedRowSet crs = new CachedRowSetImpl(); 0N/A * RowSetMetaDataImpl metaData = 0N/A * (RowSetMetaDataImpl)crs.getMetaData(); 0N/A * // Set the number of columns in the RowSet object for 0N/A * // which this RowSetMetaDataImpl object was created to the 0N/A * metaData.setColumnCount(3); 0N/A * crs.setMetaData(metaData); 0N/A * @return the <code>ResultSetMetaData</code> object that describes this 0N/A * <code>CachedRowSetImpl</code> object's columns 0N/A * @throws SQLException if an error occurs in generating the RowSet 0N/A * meta data; or if the <code>CachedRowSetImpl</code> is empty. 0N/A * @see javax.sql.RowSetMetaData 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as an 0N/A * <code>Object</code> value. 0N/A * The type of the <code>Object</code> will be the default 0N/A * Java object type corresponding to the column's SQL type, 0N/A * following the mapping for built-in types specified in the JDBC 3.0 0N/A * This method may also be used to read datatabase-specific 0N/A * abstract data types. 0N/A * This implementation of the method <code>getObject</code> extends its 0N/A * behavior so that it gets the attributes of an SQL structured type 0N/A * as an array of <code>Object</code> values. This method also custom 0N/A * maps SQL user-defined types to classes in the Java programming language. 0N/A * When the specified column contains 0N/A * a structured or distinct value, the behavior of this method is as 0N/A * if it were a call to the method <code>getObject(columnIndex, 0N/A * this.getStatement().getConnection().getTypeMap())</code>. 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 the rowset 0N/A * @return a <code>java.lang.Object</code> holding the column value; 0N/A * if the value is SQL <code>NULL</code>, the result is <code>null</code> 0N/A * @throws SQLException if the given column index is out of bounds, 0N/A * the cursor is not on a valid row, or there is a problem getting 0N/A * the <code>Class</code> object for a custom mapping 0N/A * @see #getObject(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as an 0N/A * <code>Object</code> value. 0N/A * The type of the <code>Object</code> will be the default 0N/A * Java object type corresponding to the column's SQL type, 0N/A * following the mapping for built-in types specified in the JDBC 3.0 0N/A * This method may also be used to read datatabase-specific 0N/A * abstract data types. 0N/A * This implementation of the method <code>getObject</code> extends its 0N/A * behavior so that it gets the attributes of an SQL structured type 0N/A * as an array of <code>Object</code> values. This method also custom 0N/A * maps SQL user-defined types to classes 0N/A * in the Java programming language. When the specified column contains 0N/A * a structured or distinct value, the behavior of this method is as 0N/A * if it were a call to the method <code>getObject(columnIndex, 0N/A * this.getStatement().getConnection().getTypeMap())</code>. 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 * @return a <code>java.lang.Object</code> holding the column value; 0N/A * if the value is SQL <code>NULL</code>, the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name does not match one of 0N/A * this rowset's column names, (2) the cursor is not 0N/A * on a valid row, or (3) there is a problem getting 0N/A * the <code>Class</code> object for a custom mapping 0N/A * @see #getObject(int) 0N/A //---------------------------------------------------------------- 0N/A * Maps the given column name for one of this <code>CachedRowSetImpl</code> 0N/A * object's columns to its column number. 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 * @return the column index of the given column name 0N/A * @throws SQLException if the given column name does not match one 0N/A * of this rowset's column names 0N/A //--------------------------JDBC 2.0----------------------------------- 0N/A //--------------------------------------------------------------------- 0N/A // Getter's and Setter's 0N/A //--------------------------------------------------------------------- 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>java.io.Reader</code> object. 0N/A * <P><B>Note:</B> All the data in the returned stream must 0N/A * be read prior to getting the value of any other column. The 0N/A * next call to a <code>getXXX</code> method implicitly closes the stream. 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 the rowset 0N/A * @return a Java character stream that delivers the database column value 0N/A * as a stream of two-byte unicode characters in a 0N/A * <code>java.io.Reader</code> object. If the value is 0N/A * SQL <code>NULL</code>, the result is <code>null</code>. 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) the designated column does not store an 0N/A * SQL <code>CHAR, VARCHAR, <b>LONGVARCHAR</b>, BINARY, VARBINARY</code> or 0N/A * <code>LONGVARBINARY</code> value. 0N/A * The bold SQL type designates the recommended return type. 0N/A * @see #getCharacterStream(String) 0N/A * Retrieves the value stored in the designated column 0N/A * of the current row as a <code>java.io.Reader</code> object. 0N/A * <P><B>Note:</B> All the data in the returned stream must 0N/A * be read prior to getting the value of any other column. The 0N/A * next call to a <code>getXXX</code> method implicitly closes the stream. 0N/A * @param columnName a <code>String</code> object giving the SQL name of 0N/A * a column in this <code>CachedRowSetImpl</code> object 0N/A * @return a Java input stream that delivers the database column value 0N/A * as a stream of two-byte Unicode characters. If the value is 0N/A * SQL <code>NULL</code>, the result is <code>null</code>. 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>CHAR, VARCHAR, <b>LONGVARCHAR</b>, 0N/A * BINARY, VARYBINARY</code> or <code>LONGVARBINARY</code> value. 0N/A * The bold SQL type designates the recommended return type. 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>java.math.BigDecimal</code> object. 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 the rowset 0N/A * @return a <code>java.math.BigDecimal</code> value with full precision; 0N/A * if the value is SQL <code>NULL</code>, the result is <code>null</code> 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) the designated column does not store an 0N/A * SQL <code>TINYINT, SMALLINT, INTEGER, BIGINT, REAL, 0N/A * FLOAT, DOUBLE, <b>DECIMAL</b>, <b>NUMERIC</b>, BIT, CHAR, VARCHAR</code> 0N/A * or <code>LONGVARCHAR</code> value. The bold SQL type designates the 0N/A * recommended return types that this method is used to retrieve. 0N/A * @see #getBigDecimal(String) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>java.math.BigDecimal</code> object. 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 * @return a <code>java.math.BigDecimal</code> value with full precision; 0N/A * if the value is SQL <code>NULL</code>, the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TINYINT, SMALLINT, INTEGER 0N/A * BIGINT, REAL, FLOAT, DOUBLE, <b>DECIMAL</b>, <b>NUMERIC</b>, BIT CHAR, 0N/A * VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type 0N/A * designates the recommended return type that this method is used to 0N/A * @see #getBigDecimal(int) 0N/A //--------------------------------------------------------------------- 0N/A //--------------------------------------------------------------------- 0N/A * Returns the number of rows in this <code>CachedRowSetImpl</code> object. 0N/A * @return number of rows in the rowset 0N/A * Indicates whether the cursor is before the first row in this 0N/A * <code>CachedRowSetImpl</code> object. 0N/A * @return <code>true</code> if the cursor is before the first row; 0N/A * <code>false</code> otherwise or if the rowset contains no rows 0N/A * @throws SQLException if an error occurs 0N/A * Indicates whether the cursor is after the last row in this 0N/A * <code>CachedRowSetImpl</code> object. 0N/A * @return <code>true</code> if the cursor is after the last row; 0N/A * <code>false</code> otherwise or if the rowset contains no rows 0N/A * @throws SQLException if an error occurs 0N/A * Indicates whether the cursor is on the first row in this 0N/A * <code>CachedRowSetImpl</code> object. 0N/A * @return <code>true</code> if the cursor is on the first row; 0N/A * <code>false</code> otherwise or if the rowset contains no rows 0N/A * @throws SQLException if an error occurs 0N/A * Indicates whether the cursor is on the last row in this 0N/A * <code>CachedRowSetImpl</code> object. 0N/A * Note: Calling the method <code>isLast</code> may be expensive 0N/A * because the JDBC driver might need to fetch ahead one row in order 0N/A * to determine whether the current row is the last row in this rowset. 0N/A * @return <code>true</code> if the cursor is on the last row; 0N/A * <code>false</code> otherwise or if this rowset contains no rows 0N/A * @throws SQLException if an error occurs 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the front of 0N/A * the rowset, just before the first row. This method has no effect if 0N/A * this rowset contains no rows. 0N/A * @throws SQLException if an error occurs or the type of this rowset 0N/A * is <code>ResultSet.TYPE_FORWARD_ONLY</code> 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the end of 0N/A * the rowset, just after the last row. This method has no effect if 0N/A * this rowset contains no rows. 0N/A * @throws SQLException if an error occurs 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the first row 0N/A * and returns <code>true</code> if the operation was successful. This 0N/A * method also notifies registered listeners that the cursor has moved. 0N/A * @return <code>true</code> if the cursor is on a valid row; 0N/A * <code>false</code> otherwise or if there are no rows in this 0N/A * <code>CachedRowSetImpl</code> object 0N/A * @throws SQLException if the type of this rowset 0N/A * is <code>ResultSet.TYPE_FORWARD_ONLY</code> 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the first 0N/A * row and returns <code>true</code> if the operation is successful. 0N/A * This method is called internally by the methods <code>first</code>, 0N/A * <code>isFirst</code>, and <code>absolute</code>. 0N/A * It in turn calls the method <code>internalNext</code> in order to 0N/A * handle the case where the first row is a deleted row that is not visible. 0N/A * This is a implementation only method and is not required as a standard 0N/A * implementation of the <code>CachedRowSet</code> interface. 0N/A * @return <code>true</code> if the cursor moved to the first row; 0N/A * <code>false</code> otherwise 0N/A * @throws SQLException if an error occurs 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the last row 0N/A * and returns <code>true</code> if the operation was successful. This 0N/A * method also notifies registered listeners that the cursor has moved. 0N/A * @return <code>true</code> if the cursor is on a valid row; 0N/A * <code>false</code> otherwise or if there are no rows in this 0N/A * <code>CachedRowSetImpl</code> object 0N/A * @throws SQLException if the type of this rowset 0N/A * is <code>ResultSet.TYPE_FORWARD_ONLY</code> 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the last 0N/A * row and returns <code>true</code> if the operation is successful. 0N/A * This method is called internally by the method <code>last</code> 0N/A * when rows have been deleted and the deletions are not visible. 0N/A * The method <code>internalLast</code> handles the case where the 0N/A * last row is a deleted row that is not visible by in turn calling 0N/A * the method <code>internalPrevious</code>. 0N/A * This is a implementation only method and is not required as a standard 0N/A * implementation of the <code>CachedRowSet</code> interface. 0N/A * @return <code>true</code> if the cursor moved to the last row; 0N/A * <code>false</code> otherwise 0N/A * @throws SQLException if an error occurs 0N/A * Returns the number of the current row in this <code>CachedRowSetImpl</code> 0N/A * object. The first row is number 1, the second number 2, and so on. 0N/A * @return the number of the current row; <code>0</code> if there is no 0N/A * @throws SQLException if an error occurs; or if the <code>CacheRowSetImpl</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 row 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 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 there are no rows in this rowset, the cursor is 0N/A * positioned either before the first row or after the last row, or 0N/A * the rowset is type <code>ResultSet.TYPE_FORWARD_ONLY</code> 0N/A * Moves this <code>CachedRowSetImpl</code> object's cursor to the 0N/A * previous row and returns <code>true</code> if the cursor is on 0N/A * a valid row or <code>false</code> if it is not. 0N/A * This method also notifies all listeners registered with this 0N/A * <code>CachedRowSetImpl</code> object that its cursor has moved. 0N/A * Note: calling the method <code>previous()</code> is not the same 0N/A * as calling the method <code>relative(-1)</code>. This is true 0N/A * because it is possible to call <code>previous()</code> from the insert 0N/A * row, from after the last row, or from the current row, whereas 0N/A * <code>relative</code> may only be called from the current row. 0N/A * The method <code>previous</code> may used in a <code>while</code> 0N/A * loop to iterate through a rowset starting after the last row 0N/A * and moving toward the beginning. The loop ends when <code>previous</code> 0N/A * returns <code>false</code>, meaning that there are no more rows. 0N/A * For example, the following code fragment retrieves all the data in 0N/A * the <code>CachedRowSetImpl</code> object <code>crs</code>, which has 0N/A * three columns. Note that the cursor must initially be positioned 0N/A * after the last row so that the first call to the method 0N/A * <code>previous</code> places the cursor on the last line. 0N/A * while (previous()) { 0N/A * String name = crs.getString(1); 0N/A * int age = crs.getInt(2); 0N/A * short ssn = crs.getShort(3); 0N/A * System.out.println(name + " " + age + " " + ssn); 0N/A * This method throws an <code>SQLException</code> if the cursor is not 0N/A * on a row in the rowset, before the first row, or after the last row. 0N/A * @return <code>true</code> if the cursor is on a valid row; 0N/A * <code>false</code> if it is before the first row or after the 0N/A * @throws SQLException if the cursor is not on a valid position or the 0N/A * type of this rowset is <code>ResultSet.TYPE_FORWARD_ONLY</code> 0N/A * Moves the cursor to the previous row in this <code>CachedRowSetImpl</code> 0N/A * object, skipping past deleted rows that are not visible; returns 0N/A * <code>true</code> if the cursor is on a row in this rowset and 0N/A * <code>false</code> when the cursor goes before the first row. 0N/A * This method is called internally by the method <code>previous</code>. 0N/A * This is a implementation only method and is not required as a standard 0N/A * implementation of the <code>CachedRowSet</code> interface. 0N/A * @return <code>true</code> if the cursor is on a row in this rowset; 0N/A * <code>false</code> when the cursor reaches the position before 0N/A * @throws SQLException if an error occurs 0N/A //--------------------------------------------------------------------- 0N/A //--------------------------------------------------------------------- 0N/A * Indicates whether the current row of this <code>CachedRowSetImpl</code> 0N/A * object has been updated. The value returned 0N/A * depends on whether this rowset can detect updates: <code>false</code> 0N/A * will always be returned if it does not detect updates. 0N/A * @return <code>true</code> if the row has been visibly updated 0N/A * by the owner or another and updates are detected; 0N/A * <code>false</code> otherwise 0N/A * @throws SQLException if the cursor is on the insert row or not 0N/A * not on a valid row 0N/A * @see DatabaseMetaData#updatesAreDetected 0N/A * Indicates whether the designated column of the current row of 0N/A * this <code>CachedRowSetImpl</code> object has been updated. The 0N/A * value returned depends on whether this rowset can detcted updates: 0N/A * <code>false</code> will always be returned if it does not detect updates. 0N/A * @param idx the index identifier of the column that may be have been updated. 0N/A * @return <code>true</code> is the designated column has been updated 0N/A * and the rowset detects updates; <code>false</code> if the rowset has not 0N/A * been updated or the rowset does not detect updates 0N/A * @throws SQLException if the cursor is on the insert row or not 0N/A * @see DatabaseMetaData#updatesAreDetected 0N/A * Indicates whether the designated column of the current row of 0N/A * this <code>CachedRowSetImpl</code> object has been updated. The 0N/A * value returned depends on whether this rowset can detcted updates: 0N/A * <code>false</code> will always be returned if it does not detect updates. 0N/A * @param columnName the <code>String</code> column name column that may be have 0N/A * @return <code>true</code> is the designated column has been updated 0N/A * and the rowset detects updates; <code>false</code> if the rowset has not 0N/A * been updated or the rowset does not detect updates 0N/A * @throws SQLException if the cursor is on the insert row or not 0N/A * @see DatabaseMetaData#updatesAreDetected 0N/A * Indicates whether the current row has been inserted. The value returned 0N/A * depends on whether or not the rowset can detect visible inserts. 0N/A * @return <code>true</code> if a row has been inserted and inserts are detected; 0N/A * <code>false</code> otherwise 0N/A * @throws SQLException if the cursor is on the insert row or not 0N/A * not on a valid row 0N/A * @see DatabaseMetaData#insertsAreDetected 0N/A * Indicates whether the current row has been deleted. A deleted row 0N/A * may leave a visible "hole" in a rowset. This method can be used to 0N/A * detect such holes if the rowset can detect deletions. This method 0N/A * will always return <code>false</code> if this rowset cannot detect 0N/A * @return <code>true</code> if (1)the current row is blank, indicating that 0N/A * the row has been deleted, and (2)deletions are detected; 0N/A * <code>false</code> otherwise 0N/A * @throws SQLException if the cursor is on a valid row in this rowset 0N/A * @see DatabaseMetaData#deletesAreDetected 0N/A * Sets the designated nullable column in the current row or the 0N/A * insert row of this <code>CachedRowSetImpl</code> object with 0N/A * <code>null</code> value. 0N/A * This method updates a column value in the current row or the insert 0N/A * row of this rowset; however, another method must be called to complete 0N/A * the update process. 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 * and to notify listeners that the row has changed. 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 to notify 0N/A * listeners that a row has changed. 0N/A * In order to propagate updates in this rowset to the underlying 0N/A * data source, an application must call the method {@link #acceptChanges} 0N/A * after it calls either <code>updateRow</code> or <code>insertRow</code>. 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 * @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 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 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 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 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 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 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 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 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 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>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>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>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>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 * 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 * <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.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>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. 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 nullable column in the current row or the 0N/A * insert row of this <code>CachedRowSetImpl</code> object with 0N/A * <code>null</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 * @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 * @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 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 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 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>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>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 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 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 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 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 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 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 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 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 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.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>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>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 * 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 * 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> 0N/A * Marks the current row of this <code>CachedRowSetImpl</code> object as 0N/A * updated and notifies listeners registered with this rowset that the 0N/A * This method cannot be called when the cursor is on the insert row, and 0N/A * it should be called before the cursor moves to another row. If it is 0N/A * called after the cursor moves to another row, this method has no effect, 0N/A * and the updates made before the cursor moved will be lost. 0N/A * @throws SQLException if the cursor is on the insert row or this 0N/A * rowset is <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Deletes the current row from this <code>CachedRowSetImpl</code> object and 0N/A * notifies listeners registered with this rowset that a row has changed. 0N/A * This method cannot be called when the cursor is on the insert row. 0N/A * This method marks the current row as deleted, but it does not delete 0N/A * the row from the underlying data source. The method 0N/A * <code>acceptChanges</code> must be called to delete the row in 0N/A * @throws SQLException if (1) this method is called when the cursor 0N/A * is on the insert row, before the first row, or after the 0N/A * last row or (2) this rowset is 0N/A * <code>ResultSet.CONCUR_READ_ONLY</code> 0N/A * Sets the current row with its original value and marks the row as 0N/A * not updated, thus undoing any changes made to the row since the 0N/A * last call to the methods <code>updateRow</code> or <code>deleteRow</code>. 0N/A * This method should be called only when the cursor is on a row in 0N/A * @throws SQLException if the cursor is on the insert row, before the 0N/A * first row, or after the last row 0N/A * Rolls back any updates made to the current row of this 0N/A * <code>CachedRowSetImpl</code> object and notifies listeners that 0N/A * a row has changed. To have an effect, this method 0N/A * must be called after an <code>updateXXX</code> method has been 0N/A * called and before the method <code>updateRow</code> has been called. 0N/A * If no updates have been made or the method <code>updateRow</code> 0N/A * has already been called, this method has no effect. 0N/A * @throws SQLException if the cursor is on the insert row, before the 0N/A * first row, or after the last row 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 * Moves the cursor for this <code>CachedRowSetImpl</code> object to 0N/A * the current row. The current row is the row the cursor was on 0N/A * when the method <code>moveToInsertRow</code> was called. 0N/A * Calling this method has no effect unless it is called while the 0N/A * cursor is on the insert row. 0N/A * @throws SQLException if an error occurs 0N/A * Returns <code>null</code>. 0N/A * @return <code>null</code> 0N/A * @throws SQLException if an error occurs 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as an <code>Object</code> in 0N/A * the Java programming language, using the given 0N/A * <code>java.util.Map</code> object to custom map the value if 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 map a <code>java.util.Map</code> object showing the mapping 0N/A * from SQL type names to classes in the Java programming 0N/A * @return an <code>Object</code> representing the SQL 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 * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as a <code>Ref</code> object 0N/A * in the Java programming language. 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 * @return a <code>Ref</code> object representing an SQL<code> REF</code> 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) the designated column does not store an 0N/A * SQL <code>REF</code> value 0N/A * @see #getRef(String) 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as a <code>Blob</code> object 0N/A * in the Java programming language. 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 * @return a <code>Blob</code> object representing an SQL <code>BLOB</code> 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) the designated column does not store an 0N/A * SQL <code>BLOB</code> value 0N/A * @see #getBlob(String) 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as a <code>Clob</code> object 0N/A * in the Java programming language. 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 * @return a <code>Clob</code> object representing an SQL <code>CLOB</code> 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) the designated column does not store an 0N/A * SQL <code>CLOB</code> value 0N/A * @see #getClob(String) 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as an <code>Array</code> object 0N/A * in the Java programming language. 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 * @return an <code>Array</code> object representing an SQL 0N/A * <code>ARRAY</code> 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) the designated column does not store an 0N/A * SQL <code>ARRAY</code> value 0N/A * @see #getArray(String) 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as an <code>Object</code> in 0N/A * the Java programming language, using the given 0N/A * <code>java.util.Map</code> object to custom map the value if 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 map a <code>java.util.Map</code> object showing the mapping 0N/A * from SQL type names to classes in the Java programming 0N/A * @return an <code>Object</code> representing the SQL value 0N/A * @throws SQLException if the given column name is not the name of 0N/A * a column in this rowset or the cursor is not on one of 0N/A * this rowset's rows or its insert row 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as a <code>Ref</code> object 0N/A * in the Java programming language. 0N/A * @param colName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @return a <code>Ref</code> object representing an SQL<code> REF</code> value 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the column value 0N/A * is not an SQL <code>REF</code> value 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as a <code>Blob</code> object 0N/A * in the Java programming language. 0N/A * @param colName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @return a <code>Blob</code> object representing an SQL <code>BLOB</code> value 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>BLOB</code> value 0N/A * @see #getBlob(int) 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as a <code>Clob</code> object 0N/A * in the Java programming language. 0N/A * @param colName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @return a <code>Clob</code> object representing an SQL 0N/A * <code>CLOB</code> value 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>CLOB</code> value 0N/A * @see #getClob(int) 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as an <code>Array</code> object 0N/A * in the Java programming langugage. 0N/A * @param colName a <code>String</code> object that must match the 0N/A * SQL name of a column in this rowset, ignoring case 0N/A * @return an <code>Array</code> object representing an SQL 0N/A * <code>ARRAY</code> value 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>ARRAY</code> value 0N/A * @see #getArray(int) 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Date</code> 0N/A * object, using the given <code>Calendar</code> object to construct an 0N/A * appropriate millisecond value for the date. 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 the rowset 0N/A * @param cal the <code>java.util.Calendar</code> object to use in 0N/A * constructing the date 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>DATE</code> or 0N/A * <code>TIMESTAMP</code> value 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Date</code> 0N/A * object, using the given <code>Calendar</code> object to construct an 0N/A * appropriate millisecond value for the date. 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 cal the <code>java.util.Calendar</code> object to use in 0N/A * constructing the date 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>DATE</code> or 0N/A * <code>TIMESTAMP</code> value 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Time</code> 0N/A * object, using the given <code>Calendar</code> object to construct an 0N/A * appropriate millisecond value for the date. 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 the rowset 0N/A * @param cal the <code>java.util.Calendar</code> object to use in 0N/A * constructing the date 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TIME</code> or 0N/A * <code>TIMESTAMP</code> value 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Time</code> 0N/A * object, using the given <code>Calendar</code> object to construct an 0N/A * appropriate millisecond value for the date. 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 cal the <code>java.util.Calendar</code> object to use in 0N/A * constructing the date 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TIME</code> or 0N/A * <code>TIMESTAMP</code> value 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Timestamp</code> 0N/A * object, using the given <code>Calendar</code> object to construct an 0N/A * appropriate millisecond value for the date. 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 the rowset 0N/A * @param cal the <code>java.util.Calendar</code> object to use in 0N/A * constructing the date 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>TIME</code> or 0N/A * <code>TIMESTAMP</code> value 0N/A * Retrieves the value of the designated column in the current row 0N/A * of this <code>CachedRowSetImpl</code> object as a 0N/A * <code>java.sql.Timestamp</code> object, using the given 0N/A * <code>Calendar</code> object to construct an appropriate 0N/A * millisecond value for the date. 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 cal the <code>java.util.Calendar</code> object to use in 0N/A * constructing the date 0N/A * @return the column value; if the value is SQL <code>NULL</code>, 0N/A * the result is <code>null</code> 0N/A * @throws SQLException if (1) the given column name is not the name of 0N/A * a column in this rowset, (2) the cursor is not on one of 0N/A * this rowset's rows or its insert row, or (3) the designated 0N/A * column does not store an SQL <code>DATE</code>, 0N/A * <code>TIME</code>, or <code>TIMESTAMP</code> value 0N/A * RowSetInternal Interface 0N/A * Retrieves the <code>Connection</code> object passed to this 0N/A * <code>CachedRowSetImpl</code> object. This connection may be 0N/A * used to populate this rowset with data or to write data back 0N/A * to its underlying data source. 0N/A * @return the <code>Connection</code> object passed to this rowset; 0N/A * may be <code>null</code> if there is no connection 0N/A * @throws SQLException if an error occurs 0N/A * Sets the metadata for this <code>CachedRowSetImpl</code> object 0N/A * with the given <code>RowSetMetaData</code> object. 0N/A * @param md a <code>RowSetMetaData</code> object instance containing 0N/A * metadata about the columsn in the rowset 0N/A * @throws SQLException if invalid meta data is supplied to the 0N/A * Returns a result set containing the original value of the rowset. The 0N/A * original value is the state of the <code>CachedRowSetImpl</code> after the 0N/A * last population or synchronization (whichever occured most recently) with 0N/A * The cursor is positioned before the first row in the result set. 0N/A * Only rows contained in the result set returned by <code>getOriginal()</code> 0N/A * are said to have an original value. 0N/A * @return the original result set of the rowset 0N/A * @throws SQLException if an error occurs produce the 0N/A * <code>ResultSet</code> object 0N/A * Returns a result set containing the original value of the current 0N/A * The original value is the state of the <code>CachedRowSetImpl</code> after 0N/A * the last population or synchronization (whichever occured most recently) 0N/A * with the data source. 0N/A * @return the original result set of the row 0N/A * @throws SQLException if there is no current row 0N/A * @see #setOriginalRow 0N/A * Marks the current row in this rowset as being an original row. 0N/A * @throws SQLException if there is no current row 0N/A * @see #getOriginalRow 0N/A * Marks all rows in this rowset as being original rows. Any updates 0N/A * made to the rows become the original values for the rowset. 0N/A * Calls to the method <code>setOriginal</code> connot be reversed. 0N/A * @throws SQLException if an error occurs 0N/A * Returns an identifier for the object (table) that was used to create this 0N/A * @return a <code>String</code> object that identifies the table from 0N/A * which this <code>CachedRowSetImpl</code> object was derived 0N/A * @throws SQLException if an error occurs 0N/A * Sets the identifier for the table from which this rowset was derived 0N/A * to the given table name. 0N/A * @param tabName a <code>String</code> object that identifies the 0N/A * table from which this <code>CachedRowSetImpl</code> object 0N/A * @throws SQLException if an error occurs 0N/A * Returns the columns that make a key to uniquely identify a 0N/A * row in this <code>CachedRowSetImpl</code> object. 0N/A * @return an array of column numbers that constitutes a primary 0N/A * key for this rowset. This array should be empty 0N/A * if no column is representitive of a primary key 0N/A * @throws SQLException if the rowset is empty or no columns 0N/A * are designated as primary keys 0N/A * @see #setKeyColumns 0N/A * Sets this <code>CachedRowSetImpl</code> object's 0N/A * <code>keyCols</code> field with the given array of column 0N/A * numbers, which forms a key for uniquely identifying a row 0N/A * @param keys an array of <code>int</code> indicating the 0N/A * columns that form a primary key for this 0N/A * <code>CachedRowSetImpl</code> object; every 0N/A * element in the array must be greater than 0N/A * <code>0</code> and less than or equal to the number 0N/A * of columns in this rowset 0N/A * @throws SQLException if any of the numbers in the 0N/A * given array is not valid for this rowset 0N/A * @see #getKeyColumns 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 ref the new column <code>java.sql.Ref</code> 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 ref the new column <code>java.sql.Ref</code> 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 c the new column <code>Clob 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 c the new column <code>Clob</code>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.sql.Blob</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 b the new column <code>Blob</code> 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.sql.Blob </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 b the new column <code>Blob</code> 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.sql.Array</code> values. 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 a the new column <code>Array</code> 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.sql.Array</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 a the new column <code>Array</code> 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 * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as a <code>java.net.URL</code> object 0N/A * in the Java programming language. 0N/A * @return a java.net.URL object containing the resource reference described by 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) the designated column does not store an 0N/A * SQL <code>DATALINK</code> value. 0N/A * @see #getURL(String) 0N/A * Retrieves the value of the designated column in this 0N/A * <code>CachedRowSetImpl</code> object as a <code>java.net.URL</code> object 0N/A * in the Java programming language. 0N/A * @return a java.net.URL object containing the resource reference described by 0N/A * @throws SQLException if (1) the given column name not the name of a column 0N/A * in this rowset, or 0N/A * (2) the cursor is not on one of this rowset's rows or its 0N/A * insert row, or (3) the designated column does not store an 0N/A * SQL <code>DATALINK</code> value. 0N/A * The first warning reported by calls on this <code>CachedRowSetImpl</code> 0N/A * object is returned. Subsequent <code>CachedRowSetImpl</code> warnings will 0N/A * be chained to this <code>SQLWarning</code>. All <code>RowSetWarnings</code> 0N/A * warnings are generated in the disconnected environment and remain a 0N/A * seperate warning chain to that provided by the <code>getWarnings</code> 0N/A * <P>The warning chain is automatically cleared each time a new 0N/A * <P><B>Note:</B> This warning chain only covers warnings caused 0N/A * by <code>CachedRowSet</code> (and their child interface) 0N/A * methods. All <code>SQLWarnings</code> can be obtained using the 0N/A * <code>getWarnings</code> method which tracks warnings generated 0N/A * by the underlying JDBC driver. 0N/A * @return the first SQLWarning or null 0N/A * Commits all changes performed by the <code>acceptChanges()</code> 0N/A * @see java.sql.Connection#commit 0N/A * Rolls back all changes performed by the <code>acceptChanges()</code> 0N/A * @see java.sql.Connection#rollback 0N/A * Rolls back all changes performed by the <code>acceptChanges()</code> 0N/A * to the last <code>Savepoint</code> transaction marker. 0N/A * @see java.sql.Connection#rollback(Savepoint) 0N/A * Unsets the designated parameter to the given int array. 0N/A * This was set using <code>setMatchColumn</code> 0N/A * as the column which will form the basis of the join. 0N/A * The parameter value unset by this method should be same 0N/A * @param columnIdxes the index into this rowset 0N/A * object's internal representation of parameter values 0N/A * @throws SQLException if an error occurs or the 0N/A * parameter index is out of bounds or if the columnIdx is 0N/A * not the same as set using <code>setMatchColumn(int [])</code> 0N/A * Unsets the designated parameter to the given String array. 0N/A * This was set using <code>setMatchColumn</code> 0N/A * as the column which will form the basis of the join. 0N/A * The parameter value unset by this method should be same 0N/A * @param columnIdxes the index into this rowset 0N/A * object's internal representation of parameter values 0N/A * @throws SQLException if an error occurs or the 0N/A * parameter index is out of bounds or if the columnName is 0N/A * not the same as set using <code>setMatchColumn(String [])</code> 0N/A * Retrieves the column name as <code>String</code> array 0N/A * that was set using <code>setMatchColumn(String [])</code> 0N/A * @return a <code>String</code> array object that contains the column names 0N/A * for the rowset which has this the match columns 0N/A * @throws SQLException if an error occurs or column name is not set 0N/A * Retrieves the column id as <code>int</code> array that was set using 0N/A * <code>setMatchColumn(int [])</code> for this rowset. 0N/A * @return a <code>int</code> array object that contains the column ids 0N/A * for the rowset which has this as the match columns. 0N/A * @throws SQLException if an error occurs or column index is not set 0N/A * Sets the designated parameter to the given int array. 0N/A * This forms the basis of the join for the 0N/A * <code>JoinRowSet</code> as the column which will form the basis of the 0N/A * The parameter value set by this method is stored internally and 0N/A * will be supplied as the appropriate parameter in this rowset's 0N/A * command when the method <code>getMatchColumnIndexes</code> is called. 0N/A * @param columnIdxes the indexes into this rowset 0N/A * object's internal representation of parameter values; the 0N/A * first parameter is 0, the second is 1, and so on; must be 0N/A * <code>0</code> or greater 0N/A * @throws SQLException if an error occurs or the 0N/A * parameter index is out of bounds 0N/A * Sets the designated parameter to the given String array. 0N/A * This forms the basis of the join for the 0N/A * <code>JoinRowSet</code> as the column which will form the basis of the 0N/A * The parameter value set by this method is stored internally and 0N/A * will be supplied as the appropriate parameter in this rowset's 0N/A * command when the method <code>getMatchColumn</code> is called. 0N/A * @param columnNames the name of the column into this rowset 0N/A * object's internal representation of parameter values 0N/A * @throws SQLException if an error occurs or the 0N/A * parameter index is out of bounds 0N/A * Sets the designated parameter to the given <code>int</code> 0N/A * object. This forms the basis of the join for the 0N/A * <code>JoinRowSet</code> as the column which will form the basis of the 0N/A * The parameter value set by this method is stored internally and 0N/A * will be supplied as the appropriate parameter in this rowset's 0N/A * command when the method <code>getMatchColumn</code> is called. 0N/A * @param columnIdx the index into this rowset 0N/A * object's internal representation of parameter values; the 0N/A * first parameter is 0, the second is 1, and so on; must be 0N/A * <code>0</code> or greater 0N/A * @throws SQLException if an error occurs or the 0N/A * parameter index is out of bounds 0N/A * Sets the designated parameter to the given <code>String</code> 0N/A * object. This forms the basis of the join for the 0N/A * <code>JoinRowSet</code> as the column which will form the basis of the 0N/A * The parameter value set by this method is stored internally and 0N/A * will be supplied as the appropriate parameter in this rowset's 0N/A * command when the method <code>getMatchColumn</code> is called. 0N/A * @param columnName the name of the column into this rowset 0N/A * object's internal representation of parameter values 0N/A * @throws SQLException if an error occurs or the 0N/A * parameter index is out of bounds 0N/A * Unsets the designated parameter to the given <code>int</code> 0N/A * object. This was set using <code>setMatchColumn</code> 0N/A * as the column which will form the basis of the join. 0N/A * The parameter value unset by this method should be same 0N/A * @param columnIdx the index into this rowset 0N/A * object's internal representation of parameter values 0N/A * @throws SQLException if an error occurs or the 0N/A * parameter index is out of bounds or if the columnIdx is 0N/A * not the same as set using <code>setMatchColumn(int)</code> 0N/A * Unsets the designated parameter to the given <code>String</code> 0N/A * object. This was set using <code>setMatchColumn</code> 0N/A * as the column which will form the basis of the join. 0N/A * The parameter value unset by this method should be same 0N/A * @param columnName the index into this rowset 0N/A * object's internal representation of parameter values 0N/A * @throws SQLException if an error occurs or the 0N/A * parameter index is out of bounds or if the columnName is 0N/A * not the same as set using <code>setMatchColumn(String)</code> 0N/A * Notifies registered listeners that a RowSet object in the given RowSetEvent 0N/A * object has populated a number of additional rows. The <code>numRows</code> parameter 0N/A * ensures that this event will only be fired every <code>numRow</code>. 0N/A * The source of the event can be retrieved with the method event.getSource. 0N/A * @param event a <code>RowSetEvent</code> object that contains the 0N/A * <code>RowSet</code> object that is the source of the events 0N/A * @param numRows when populating, the number of rows interval on which the 0N/A * <code>CachedRowSet</code> populated should fire; the default value 0N/A * is zero; cannot be less than <code>fetchSize</code> or zero 0N/A * Populates this <code>CachedRowSet</code> object with data from 0N/A * the given <code>ResultSet</code> object. While related to the <code>populate(ResultSet)</code> 0N/A * method, an additional parameter is provided to allow starting position within 0N/A * the <code>ResultSet</code> from where to populate the CachedRowSet 0N/A * This method is an alternative to the method <code>execute</code> 0N/A * for filling the rowset with data. The method <code>populate</code> 0N/A * does not require that the properties needed by the method 0N/A * <code>execute</code>, such as the <code>command</code> property, 0N/A * be set. This is true because the method <code>populate</code> 0N/A * is given the <code>ResultSet</code> object from 0N/A * which to get data and thus does not need to use the properties 0N/A * required for setting up a connection and executing this 0N/A * <code>CachedRowSetImpl</code> object's command. 0N/A * After populating this rowset with data, the method 0N/A * <code>populate</code> sets the rowset's metadata and 0N/A * then sends a <code>RowSetChangedEvent</code> object 0N/A * to all registered listeners prior to returning. 0N/A * @param data the <code>ResultSet</code> object containing the data 0N/A * to be read into this <code>CachedRowSetImpl</code> object 0N/A * @param start the integer specifing the position in the 0N/A * <code>ResultSet</code> object to popultate the 0N/A * <code>CachedRowSetImpl</code> object. 0N/A * @throws SQLException if an error occurs; or the max row setting is 0N/A * violated while populating the RowSet.Also id the start position 0N/A * The nextPage gets the next page, that is a <code>CachedRowSetImpl</code> object 0N/A * containing the number of rows specified by page size. 0N/A * @return boolean value true indicating whether there are more pages to come and 0N/A * false indicating that this is the last page. 0N/A * @throws SQLException if an error occurs or this called before calling populate. 0N/A * This is the setter function for setting the size of the page, which specifies 0N/A * how many rows have to be retrived at a time. 0N/A * @param size which is the page size 0N/A * @throws SQLException if size is less than zero or greater than max rows. 0N/A * This is the getter function for the size of the page. 0N/A * @return an integer that is the page size. 0N/A * Retrieves the data present in the page prior to the page from where it is 0N/A * @return boolean value true if it retrieves the previous page, flase if it 0N/A * is on the first page. 0N/A * @throws SQLException if it is called before populate is called or ResultSet 0N/A * is of type <code>ResultSet.TYPE_FORWARD_ONLY</code> or if an error 0N/A * Updates the designated column with a character stream value, which will 0N/A * have the specified number of bytes. The driver does the necessary conversion 0N/A * from Java character format to the national character set in the database. 0N/A * It is intended for use when updating NCHAR,NVARCHAR and LONGNVARCHAR columns. 0N/A * The updater methods are used to update column values in the current row or 0N/A * the insert row. The updater methods do not update the underlying database; 0N/A * instead the updateRow or insertRow methods are called to update the database. 0N/A * @param columnIndex - the first column is 1, the second is 2, ... 0N/A * @param x - the new column value 0N/A * @param length - the length of the stream 0N/A * @exception SQLException if a database access error occurs 0N/A * Updates the designated column with a character stream value, which will 0N/A * have the specified number of bytes. The driver does the necessary conversion 0N/A * from Java character format to the national character set in the database. 0N/A * It is intended for use when updating NCHAR,NVARCHAR and LONGNVARCHAR columns. 0N/A * The updater methods are used to update column values in the current row or 0N/A * the insert row. The updater methods do not update the underlying database; 0N/A * instead the updateRow or insertRow methods are called to update the database. 0N/A * @param columnName - name of the Column 0N/A * @param x - the new column value 0N/A * @param length - the length of the stream 0N/A * @exception SQLException if a database access error occurs 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 .