* this rowset's rows or its insert row */ public java.sql.Timestamp getTimestamp(String columnName) throws SQLException { return crsInternal.getTimestamp(columnName); } /** * This method is not supported, and it will throw an * <code>UnsupportedOperationException</code> if it is called. * <P> * A column value can be retrieved as a stream of ASCII characters * and then read in chunks from the stream. This method is particularly * suitable for retrieving large LONGVARCHAR values. The JDBC driver will * do any necessary conversion from the database format into ASCII format. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a <code>getXXX</code> method implicitly closes the stream. * * @param columnName a <code>String</code> object giving the SQL name of * a column in this <code>JoinRowSetImpl</code> object * @return a Java input stream that delivers the database column value * as a stream of one-byte ASCII characters. If the value is SQL * <code>NULL</code>, the result is <code>null</code>. * @throws UnsupportedOperationException if this method is called */ public java.io.InputStream getAsciiStream(String columnName) throws SQLException { return crsInternal.getAsciiStream(columnName); } /** * Retrieves the value stored in the designated column * of the current row as a <code>java.io.InputStream</code> object. * A column value can be retrieved as a stream of Unicode characters * and then read in chunks from the stream. This method is particularly * suitable for retrieving large <code>LONGVARCHAR</code> values. * The JDBC driver will do any necessary conversion from the database * format into Unicode. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a <code>getXXX</code> method implicitly closes the stream. * * @param columnName a <code>String</code> object giving the SQL name of * a column in this <code>JoinRowSetImpl</code> object * @return a Java input stream that delivers the database column value * as a stream of two-byte Unicode characters. If the value is * SQL <code>NULL</code>, the result is <code>null</code>. * @throws SQLException if the given column name does not match one of * this rowset's column names or the cursor is not on one of * this rowset's rows or its insert row * @deprecated use the method <code>getCharacterStream</code> instead */ public java.io.InputStream getUnicodeStream(String columnName) throws SQLException { return crsInternal.getUnicodeStream(columnName); } /** * Retrieves the value stored in the designated column * of the current row as a <code>java.io.InputStream</code> object. * A column value can be retrieved as a stream of uninterpreted bytes * and then read in chunks from the stream. This method is particularly * suitable for retrieving large <code>LONGVARBINARY</code> values. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a get method implicitly closes the stream. * * @param columnName a <code>String</code> object giving the SQL name of * a column in this <code>JoinRowSetImpl</code> object * @return a Java input stream that delivers the database column value * as a stream of uninterpreted bytes. If the value is SQL * <code>NULL</code>, the result is <code>null</code>. * @throws SQLException if the given column name does not match one of * this rowset's column names or the cursor is not on one of * this rowset's rows or its insert row */ public java.io.InputStream getBinaryStream(String columnName) throws SQLException { return crsInternal.getBinaryStream(columnName); } /* The first warning reported by calls on this <code>JoinRowSetImpl</code> * object is returned. Subsequent <code>JoinRowSetImpl</code> warnings will * be chained to this <code>SQLWarning</code>. * * <P>The warning chain is automatically cleared each time a new * row is read. * * <P><B>Note:</B> This warning chain only covers warnings caused * by <code>ResultSet</code> methods. Any warning caused by statement * methods (such as reading OUT parameters) will be chained on the * <code>Statement</code> object. * * @return the first SQLWarning or null * @throws UnsupportedOperationException if this method is called */ public SQLWarning getWarnings() { return crsInternal.getWarnings(); } /** * Throws an <code>UnsupportedOperationException</code> if called. * <P> * After a call to this method, the <code>getWarnings</code> method * returns <code>null</code> until a new warning is reported for this * <code>JoinRowSetImpl</code> object. * * @throws UnsupportedOperationException if this method is called */ public void clearWarnings() { crsInternal.clearWarnings(); } /** * Retrieves the name of the SQL cursor used by this * <code>JoinRowSetImpl</code> object. * * <P>In SQL, a result table is retrieved through a cursor that is * named. The current row of a result can be updated or deleted * using a positioned update/delete statement that references the * cursor name. To insure that the cursor has the proper isolation * level to support an update operation, the cursor's <code>SELECT</code> * statement should be of the form 'select for update'. If the 'for update' * clause is omitted, positioned updates may fail. * * <P>JDBC supports this SQL feature by providing the name of the * SQL cursor used by a <code>ResultSet</code> object. The current row * of a result set is also the current row of this SQL cursor. * * <P><B>Note:</B> If positioned updates are not supported, an * <code>SQLException</code> is thrown. * * @return the SQL cursor name for this <code>JoinRowSetImpl</code> object's * cursor * @throws SQLException if an error occurs */ public String getCursorName() throws SQLException { return crsInternal.getCursorName(); } /** * Retrieves the <code>ResultSetMetaData</code> object that contains * information about this <code>CachedRowsSet</code> object. The * information includes the number of columns, the data type for each * column, and other properties for each column. * * @return the <code>ResultSetMetaData</code> object that describes this * <code>JoinRowSetImpl</code> object's columns * @throws SQLException if an error occurs */ public ResultSetMetaData getMetaData() throws SQLException { return crsInternal.getMetaData(); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as an * <code>Object</code> value. * <P> * The type of the <code>Object</code> will be the default * Java object type corresponding to the column's SQL type, * following the mapping for built-in types specified in the JDBC * specification. * <P> * This method may also be used to read datatabase-specific * abstract data types. * <P> * This implementation of the method <code>getObject</code> extends its * behavior so that it gets the attributes of an SQL structured type as * as an array of <code>Object</code> values. This method also custom * maps SQL user-defined types to classes in the Java programming language. * When the specified column contains * a structured or distinct value, the behavior of this method is as * if it were a call to the method <code>getObject(columnIndex, * this.getStatement().getConnection().getTypeMap())</code>. * * @param columnIndex the first column is <code>1</code>, the second * is <code>2</code>, and so on; must be <code>1</code> or larger * and equal to or less than the number of columns in the rowset * @return a <code>java.lang.Object</code> holding the column value; * if the value is SQL <code>NULL</code>, the result is <code>null</code> * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or there is a problem getting * the <code>Class</code> object for a custom mapping * @since 1.2 */ public Object getObject(int columnIndex) throws SQLException { return crsInternal.getObject(columnIndex); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as an * <code>Object</code> value. * <P> * The type of the <code>Object</code> will be the default * Java object type corresponding to the column's SQL type, * following the mapping for built-in types specified in the JDBC * specification. * <P> * This method may also be used to read datatabase-specific * abstract data types. * <P> * This implementation of the method <code>getObject</code> extends its * behavior so that it gets the attributes of an SQL structured type as * as an array of <code>Object</code> values. This method also custom * maps SQL user-defined types to classes * in the Java programming language. When the specified column contains * a structured or distinct value, the behavior of this method is as * if it were a call to the method <code>getObject(columnIndex, * this.getStatement().getConnection().getTypeMap())</code>. * * @param columnIndex the first column is <code>1</code>, the second * is <code>2</code>, and so on; must be <code>1</code> or larger * and equal to or less than the number of columns in the rowset * @param map a <code>java.util.Map</code> object showing the mapping * from SQL type names to classes in the Java programming * language * @return a <code>java.lang.Object</code> holding the column value; * if the value is SQL <code>NULL</code>, the result is * <code>null</code> * @throws SQLException if (1) the given column name does not match * one of this rowset's column names, (2) the cursor is not * on a valid row, or (3) there is a problem getting * the <code>Class</code> object for a custom mapping */ public Object getObject(int columnIndex, java.util.Map<String,Class<?>> map) throws SQLException { return crsInternal.getObject(columnIndex, map); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as an * <code>Object</code> value. * <P> * The type of the <code>Object</code> will be the default * Java object type corresponding to the column's SQL type, * following the mapping for built-in types specified in the JDBC * specification. * <P> * This method may also be used to read datatabase-specific * abstract data types. * <P> * This implementation of the method <code>getObject</code> extends its * behavior so that it gets the attributes of an SQL structured type as * as an array of <code>Object</code> values. This method also custom * maps SQL user-defined types to classes * in the Java programming language. When the specified column contains * a structured or distinct value, the behavior of this method is as * if it were a call to the method <code>getObject(columnIndex, * this.getStatement().getConnection().getTypeMap())</code>. * * @param columnName a <code>String</code> object that must match the * SQL name of a column in this rowset, ignoring case * @return a <code>java.lang.Object</code> holding the column value; * if the value is SQL <code>NULL</code>, the result is * <code>null</code> * @throws SQLException if (1) the given column name does not match * one of this rowset's column names, (2) the cursor is not * on a valid row, or (3) there is a problem getting * the <code>Class</code> object for a custom mapping */ public Object getObject(String columnName) throws SQLException { return crsInternal.getObject(columnName); } /** * Retrieves the value of the designated column in this * <code>JoinRowSetImpl</code> object as an <code>Object</code> in * the Java programming lanugage, using the given * <code>java.util.Map</code> object to custom map the value if * appropriate. * * @param columnName a <code>String</code> object that must match the * SQL name of a column in this rowset, ignoring case * @param map a <code>java.util.Map</code> object showing the mapping * from SQL type names to classes in the Java programming * language * @return an <code>Object</code> representing the SQL value * @throws SQLException if the given column index is out of bounds or * the cursor is not on one of this rowset's rows or its * insert row */ public Object getObject(String columnName, java.util.Map<String,Class<?>> map) throws SQLException { return crsInternal.getObject(columnName, map); } /** * Retrieves the value stored in the designated column * of the current row as a <code>java.io.Reader</code> object. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a <code>getXXX</code> method implicitly closes the stream. * * @param columnIndex the first column is <code>1</code>, the second * is <code>2</code>, and so on; must be <code>1</code> or larger * and equal to or less than the number of columns in the rowset * @return a Java character stream that delivers the database column value * as a <code>java.io.Reader</code> object. If the value is * SQL <code>NULL</code>, the result is <code>null</code>. * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or there is a type mismatch */ public java.io.Reader getCharacterStream(int columnIndex) throws SQLException { return crsInternal.getCharacterStream(columnIndex); } /** * Retrieves the value stored in the designated column * of the current row as a <code>java.io.Reader</code> object. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a <code>getXXX</code> method implicitly closes the stream. * * @param columnName a <code>String</code> object giving the SQL name of * a column in this <code>JoinRowSetImpl</code> object * @return a Java input stream that delivers the database column value * as a stream of two-byte Unicode characters. If the value is * SQL <code>NULL</code>, the result is <code>null</code>. * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or there is a type mismatch */ public java.io.Reader getCharacterStream(String columnName) throws SQLException { return crsInternal.getCharacterStream(columnName); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as a * <code>java.math.BigDecimal</code> object. * * @param columnIndex the first column is <code>1</code>, the second * is <code>2</code>, and so on; must be <code>1</code> or larger * and equal to or less than the number of columns in the rowset * @return a <code>java.math.BigDecimal</code> value with full precision; * if the value is SQL <code>NULL</code>, the result is <code>null</code> * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or this method fails */ public BigDecimal getBigDecimal(int columnIndex) throws SQLException { return crsInternal.getBigDecimal(columnIndex); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as a * <code>java.math.BigDecimal</code> object. * * @param columnName a <code>String</code> object that must match the * SQL name of a column in this rowset, ignoring case * @return a <code>java.math.BigDecimal</code> value with full precision; * if the value is SQL <code>NULL</code>, the result is <code>null</code> * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or this method fails */ public BigDecimal getBigDecimal(String columnName) throws SQLException { return crsInternal.getBigDecimal(columnName); } /** * Returns the number of rows in this <code>JoinRowSetImpl</code> object. * * @return number of rows in the rowset */ public int size() { return crsInternal.size(); } /** * Indicates whether the cursor is before the first row in this * <code>JoinRowSetImpl</code> object. * * @return <code>true</code> if the cursor is before the first row; * <code>false</code> otherwise or if the rowset contains no rows * @throws SQLException if an error occurs */ public boolean isBeforeFirst() throws SQLException { return crsInternal.isBeforeFirst(); } /** * Indicates whether the cursor is after the last row in this * <code>JoinRowSetImpl</code> object. * * @return <code>true</code> if the cursor is after the last row; * <code>false</code> otherwise or if the rowset contains no rows * @throws SQLException if an error occurs */ public boolean isAfterLast() throws SQLException { return crsInternal.isAfterLast(); } /** * Indicates whether the cursor is on the first row in this * <code>JoinRowSetImpl</code> object. * * @return <code>true</code> if the cursor is on the first row; * <code>false</code> otherwise or if the rowset contains no rows * @throws SQLException if an error occurs */ public boolean isFirst() throws SQLException { return crsInternal.isFirst(); } /** * Indicates whether the cursor is on the last row in this * <code>JoinRowSetImpl</code> object. * <P> * Note: Calling the method <code>isLast</code> may be expensive * because the JDBC driver might need to fetch ahead one row in order * to determine whether the current row is the last row in this rowset. * * @return <code>true</code> if the cursor is on the last row; * <code>false</code> otherwise or if this rowset contains no rows * @throws SQLException if an error occurs */ public boolean isLast() throws SQLException { return crsInternal.isLast(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the front of * the rowset, just before the first row. This method has no effect if * this rowset contains no rows. * * @throws SQLException if an error occurs or the type of this rowset * is <code>ResultSet.TYPE_FORWARD_ONLY</code> */ public void beforeFirst() throws SQLException { crsInternal.beforeFirst(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the end of * the rowset, just after the last row. This method has no effect if * this rowset contains no rows. * * @throws SQLException if an error occurs */ public void afterLast() throws SQLException { crsInternal.afterLast(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the first row * and returns <code>true</code> if the operation was successful. This * method also notifies registered listeners that the cursor has moved. * * @return <code>true</code> if the cursor is on a valid row; * <code>false</code> otherwise or if there are no rows in this * <code>JoinRowSetImpl</code> object * @throws SQLException if the type of this rowset * is <code>ResultSet.TYPE_FORWARD_ONLY</code> */ public boolean first() throws SQLException { return crsInternal.first(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the last row * and returns <code>true</code> if the operation was successful. This * method also notifies registered listeners that the cursor has moved. * * @return <code>true</code> if the cursor is on a valid row; * <code>false</code> otherwise or if there are no rows in this * <code>JoinRowSetImpl</code> object * @throws SQLException if the type of this rowset * is <code>ResultSet.TYPE_FORWARD_ONLY</code> */ public boolean last() throws SQLException { return crsInternal.last(); } /** * Returns the number of the current row in this <code>JoinRowSetImpl</code> * object. The first row is number 1, the second number 2, and so on. * * @return the number of the current row; <code>0</code> if there is no * current row * @throws SQLException if an error occurs */ public int getRow() throws SQLException { return crsInternal.getRow(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the row number * specified. * * <p>If the number is positive, the cursor moves to an absolute row with * respect to the beginning of the rowset. The first row is row 1, the second * is row 2, and so on. For example, the following command, in which * <code>crs</code> is a <code>JoinRowSetImpl</code> object, moves the cursorLines 1501–2000 of 4353. Previous lines Load more
* this rowset's rows or its insert row */ public java.sql.Timestamp getTimestamp(String columnName) throws SQLException { return crsInternal.getTimestamp(columnName); } /** * This method is not supported, and it will throw an * <code>UnsupportedOperationException</code> if it is called. * <P> * A column value can be retrieved as a stream of ASCII characters * and then read in chunks from the stream. This method is particularly * suitable for retrieving large LONGVARCHAR values. The JDBC driver will * do any necessary conversion from the database format into ASCII format. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a <code>getXXX</code> method implicitly closes the stream. * * @param columnName a <code>String</code> object giving the SQL name of * a column in this <code>JoinRowSetImpl</code> object * @return a Java input stream that delivers the database column value * as a stream of one-byte ASCII characters. If the value is SQL * <code>NULL</code>, the result is <code>null</code>. * @throws UnsupportedOperationException if this method is called */ public java.io.InputStream getAsciiStream(String columnName) throws SQLException { return crsInternal.getAsciiStream(columnName); } /** * Retrieves the value stored in the designated column * of the current row as a <code>java.io.InputStream</code> object. * A column value can be retrieved as a stream of Unicode characters * and then read in chunks from the stream. This method is particularly * suitable for retrieving large <code>LONGVARCHAR</code> values. * The JDBC driver will do any necessary conversion from the database * format into Unicode. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a <code>getXXX</code> method implicitly closes the stream. * * @param columnName a <code>String</code> object giving the SQL name of * a column in this <code>JoinRowSetImpl</code> object * @return a Java input stream that delivers the database column value * as a stream of two-byte Unicode characters. If the value is * SQL <code>NULL</code>, the result is <code>null</code>. * @throws SQLException if the given column name does not match one of * this rowset's column names or the cursor is not on one of * this rowset's rows or its insert row * @deprecated use the method <code>getCharacterStream</code> instead */ public java.io.InputStream getUnicodeStream(String columnName) throws SQLException { return crsInternal.getUnicodeStream(columnName); } /** * Retrieves the value stored in the designated column * of the current row as a <code>java.io.InputStream</code> object. * A column value can be retrieved as a stream of uninterpreted bytes * and then read in chunks from the stream. This method is particularly * suitable for retrieving large <code>LONGVARBINARY</code> values. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a get method implicitly closes the stream. * * @param columnName a <code>String</code> object giving the SQL name of * a column in this <code>JoinRowSetImpl</code> object * @return a Java input stream that delivers the database column value * as a stream of uninterpreted bytes. If the value is SQL * <code>NULL</code>, the result is <code>null</code>. * @throws SQLException if the given column name does not match one of * this rowset's column names or the cursor is not on one of * this rowset's rows or its insert row */ public java.io.InputStream getBinaryStream(String columnName) throws SQLException { return crsInternal.getBinaryStream(columnName); } /* The first warning reported by calls on this <code>JoinRowSetImpl</code> * object is returned. Subsequent <code>JoinRowSetImpl</code> warnings will * be chained to this <code>SQLWarning</code>. * * <P>The warning chain is automatically cleared each time a new * row is read. * * <P><B>Note:</B> This warning chain only covers warnings caused * by <code>ResultSet</code> methods. Any warning caused by statement * methods (such as reading OUT parameters) will be chained on the * <code>Statement</code> object. * * @return the first SQLWarning or null * @throws UnsupportedOperationException if this method is called */ public SQLWarning getWarnings() { return crsInternal.getWarnings(); } /** * Throws an <code>UnsupportedOperationException</code> if called. * <P> * After a call to this method, the <code>getWarnings</code> method * returns <code>null</code> until a new warning is reported for this * <code>JoinRowSetImpl</code> object. * * @throws UnsupportedOperationException if this method is called */ public void clearWarnings() { crsInternal.clearWarnings(); } /** * Retrieves the name of the SQL cursor used by this * <code>JoinRowSetImpl</code> object. * * <P>In SQL, a result table is retrieved through a cursor that is * named. The current row of a result can be updated or deleted * using a positioned update/delete statement that references the * cursor name. To insure that the cursor has the proper isolation * level to support an update operation, the cursor's <code>SELECT</code> * statement should be of the form 'select for update'. If the 'for update' * clause is omitted, positioned updates may fail. * * <P>JDBC supports this SQL feature by providing the name of the * SQL cursor used by a <code>ResultSet</code> object. The current row * of a result set is also the current row of this SQL cursor. * * <P><B>Note:</B> If positioned updates are not supported, an * <code>SQLException</code> is thrown. * * @return the SQL cursor name for this <code>JoinRowSetImpl</code> object's * cursor * @throws SQLException if an error occurs */ public String getCursorName() throws SQLException { return crsInternal.getCursorName(); } /** * Retrieves the <code>ResultSetMetaData</code> object that contains * information about this <code>CachedRowsSet</code> object. The * information includes the number of columns, the data type for each * column, and other properties for each column. * * @return the <code>ResultSetMetaData</code> object that describes this * <code>JoinRowSetImpl</code> object's columns * @throws SQLException if an error occurs */ public ResultSetMetaData getMetaData() throws SQLException { return crsInternal.getMetaData(); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as an * <code>Object</code> value. * <P> * The type of the <code>Object</code> will be the default * Java object type corresponding to the column's SQL type, * following the mapping for built-in types specified in the JDBC * specification. * <P> * This method may also be used to read datatabase-specific * abstract data types. * <P> * This implementation of the method <code>getObject</code> extends its * behavior so that it gets the attributes of an SQL structured type as * as an array of <code>Object</code> values. This method also custom * maps SQL user-defined types to classes in the Java programming language. * When the specified column contains * a structured or distinct value, the behavior of this method is as * if it were a call to the method <code>getObject(columnIndex, * this.getStatement().getConnection().getTypeMap())</code>. * * @param columnIndex the first column is <code>1</code>, the second * is <code>2</code>, and so on; must be <code>1</code> or larger * and equal to or less than the number of columns in the rowset * @return a <code>java.lang.Object</code> holding the column value; * if the value is SQL <code>NULL</code>, the result is <code>null</code> * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or there is a problem getting * the <code>Class</code> object for a custom mapping * @since 1.2 */ public Object getObject(int columnIndex) throws SQLException { return crsInternal.getObject(columnIndex); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as an * <code>Object</code> value. * <P> * The type of the <code>Object</code> will be the default * Java object type corresponding to the column's SQL type, * following the mapping for built-in types specified in the JDBC * specification. * <P> * This method may also be used to read datatabase-specific * abstract data types. * <P> * This implementation of the method <code>getObject</code> extends its * behavior so that it gets the attributes of an SQL structured type as * as an array of <code>Object</code> values. This method also custom * maps SQL user-defined types to classes * in the Java programming language. When the specified column contains * a structured or distinct value, the behavior of this method is as * if it were a call to the method <code>getObject(columnIndex, * this.getStatement().getConnection().getTypeMap())</code>. * * @param columnIndex the first column is <code>1</code>, the second * is <code>2</code>, and so on; must be <code>1</code> or larger * and equal to or less than the number of columns in the rowset * @param map a <code>java.util.Map</code> object showing the mapping * from SQL type names to classes in the Java programming * language * @return a <code>java.lang.Object</code> holding the column value; * if the value is SQL <code>NULL</code>, the result is * <code>null</code> * @throws SQLException if (1) the given column name does not match * one of this rowset's column names, (2) the cursor is not * on a valid row, or (3) there is a problem getting * the <code>Class</code> object for a custom mapping */ public Object getObject(int columnIndex, java.util.Map<String,Class<?>> map) throws SQLException { return crsInternal.getObject(columnIndex, map); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as an * <code>Object</code> value. * <P> * The type of the <code>Object</code> will be the default * Java object type corresponding to the column's SQL type, * following the mapping for built-in types specified in the JDBC * specification. * <P> * This method may also be used to read datatabase-specific * abstract data types. * <P> * This implementation of the method <code>getObject</code> extends its * behavior so that it gets the attributes of an SQL structured type as * as an array of <code>Object</code> values. This method also custom * maps SQL user-defined types to classes * in the Java programming language. When the specified column contains * a structured or distinct value, the behavior of this method is as * if it were a call to the method <code>getObject(columnIndex, * this.getStatement().getConnection().getTypeMap())</code>. * * @param columnName a <code>String</code> object that must match the * SQL name of a column in this rowset, ignoring case * @return a <code>java.lang.Object</code> holding the column value; * if the value is SQL <code>NULL</code>, the result is * <code>null</code> * @throws SQLException if (1) the given column name does not match * one of this rowset's column names, (2) the cursor is not * on a valid row, or (3) there is a problem getting * the <code>Class</code> object for a custom mapping */ public Object getObject(String columnName) throws SQLException { return crsInternal.getObject(columnName); } /** * Retrieves the value of the designated column in this * <code>JoinRowSetImpl</code> object as an <code>Object</code> in * the Java programming lanugage, using the given * <code>java.util.Map</code> object to custom map the value if * appropriate. * * @param columnName a <code>String</code> object that must match the * SQL name of a column in this rowset, ignoring case * @param map a <code>java.util.Map</code> object showing the mapping * from SQL type names to classes in the Java programming * language * @return an <code>Object</code> representing the SQL value * @throws SQLException if the given column index is out of bounds or * the cursor is not on one of this rowset's rows or its * insert row */ public Object getObject(String columnName, java.util.Map<String,Class<?>> map) throws SQLException { return crsInternal.getObject(columnName, map); } /** * Retrieves the value stored in the designated column * of the current row as a <code>java.io.Reader</code> object. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a <code>getXXX</code> method implicitly closes the stream. * * @param columnIndex the first column is <code>1</code>, the second * is <code>2</code>, and so on; must be <code>1</code> or larger * and equal to or less than the number of columns in the rowset * @return a Java character stream that delivers the database column value * as a <code>java.io.Reader</code> object. If the value is * SQL <code>NULL</code>, the result is <code>null</code>. * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or there is a type mismatch */ public java.io.Reader getCharacterStream(int columnIndex) throws SQLException { return crsInternal.getCharacterStream(columnIndex); } /** * Retrieves the value stored in the designated column * of the current row as a <code>java.io.Reader</code> object. * * <P><B>Note:</B> All the data in the returned stream must * be read prior to getting the value of any other column. The * next call to a <code>getXXX</code> method implicitly closes the stream. * * @param columnName a <code>String</code> object giving the SQL name of * a column in this <code>JoinRowSetImpl</code> object * @return a Java input stream that delivers the database column value * as a stream of two-byte Unicode characters. If the value is * SQL <code>NULL</code>, the result is <code>null</code>. * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or there is a type mismatch */ public java.io.Reader getCharacterStream(String columnName) throws SQLException { return crsInternal.getCharacterStream(columnName); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as a * <code>java.math.BigDecimal</code> object. * * @param columnIndex the first column is <code>1</code>, the second * is <code>2</code>, and so on; must be <code>1</code> or larger * and equal to or less than the number of columns in the rowset * @return a <code>java.math.BigDecimal</code> value with full precision; * if the value is SQL <code>NULL</code>, the result is <code>null</code> * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or this method fails */ public BigDecimal getBigDecimal(int columnIndex) throws SQLException { return crsInternal.getBigDecimal(columnIndex); } /** * Retrieves the value of the designated column in the current row * of this <code>JoinRowSetImpl</code> object as a * <code>java.math.BigDecimal</code> object. * * @param columnName a <code>String</code> object that must match the * SQL name of a column in this rowset, ignoring case * @return a <code>java.math.BigDecimal</code> value with full precision; * if the value is SQL <code>NULL</code>, the result is <code>null</code> * @throws SQLException if the given column index is out of bounds, * the cursor is not on a valid row, or this method fails */ public BigDecimal getBigDecimal(String columnName) throws SQLException { return crsInternal.getBigDecimal(columnName); } /** * Returns the number of rows in this <code>JoinRowSetImpl</code> object. * * @return number of rows in the rowset */ public int size() { return crsInternal.size(); } /** * Indicates whether the cursor is before the first row in this * <code>JoinRowSetImpl</code> object. * * @return <code>true</code> if the cursor is before the first row; * <code>false</code> otherwise or if the rowset contains no rows * @throws SQLException if an error occurs */ public boolean isBeforeFirst() throws SQLException { return crsInternal.isBeforeFirst(); } /** * Indicates whether the cursor is after the last row in this * <code>JoinRowSetImpl</code> object. * * @return <code>true</code> if the cursor is after the last row; * <code>false</code> otherwise or if the rowset contains no rows * @throws SQLException if an error occurs */ public boolean isAfterLast() throws SQLException { return crsInternal.isAfterLast(); } /** * Indicates whether the cursor is on the first row in this * <code>JoinRowSetImpl</code> object. * * @return <code>true</code> if the cursor is on the first row; * <code>false</code> otherwise or if the rowset contains no rows * @throws SQLException if an error occurs */ public boolean isFirst() throws SQLException { return crsInternal.isFirst(); } /** * Indicates whether the cursor is on the last row in this * <code>JoinRowSetImpl</code> object. * <P> * Note: Calling the method <code>isLast</code> may be expensive * because the JDBC driver might need to fetch ahead one row in order * to determine whether the current row is the last row in this rowset. * * @return <code>true</code> if the cursor is on the last row; * <code>false</code> otherwise or if this rowset contains no rows * @throws SQLException if an error occurs */ public boolean isLast() throws SQLException { return crsInternal.isLast(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the front of * the rowset, just before the first row. This method has no effect if * this rowset contains no rows. * * @throws SQLException if an error occurs or the type of this rowset * is <code>ResultSet.TYPE_FORWARD_ONLY</code> */ public void beforeFirst() throws SQLException { crsInternal.beforeFirst(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the end of * the rowset, just after the last row. This method has no effect if * this rowset contains no rows. * * @throws SQLException if an error occurs */ public void afterLast() throws SQLException { crsInternal.afterLast(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the first row * and returns <code>true</code> if the operation was successful. This * method also notifies registered listeners that the cursor has moved. * * @return <code>true</code> if the cursor is on a valid row; * <code>false</code> otherwise or if there are no rows in this * <code>JoinRowSetImpl</code> object * @throws SQLException if the type of this rowset * is <code>ResultSet.TYPE_FORWARD_ONLY</code> */ public boolean first() throws SQLException { return crsInternal.first(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the last row * and returns <code>true</code> if the operation was successful. This * method also notifies registered listeners that the cursor has moved. * * @return <code>true</code> if the cursor is on a valid row; * <code>false</code> otherwise or if there are no rows in this * <code>JoinRowSetImpl</code> object * @throws SQLException if the type of this rowset * is <code>ResultSet.TYPE_FORWARD_ONLY</code> */ public boolean last() throws SQLException { return crsInternal.last(); } /** * Returns the number of the current row in this <code>JoinRowSetImpl</code> * object. The first row is number 1, the second number 2, and so on. * * @return the number of the current row; <code>0</code> if there is no * current row * @throws SQLException if an error occurs */ public int getRow() throws SQLException { return crsInternal.getRow(); } /** * Moves this <code>JoinRowSetImpl</code> object's cursor to the row number * specified. * * <p>If the number is positive, the cursor moves to an absolute row with * respect to the beginning of the rowset. The first row is row 1, the second * is row 2, and so on. For example, the following command, in which * <code>crs</code> is a <code>JoinRowSetImpl</code> object, moves the cursor