/* | 
|
 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. | 
|
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 
|
 * | 
|
 * This code is free software; you can redistribute it and/or modify it | 
|
 * under the terms of the GNU General Public License version 2 only, as | 
|
 * published by the Free Software Foundation.  Oracle designates this | 
|
 * particular file as subject to the "Classpath" exception as provided | 
|
 * by Oracle in the LICENSE file that accompanied this code. | 
|
 * | 
|
 * This code is distributed in the hope that it will be useful, but WITHOUT | 
|
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
|
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | 
|
 * version 2 for more details (a copy is included in the LICENSE file that | 
|
 * accompanied this code). | 
|
 * | 
|
 * You should have received a copy of the GNU General Public License version | 
|
 * 2 along with this work; if not, write to the Free Software Foundation, | 
|
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | 
|
 * | 
|
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | 
|
 * or visit www.oracle.com if you need additional information or have any | 
|
 * questions. | 
|
*/  | 
|
package com.sun.rowset;  | 
|
import java.sql.*;  | 
|
import javax.sql.*;  | 
|
import javax.naming.*;  | 
|
import java.io.*;  | 
|
import java.math.*;  | 
|
import java.util.*;  | 
|
import javax.sql.rowset.*;  | 
|
/**  | 
|
* The standard implementation of the <code>JdbcRowSet</code> interface. See the interface  | 
|
* definition for full behavior and implementation requirements.  | 
|
*  | 
|
* @author Jonathan Bruce, Amit Handa  | 
|
*/  | 
|
public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {  | 
|
    /** | 
|
     * The <code>Connection</code> object that is this rowset's | 
|
     * current connection to the database.  This field is set | 
|
     * internally when the connection is established. | 
|
*/  | 
|
private Connection conn;  | 
|
    /** | 
|
     * The <code>PreparedStatement</code> object that is this rowset's | 
|
     * current command.  This field is set internally when the method | 
|
     * <code>execute</code> creates the <code>PreparedStatement</code> | 
|
     * object. | 
|
*/  | 
|
private PreparedStatement ps;  | 
|
    /** | 
|
     * The <code>ResultSet</code> object that is this rowset's | 
|
     * current result set.  This field is set internally when the method | 
|
     * <code>execute</code> executes the rowset's command and thereby | 
|
     * creates the rowset's <code>ResultSet</code> object. | 
|
*/  | 
|
private ResultSet rs;  | 
|
    /** | 
|
     * The <code>RowSetMetaDataImpl</code> object that is constructed when | 
|
     * a <code>ResultSet</code> object is passed to the <code>JdbcRowSet</code> | 
|
     * constructor. This helps in constructing all metadata associated | 
|
     * with the <code>ResultSet</code> object using the setter methods of | 
|
     * <code>RowSetMetaDataImpl</code>. | 
|
*/  | 
|
private RowSetMetaDataImpl rowsMD;  | 
|
    /** | 
|
     * The <code>ResultSetMetaData</code> object from which this | 
|
     * <code>RowSetMetaDataImpl</code> is formed and which  helps in getting | 
|
     * the metadata information. | 
|
*/  | 
|
private ResultSetMetaData resMD;  | 
|
    /** | 
|
     * The Vector holding the Match Columns | 
|
*/  | 
|
private Vector<Integer> iMatchColumns;  | 
|
    /** | 
|
     * The Vector that will hold the Match Column names. | 
|
*/  | 
|
private Vector<String> strMatchColumns;  | 
|
protected transient JdbcRowSetResourceBundle resBundle;  | 
|
    /** | 
|
     * Constructs a default <code>JdbcRowSet</code> object. | 
|
     * The new instance of <code>JdbcRowSet</code> will serve as a proxy | 
|
     * for the <code>ResultSet</code> object it creates, and by so doing, | 
|
     * it will make it possible to use the result set as a JavaBeans | 
|
     * component. | 
|
     * <P> | 
|
     * The following is true of a default <code>JdbcRowSet</code> instance: | 
|
     * <UL> | 
|
     *   <LI>Does not show deleted rows | 
|
     *   <LI>Has no time limit for how long a driver may take to | 
|
     *       execute the rowset's command | 
|
     *   <LI>Has no limit for the number of rows it may contain | 
|
     *   <LI>Has no limit for the number of bytes a column may contain | 
|
     *   <LI>Has a scrollable cursor and does not show changes | 
|
     *       made by others | 
|
     *   <LI>Will not see uncommitted data (make "dirty" reads) | 
|
     *   <LI>Has escape processing turned on | 
|
     *   <LI>Has its connection's type map set to <code>null</code> | 
|
     *   <LI>Has an empty <code>Hashtable</code> object for storing any | 
|
     *       parameters that are set | 
|
     * </UL> | 
|
     * A newly created <code>JdbcRowSet</code> object must have its | 
|
     * <code>execute</code> method invoked before other public methods | 
|
     * are called on it; otherwise, such method calls will cause an | 
|
     * exception to be thrown. | 
|
     * | 
|
     * @throws SQLException [1] if any of its public methods are called prior | 
|
     * to calling the <code>execute</code> method; [2] if invalid JDBC driver | 
|
     * properties are set or [3] if no connection to a data source exists. | 
|
*/  | 
|
    public JdbcRowSetImpl() { | 
|
conn = null;  | 
|
ps = null;  | 
|
rs = null;  | 
|
        try { | 
|
resBundle = JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle();  | 
|
} catch(IOException ioe) {  | 
|
throw new RuntimeException(ioe);  | 
|
}  | 
|
initParams();  | 
|
// set the defaults  | 
|
        try { | 
|
setShowDeleted(false);  | 
|
} catch(SQLException sqle) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setshowdeleted").toString() +  | 
|
sqle.getLocalizedMessage());  | 
|
}  | 
|
        try { | 
|
setQueryTimeout(0);  | 
|
} catch(SQLException sqle) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setquerytimeout").toString() +  | 
|
sqle.getLocalizedMessage());  | 
|
}  | 
|
        try { | 
|
setMaxRows(0);  | 
|
} catch(SQLException sqle) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setmaxrows").toString() +  | 
|
sqle.getLocalizedMessage());  | 
|
}  | 
|
        try { | 
|
setMaxFieldSize(0);  | 
|
} catch(SQLException sqle) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setmaxfieldsize").toString() +  | 
|
sqle.getLocalizedMessage());  | 
|
}  | 
|
        try { | 
|
setEscapeProcessing(true);  | 
|
} catch(SQLException sqle) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setescapeprocessing").toString() +  | 
|
sqle.getLocalizedMessage());  | 
|
}  | 
|
        try { | 
|
setConcurrency(ResultSet.CONCUR_UPDATABLE);  | 
|
} catch (SQLException sqle) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setconcurrency").toString() +  | 
|
sqle.getLocalizedMessage());  | 
|
}  | 
|
setTypeMap(null);  | 
|
        try { | 
|
setType(ResultSet.TYPE_SCROLL_INSENSITIVE);  | 
|
} catch(SQLException sqle){  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.settype").toString() +  | 
|
sqle.getLocalizedMessage());  | 
|
}  | 
|
setReadOnly(true);  | 
|
        try { | 
|
setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);  | 
|
} catch(SQLException sqle){  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.settransactionisolation").toString() +  | 
|
sqle.getLocalizedMessage());  | 
|
}  | 
|
//Instantiating the vector for MatchColumns  | 
|
iMatchColumns = new Vector<Integer>(10);  | 
|
for(int i = 0; i < 10 ; i++) {  | 
|
iMatchColumns.add(i,Integer.valueOf(-1));  | 
|
}  | 
|
strMatchColumns = new Vector<String>(10);  | 
|
for(int j = 0; j < 10; j++) {  | 
|
strMatchColumns.add(j,null);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Constructs a default <code>JdbcRowSet</code> object given a | 
|
     * valid <code>Connection</code> object. The new | 
|
     * instance of <code>JdbcRowSet</code> will serve as a proxy for | 
|
     * the <code>ResultSet</code> object it creates, and by so doing, | 
|
     * it will make it possible to use the result set as a JavaBeans | 
|
     * component. | 
|
     * <P> | 
|
     * The following is true of a default <code>JdbcRowSet</code> instance: | 
|
     * <UL> | 
|
     *   <LI>Does not show deleted rows | 
|
     *   <LI>Has no time limit for how long a driver may take to | 
|
     *       execute the rowset's command | 
|
     *   <LI>Has no limit for the number of rows it may contain | 
|
     *   <LI>Has no limit for the number of bytes a column may contain | 
|
     *   <LI>Has a scrollable cursor and does not show changes | 
|
     *       made by others | 
|
     *   <LI>Will not see uncommitted data (make "dirty" reads) | 
|
     *   <LI>Has escape processing turned on | 
|
     *   <LI>Has its connection's type map set to <code>null</code> | 
|
     *   <LI>Has an empty <code>Hashtable</code> object for storing any | 
|
     *       parameters that are set | 
|
     * </UL> | 
|
     * A newly created <code>JdbcRowSet</code> object must have its | 
|
     * <code>execute</code> method invoked before other public methods | 
|
     * are called on it; otherwise, such method calls will cause an | 
|
     * exception to be thrown. | 
|
     * | 
|
     * @throws SQLException [1] if any of its public methods are called prior | 
|
     * to calling the <code>execute</code> method, [2] if invalid JDBC driver | 
|
     * properties are set, or [3] if no connection to a data source exists. | 
|
*/  | 
|
public JdbcRowSetImpl(Connection con) throws SQLException {  | 
|
conn = con;  | 
|
ps = null;  | 
|
rs = null;  | 
|
        try { | 
|
resBundle = JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle();  | 
|
} catch(IOException ioe) {  | 
|
throw new RuntimeException(ioe);  | 
|
}  | 
|
initParams();  | 
|
        // set the defaults | 
|
setShowDeleted(false);  | 
|
setQueryTimeout(0);  | 
|
setMaxRows(0);  | 
|
setMaxFieldSize(0);  | 
|
setParams();  | 
|
setReadOnly(true);  | 
|
setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);  | 
|
setEscapeProcessing(true);  | 
|
setTypeMap(null);  | 
|
//Instantiating the vector for MatchColumns  | 
|
iMatchColumns = new Vector<Integer>(10);  | 
|
for(int i = 0; i < 10 ; i++) {  | 
|
iMatchColumns.add(i,Integer.valueOf(-1));  | 
|
}  | 
|
strMatchColumns = new Vector<String>(10);  | 
|
for(int j = 0; j < 10; j++) {  | 
|
strMatchColumns.add(j,null);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Constructs a default <code>JdbcRowSet</code> object using the | 
|
     * URL, username, and password arguments supplied. The new | 
|
     * instance of <code>JdbcRowSet</code> will serve as a proxy for | 
|
     * the <code>ResultSet</code> object it creates, and by so doing, | 
|
     * it will make it possible to use the result set as a JavaBeans | 
|
     * component. | 
|
     * | 
|
     * <P> | 
|
     * The following is true of a default <code>JdbcRowSet</code> instance: | 
|
     * <UL> | 
|
     *   <LI>Does not show deleted rows | 
|
     *   <LI>Has no time limit for how long a driver may take to | 
|
     *       execute the rowset's command | 
|
     *   <LI>Has no limit for the number of rows it may contain | 
|
     *   <LI>Has no limit for the number of bytes a column may contain | 
|
     *   <LI>Has a scrollable cursor and does not show changes | 
|
     *       made by others | 
|
     *   <LI>Will not see uncommitted data (make "dirty" reads) | 
|
     *   <LI>Has escape processing turned on | 
|
     *   <LI>Has its connection's type map set to <code>null</code> | 
|
     *   <LI>Has an empty <code>Hashtable</code> object for storing any | 
|
     *       parameters that are set | 
|
     * </UL> | 
|
     * | 
|
     * @param url - a JDBC URL for the database to which this <code>JdbcRowSet</code> | 
|
     *        object will be connected. The form for a JDBC URL is | 
|
     *        <code>jdbc:subprotocol:subname</code>. | 
|
     * @param user - the database user on whose behalf the connection | 
|
     *        is being made | 
|
     * @param password - the user's password | 
|
     * | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public JdbcRowSetImpl(String url, String user, String password) throws SQLException {  | 
|
conn = null;  | 
|
ps = null;  | 
|
rs = null;  | 
|
        try { | 
|
resBundle = JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle();  | 
|
} catch(IOException ioe) {  | 
|
throw new RuntimeException(ioe);  | 
|
}  | 
|
initParams();  | 
|
// Pass the arguments to BaseRowSet  | 
|
// setter methods now.  | 
|
setUsername(user);  | 
|
setPassword(password);  | 
|
setUrl(url);  | 
|
        // set the defaults | 
|
setShowDeleted(false);  | 
|
setQueryTimeout(0);  | 
|
setMaxRows(0);  | 
|
setMaxFieldSize(0);  | 
|
setParams();  | 
|
setReadOnly(true);  | 
|
setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);  | 
|
setEscapeProcessing(true);  | 
|
setTypeMap(null);  | 
|
//Instantiating the vector for MatchColumns  | 
|
iMatchColumns = new Vector<Integer>(10);  | 
|
for(int i = 0; i < 10 ; i++) {  | 
|
iMatchColumns.add(i,Integer.valueOf(-1));  | 
|
}  | 
|
strMatchColumns = new Vector<String>(10);  | 
|
for(int j = 0; j < 10; j++) {  | 
|
strMatchColumns.add(j,null);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Constructs a <code>JdbcRowSet</code> object using the given valid | 
|
     * <code>ResultSet</code> object. The new | 
|
     * instance of <code>JdbcRowSet</code> will serve as a proxy for | 
|
     * the <code>ResultSet</code> object, and by so doing, | 
|
     * it will make it possible to use the result set as a JavaBeans | 
|
     * component. | 
|
     * | 
|
     * <P> | 
|
     * The following is true of a default <code>JdbcRowSet</code> instance: | 
|
     * <UL> | 
|
     *   <LI>Does not show deleted rows | 
|
     *   <LI>Has no time limit for how long a driver may take to | 
|
     *       execute the rowset's command | 
|
     *   <LI>Has no limit for the number of rows it may contain | 
|
     *   <LI>Has no limit for the number of bytes a column may contain | 
|
     *   <LI>Has a scrollable cursor and does not show changes | 
|
     *       made by others | 
|
     *   <LI>Will not see uncommitted data (make "dirty" reads) | 
|
     *   <LI>Has escape processing turned on | 
|
     *   <LI>Has its connection's type map set to <code>null</code> | 
|
     *   <LI>Has an empty <code>Hashtable</code> object for storing any | 
|
     *       parameters that are set | 
|
     * </UL> | 
|
     * | 
|
     * @param res a valid <code>ResultSet</code> object | 
|
     * | 
|
     * @throws SQLException if a database access occurs due to a non | 
|
     * valid ResultSet handle. | 
|
*/  | 
|
public JdbcRowSetImpl(ResultSet res) throws SQLException {  | 
|
// A ResultSet handle encapsulates a connection handle.  | 
|
// But there is no way we can retrieve a Connection handle  | 
|
// from a ResultSet object.  | 
|
// So to avoid any anomalies we keep the conn = null  | 
|
// The passed rs handle will be a wrapper around for  | 
|
        // "this" object's all operations. | 
|
conn = null;  | 
|
ps = null;  | 
|
rs = res;  | 
|
        try { | 
|
resBundle = JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle();  | 
|
} catch(IOException ioe) {  | 
|
throw new RuntimeException(ioe);  | 
|
}  | 
|
initParams();  | 
|
        // get the values from the resultset handle. | 
|
setShowDeleted(false);  | 
|
setQueryTimeout(0);  | 
|
setMaxRows(0);  | 
|
setMaxFieldSize(0);  | 
|
setParams();  | 
|
setReadOnly(true);  | 
|
setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);  | 
|
setEscapeProcessing(true);  | 
|
setTypeMap(null);  | 
|
// Get a handle to ResultSetMetaData  | 
|
// Construct RowSetMetaData out of it.  | 
|
resMD = rs.getMetaData();  | 
|
rowsMD = new RowSetMetaDataImpl();  | 
|
initMetaData(rowsMD, resMD);  | 
|
//Instantiating the vector for MatchColumns  | 
|
iMatchColumns = new Vector<Integer>(10);  | 
|
for(int i = 0; i < 10 ; i++) {  | 
|
iMatchColumns.add(i,Integer.valueOf(-1));  | 
|
}  | 
|
strMatchColumns = new Vector<String>(10);  | 
|
for(int j = 0; j < 10; j++) {  | 
|
strMatchColumns.add(j,null);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Initializes the given <code>RowSetMetaData</code> object with the values | 
|
     * in the given <code>ResultSetMetaData</code> object. | 
|
     * | 
|
     * @param md the <code>RowSetMetaData</code> object for this | 
|
     *           <code>JdbcRowSetImpl</code> object, which will be set with | 
|
     *           values from rsmd | 
|
     * @param rsmd the <code>ResultSetMetaData</code> object from which new | 
|
     *             values for md will be read | 
|
     * @throws SQLException if an error occurs | 
|
*/  | 
|
protected void initMetaData(RowSetMetaData md, ResultSetMetaData rsmd) throws SQLException {  | 
|
int numCols = rsmd.getColumnCount();  | 
|
md.setColumnCount(numCols);  | 
|
for (int col=1; col <= numCols; col++) {  | 
|
md.setAutoIncrement(col, rsmd.isAutoIncrement(col));  | 
|
md.setCaseSensitive(col, rsmd.isCaseSensitive(col));  | 
|
md.setCurrency(col, rsmd.isCurrency(col));  | 
|
md.setNullable(col, rsmd.isNullable(col));  | 
|
md.setSigned(col, rsmd.isSigned(col));  | 
|
md.setSearchable(col, rsmd.isSearchable(col));  | 
|
md.setColumnDisplaySize(col, rsmd.getColumnDisplaySize(col));  | 
|
md.setColumnLabel(col, rsmd.getColumnLabel(col));  | 
|
md.setColumnName(col, rsmd.getColumnName(col));  | 
|
md.setSchemaName(col, rsmd.getSchemaName(col));  | 
|
md.setPrecision(col, rsmd.getPrecision(col));  | 
|
md.setScale(col, rsmd.getScale(col));  | 
|
md.setTableName(col, rsmd.getTableName(col));  | 
|
md.setCatalogName(col, rsmd.getCatalogName(col));  | 
|
md.setColumnType(col, rsmd.getColumnType(col));  | 
|
md.setColumnTypeName(col, rsmd.getColumnTypeName(col));  | 
|
}  | 
|
}  | 
|
protected void checkState() throws SQLException {  | 
|
// If all the three i.e. conn, ps & rs are  | 
|
// simultaneously null implies we are not connected  | 
|
// to the db, implies undesirable state so throw exception  | 
|
if (conn == null && ps == null && rs == null ) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.invalstate").toString());  | 
|
}  | 
|
}  | 
|
//---------------------------------------------------------------------  | 
|
// Reading and writing data  | 
|
//---------------------------------------------------------------------  | 
|
    /** | 
|
     * Creates the internal <code>ResultSet</code> object for which this | 
|
     * <code>JdbcRowSet</code> object is a wrapper, effectively | 
|
     * making the result set a JavaBeans component. | 
|
     * <P> | 
|
     * Certain properties must have been set before this method is called | 
|
     * so that it can establish a connection to a database and execute the | 
|
     * query that will create the result set.  If a <code>DataSource</code> | 
|
     * object will be used to create the connection, properties for the | 
|
     * data source name, user name, and password must be set.  If the | 
|
     * <code>DriverManager</code> will be used, the properties for the | 
|
     * URL, user name, and password must be set.  In either case, the | 
|
     * property for the command must be set.  If the command has placeholder | 
|
     * parameters, those must also be set. This method throws | 
|
     * an exception if the required properties are not set. | 
|
     * <P> | 
|
     * Other properties have default values that may optionally be set | 
|
     * to new values. The <code>execute</code> method will use the value | 
|
     * for the command property to create a <code>PreparedStatement</code> | 
|
     * object and set its properties (escape processing, maximum field | 
|
     * size, maximum number of rows, and query timeout limit) to be those | 
|
     * of this rowset. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     * (2) any required JDBC properties are not set, or (3) if an | 
|
     * invalid connection exists. | 
|
*/  | 
|
public void execute() throws SQLException {  | 
|
/*  | 
|
* To execute based on the properties:  | 
|
* i) determine how to get a connection  | 
|
* ii) prepare the statement  | 
|
* iii) set the properties of the statement  | 
|
* iv) parse the params. and set them  | 
|
* v) execute the statement  | 
|
*  | 
|
* During all of this try to tolerate as many errors  | 
|
* as possible, many drivers will not support all of  | 
|
* the properties and will/should throw SQLException  | 
|
* at us...  | 
|
*  | 
|
*/  | 
|
prepare();  | 
|
        // set the properties of our shiny new statement | 
|
setProperties(ps);  | 
|
        // set the parameters | 
|
decodeParams(getParams(), ps);  | 
|
        // execute the statement | 
|
rs = ps.executeQuery();  | 
|
        // notify listeners | 
|
notifyRowSetChanged();  | 
|
}  | 
|
protected void setProperties(PreparedStatement ps) throws SQLException {  | 
|
        try { | 
|
ps.setEscapeProcessing(getEscapeProcessing());  | 
|
} catch (SQLException ex) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setescapeprocessing").toString() +  | 
|
ex.getLocalizedMessage());  | 
|
}  | 
|
        try { | 
|
ps.setMaxFieldSize(getMaxFieldSize());  | 
|
} catch (SQLException ex) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setmaxfieldsize").toString() +  | 
|
ex.getLocalizedMessage());  | 
|
}  | 
|
        try { | 
|
ps.setMaxRows(getMaxRows());  | 
|
} catch (SQLException ex) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setmaxrows").toString() +  | 
|
ex.getLocalizedMessage());  | 
|
}  | 
|
        try { | 
|
ps.setQueryTimeout(getQueryTimeout());  | 
|
} catch (SQLException ex) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.setquerytimeout").toString() +  | 
|
ex.getLocalizedMessage());  | 
|
}  | 
|
}  | 
|
private Connection connect() throws SQLException {  | 
|
// Get a JDBC connection.  | 
|
// First check for Connection handle object as such if  | 
|
// "this" initialized using conn.  | 
|
if(conn != null) {  | 
|
return conn;  | 
|
} else if (getDataSourceName() != null) {  | 
|
            // Connect using JNDI. | 
|
            try { | 
|
Context ctx = new InitialContext();  | 
|
DataSource ds = (DataSource)ctx.lookup  | 
|
(getDataSourceName());  | 
|
//return ds.getConnection(getUsername(),getPassword());  | 
|
if(getUsername() != null && !getUsername().equals("")) {  | 
|
return ds.getConnection(getUsername(),getPassword());  | 
|
                } else { | 
|
return ds.getConnection();  | 
|
}  | 
|
}  | 
|
catch (javax.naming.NamingException ex) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.connect").toString());  | 
|
}  | 
|
} else if (getUrl() != null) {  | 
|
// Check only for getUrl() != null because  | 
|
// user, passwd can be null  | 
|
// Connect using the driver manager.  | 
|
return DriverManager.getConnection  | 
|
(getUrl(), getUsername(), getPassword());  | 
|
}  | 
|
        else { | 
|
return null;  | 
|
}  | 
|
}  | 
|
protected PreparedStatement prepare() throws SQLException {  | 
|
        // get a connection | 
|
conn = connect();  | 
|
        try { | 
|
Map<String, Class<?>> aMap = getTypeMap();  | 
|
if( aMap != null) {  | 
|
conn.setTypeMap(aMap);  | 
|
}  | 
|
ps = conn.prepareStatement(getCommand(),ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);  | 
|
} catch (SQLException ex) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.prepare").toString() +  | 
|
ex.getLocalizedMessage());  | 
|
if (ps != null)  | 
|
ps.close();  | 
|
if (conn != null)  | 
|
conn.close();  | 
|
throw new SQLException(ex.getMessage());  | 
|
}  | 
|
return ps;  | 
|
}  | 
|
    @SuppressWarnings("deprecation") | 
|
private void decodeParams(Object[] params, PreparedStatement ps)  | 
|
throws SQLException {  | 
|
// There is a corresponding decodeParams in JdbcRowSetImpl  | 
|
// which does the same as this method. This is a design flaw.  | 
|
// Update the CachedRowsetReader.decodeParams when you update  | 
|
// this method.  | 
|
// Adding the same comments to CachedRowsetReader.decodeParams.  | 
|
int arraySize;  | 
|
Object[] param = null;  | 
|
for (int i=0; i < params.length; i++) {  | 
|
if (params[i] instanceof Object[]) {  | 
|
param = (Object[])params[i];  | 
|
if (param.length == 2) {  | 
|
if (param[0] == null) {  | 
|
ps.setNull(i + 1, ((Integer)param[1]).intValue());  | 
|
continue;  | 
|
}  | 
|
if (param[0] instanceof java.sql.Date ||  | 
|
param[0] instanceof java.sql.Time ||  | 
|
param[0] instanceof java.sql.Timestamp) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.detecteddate"));  | 
|
if (param[1] instanceof java.util.Calendar) {  | 
|
System.err.println(resBundle.handleGetObject("jdbcrowsetimpl.detectedcalendar"));  | 
|
ps.setDate(i + 1, (java.sql.Date)param[0],  | 
|
(java.util.Calendar)param[1]);  | 
|
continue;  | 
|
}  | 
|
                        else { | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.paramtype").toString());  | 
|
}  | 
|
}  | 
|
if (param[0] instanceof Reader) {  | 
|
ps.setCharacterStream(i + 1, (Reader)param[0],  | 
|
((Integer)param[1]).intValue());  | 
|
continue;  | 
|
}  | 
|
                    /* | 
|
                     * What's left should be setObject(int, Object, scale) | 
|
*/  | 
|
if (param[1] instanceof Integer) {  | 
|
ps.setObject(i + 1, param[0], ((Integer)param[1]).intValue());  | 
|
continue;  | 
|
}  | 
|
} else if (param.length == 3) {  | 
|
if (param[0] == null) {  | 
|
ps.setNull(i + 1, ((Integer)param[1]).intValue(),  | 
|
(String)param[2]);  | 
|
continue;  | 
|
}  | 
|
if (param[0] instanceof java.io.InputStream) {  | 
|
switch (((Integer)param[2]).intValue()) {  | 
|
case JdbcRowSetImpl.UNICODE_STREAM_PARAM:  | 
|
ps.setUnicodeStream(i + 1,  | 
|
(java.io.InputStream)param[0],  | 
|
((Integer)param[1]).intValue());  | 
|
break;  | 
|
case JdbcRowSetImpl.BINARY_STREAM_PARAM:  | 
|
ps.setBinaryStream(i + 1,  | 
|
(java.io.InputStream)param[0],  | 
|
((Integer)param[1]).intValue());  | 
|
break;  | 
|
case JdbcRowSetImpl.ASCII_STREAM_PARAM:  | 
|
ps.setAsciiStream(i + 1,  | 
|
(java.io.InputStream)param[0],  | 
|
((Integer)param[1]).intValue());  | 
|
break;  | 
|
default:  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.paramtype").toString());  | 
|
}  | 
|
}  | 
|
                    /* | 
|
                     * no point at looking at the first element now; | 
|
                     * what's left must be the setObject() cases. | 
|
*/  | 
|
if (param[1] instanceof Integer && param[2] instanceof Integer) {  | 
|
ps.setObject(i + 1, param[0], ((Integer)param[1]).intValue(),  | 
|
((Integer)param[2]).intValue());  | 
|
continue;  | 
|
}  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.paramtype").toString());  | 
|
                } else { | 
|
                    // common case - this catches all SQL92 types | 
|
ps.setObject(i + 1, params[i]);  | 
|
continue;  | 
|
}  | 
|
            }  else { | 
|
               // Try to get all the params to be set here | 
|
ps.setObject(i + 1, params[i]);  | 
|
}  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor for this rowset's <code>ResultSet</code> | 
|
     * object down one row from its current position. | 
|
     * A <code>ResultSet</code> cursor is initially positioned | 
|
     * before the first row; the first call to the method | 
|
     * <code>next</code> makes the first row the current row; the | 
|
     * second call makes the second row the current row, and so on. | 
|
     * | 
|
     * <P>If an input stream is open for the current row, a call | 
|
     * to the method <code>next</code> will | 
|
     * implicitly close it. A <code>ResultSet</code> object's | 
|
     * warning chain is cleared when a new row is read. | 
|
     * | 
|
     * @return <code>true</code> if the new current row is valid; | 
|
     *         <code>false</code> if there are no more rows | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public boolean next() throws SQLException {  | 
|
checkState();  | 
|
boolean b = rs.next();  | 
|
notifyCursorMoved();  | 
|
return b;  | 
|
}  | 
|
    /** | 
|
     * Releases this rowset's <code>ResultSet</code> object's database and | 
|
     * JDBC resources immediately instead of waiting for | 
|
     * this to happen when it is automatically closed. | 
|
     * | 
|
     * <P><B>Note:</B> A <code>ResultSet</code> object | 
|
     * is automatically closed by the | 
|
     * <code>Statement</code> object that generated it when | 
|
     * that <code>Statement</code> object is closed, | 
|
     * re-executed, or is used to retrieve the next result from a | 
|
     * sequence of multiple results. A <code>ResultSet</code> object | 
|
     * is also automatically closed when it is garbage collected. | 
|
     * | 
|
     * @throws SQLException if a database access error occurs | 
|
*/  | 
|
public void close() throws SQLException {  | 
|
if (rs != null)  | 
|
rs.close();  | 
|
if (ps != null)  | 
|
ps.close();  | 
|
if (conn != null)  | 
|
conn.close();  | 
|
}  | 
|
    /** | 
|
     * Reports whether the last column read from this rowset's | 
|
     * <code>ResultSet</code> object had a value of SQL <code>NULL</code>. | 
|
     * Note that you must first call one of the <code>getXXX</code> methods | 
|
     * on a column to try to read its value and then call | 
|
     * the method <code>wasNull</code> to see if the value read was | 
|
     * SQL <code>NULL</code>. | 
|
     * | 
|
     * @return <code>true</code> if the last column value read was SQL | 
|
     *         <code>NULL</code> and <code>false</code> otherwise | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public boolean wasNull() throws SQLException {  | 
|
checkState();  | 
|
return rs.wasNull();  | 
|
}  | 
|
//======================================================================  | 
|
// Methods for accessing results by column index  | 
|
//======================================================================  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>String</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public String getString(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getString(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>boolean</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>false</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public boolean getBoolean(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getBoolean(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>byte</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public byte getByte(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getByte(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>short</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public short getShort(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getShort(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * an <code>int</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public int getInt(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getInt(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>long</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public long getLong(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getLong(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>float</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public float getFloat(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getFloat(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>double</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public double getDouble(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getDouble(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>java.sql.BigDecimal</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param scale the number of digits to the right of the decimal point | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
     * @deprecated | 
|
*/  | 
|
@Deprecated  | 
|
public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException {  | 
|
checkState();  | 
|
return rs.getBigDecimal(columnIndex, scale);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>byte</code> array in the Java programming language. | 
|
     * The bytes represent the raw values returned by the driver. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public byte[] getBytes(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getBytes(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>java.sql.Date</code> object in the Java programming language. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Date getDate(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getDate(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>java.sql.Time</code> object in the Java programming language. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Time getTime(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getTime(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>java.sql.Timestamp</code> object in the Java programming language. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Timestamp getTimestamp(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getTimestamp(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a stream of ASCII characters. The value can then be 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 ASCII. | 
|
     * | 
|
     * <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.  Also, a | 
|
     * stream may return <code>0</code> when the method | 
|
     * <code>InputStream.available</code> | 
|
     * is called whether there is data available or not. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @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 | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) database access error occurs | 
|
     *            (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.io.InputStream getAsciiStream(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getAsciiStream(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * as a stream of Unicode characters. | 
|
     * The value can then be 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. | 
|
     * The byte format of the Unicode stream must be Java UTF-8, | 
|
     * as specified in the Java virtual machine specification. | 
|
     * | 
|
     * <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.  Also, a | 
|
     * stream may return <code>0</code> when the method | 
|
     * <code>InputStream.available</code> | 
|
     * is called whether there is data available or not. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return a Java input stream that delivers the database column value | 
|
     * as a stream in Java UTF-8 byte format; | 
|
     * if the value is SQL <code>NULL</code>, the value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
     * @deprecated use <code>getCharacterStream</code> in place of | 
|
     *              <code>getUnicodeStream</code> | 
|
*/  | 
|
@Deprecated  | 
|
public java.io.InputStream getUnicodeStream(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getUnicodeStream(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of a column in the current row as a stream of | 
|
     * the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a binary stream of | 
|
     * uninterpreted bytes. The value can then be 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 <code>getXXX</code> method implicitly closes the stream.  Also, a | 
|
     * stream may return <code>0</code> when the method | 
|
     * <code>InputStream.available</code> | 
|
     * is called whether there is data available or not. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @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 value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.io.InputStream getBinaryStream(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getBinaryStream(columnIndex);  | 
|
}  | 
|
//======================================================================  | 
|
// Methods for accessing results by column name  | 
|
//======================================================================  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>String</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public String getString(String columnName) throws SQLException {  | 
|
return getString(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>boolean</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>false</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public boolean getBoolean(String columnName) throws SQLException {  | 
|
return getBoolean(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>byte</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public byte getByte(String columnName) throws SQLException {  | 
|
return getByte(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>short</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public short getShort(String columnName) throws SQLException {  | 
|
return getShort(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * an <code>int</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public int getInt(String columnName) throws SQLException {  | 
|
return getInt(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>long</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public long getLong(String columnName) throws SQLException {  | 
|
return getLong(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>float</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public float getFloat(String columnName) throws SQLException {  | 
|
return getFloat(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>double</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>0</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public double getDouble(String columnName) throws SQLException {  | 
|
return getDouble(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>java.math.BigDecimal</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @param scale the number of digits to the right of the decimal point | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) adatabase access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
     * @deprecated | 
|
*/  | 
|
@Deprecated  | 
|
public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException {  | 
|
return getBigDecimal(findColumn(columnName), scale);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>byte</code> array in the Java programming language. | 
|
     * The bytes represent the raw values returned by the driver. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public byte[] getBytes(String columnName) throws SQLException {  | 
|
return getBytes(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>java.sql.Date</code> object in the Java programming language. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Date getDate(String columnName) throws SQLException {  | 
|
return getDate(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>java.sql.Time</code> object in the Java programming language. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; | 
|
     * if the value is SQL <code>NULL</code>, | 
|
     * the value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Time getTime(String columnName) throws SQLException {  | 
|
return getTime(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * a <code>java.sql.Timestamp</code> object. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Timestamp getTimestamp(String columnName) throws SQLException {  | 
|
return getTimestamp(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a stream of | 
|
     * ASCII characters. The value can then be 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 ASCII. | 
|
     * | 
|
     * <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. Also, a | 
|
     * stream may return <code>0</code> when the method <code>available</code> | 
|
     * is called whether there is data available or not. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @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 value returned is <code>null</code>. | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.io.InputStream getAsciiStream(String columnName) throws SQLException {  | 
|
return getAsciiStream(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a stream of | 
|
     * Unicode characters. The value can then be 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. | 
|
     * The byte format of the Unicode stream must be Java UTF-8, | 
|
     * as defined in the Java virtual machine specification. | 
|
     * | 
|
     * <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. Also, a | 
|
     * stream may return <code>0</code> when the method <code>available</code> | 
|
     * is called whether there is data available or not. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @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 value returned is <code>null</code>. | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
     * @deprecated | 
|
*/  | 
|
@Deprecated  | 
|
public java.io.InputStream getUnicodeStream(String columnName) throws SQLException {  | 
|
return getUnicodeStream(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a stream of uninterpreted | 
|
     * <code>byte</code>s. | 
|
     * The value can then be 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 <code>getXXX</code> method implicitly closes the stream. Also, a | 
|
     * stream may return <code>0</code> when the method <code>available</code> | 
|
     * is called whether there is data available or not. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @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 (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.io.InputStream getBinaryStream(String columnName) throws SQLException {  | 
|
return getBinaryStream(findColumn(columnName));  | 
|
}  | 
|
//=====================================================================  | 
|
// Advanced features:  | 
|
//=====================================================================  | 
|
    /** | 
|
     * Returns the first warning reported by calls on this rowset's | 
|
     * <code>ResultSet</code> object. | 
|
     * Subsequent warnings on this rowset's <code>ResultSet</code> object | 
|
     * will be chained to the <code>SQLWarning</code> object that | 
|
     * this method returns. | 
|
     * | 
|
     * <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 | 
|
     * <code>Statement</code> methods | 
|
     * (such as reading OUT parameters) will be chained on the | 
|
     * <code>Statement</code> object. | 
|
     * | 
|
     * @return the first <code>SQLWarning</code> object reported or <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public SQLWarning getWarnings() throws SQLException {  | 
|
checkState();  | 
|
return rs.getWarnings();  | 
|
}  | 
|
    /** | 
|
     * Clears all warnings reported on this rowset's <code>ResultSet</code> object. | 
|
     * After this method is called, the method <code>getWarnings</code> | 
|
     * returns <code>null</code> until a new warning is | 
|
     * reported for this rowset's <code>ResultSet</code> object. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public void clearWarnings() throws SQLException {  | 
|
checkState();  | 
|
rs.clearWarnings();  | 
|
}  | 
|
    /** | 
|
     * Gets the name of the SQL cursor used by this rowset's <code>ResultSet</code> | 
|
     * object. | 
|
     * | 
|
     * <P>In SQL, a result table is retrieved through a cursor that is | 
|
     * named. The current row of a result set 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 update, the cursor's <code>select</code> statement should be | 
|
     * of the form 'select for update'. If the 'for update' clause is | 
|
     * omitted, the positioned updates may fail. | 
|
     * | 
|
     * <P>The JDBC API supports this SQL feature by providing the name of the | 
|
     * SQL cursor used by a <code>ResultSet</code> object. | 
|
     * The current row of a <code>ResultSet</code> object | 
|
     * is also the current row of this SQL cursor. | 
|
     * | 
|
     * <P><B>Note:</B> If positioned update is not supported, a | 
|
     * <code>SQLException</code> is thrown. | 
|
     * | 
|
     * @return the SQL name for this rowset's <code>ResultSet</code> object's cursor | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) xthis rowset does not have a currently valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public String getCursorName() throws SQLException {  | 
|
checkState();  | 
|
return rs.getCursorName();  | 
|
}  | 
|
    /** | 
|
     * Retrieves the  number, types and properties of | 
|
     * this rowset's <code>ResultSet</code> object's columns. | 
|
     * | 
|
     * @return the description of this rowset's <code>ResultSet</code> | 
|
     *     object's columns | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *     or (2) this rowset does not have a currently valid connection, | 
|
     *     prepared statement, and result set | 
|
*/  | 
|
public ResultSetMetaData getMetaData() throws SQLException {  | 
|
checkState();  | 
|
// It may be the case that JdbcRowSet might not have been  | 
|
// initialized with ResultSet handle and may be by PreparedStatement  | 
|
// internally when we set JdbcRowSet.setCommand().  | 
|
// We may require all the basic properties of setEscapeProcessing  | 
|
// setMaxFieldSize etc. which an application can use before we call  | 
|
        // execute. | 
|
        try { | 
|
checkState();  | 
|
} catch(SQLException sqle) {  | 
|
prepare();  | 
|
             // will return ResultSetMetaData | 
|
return ps.getMetaData();  | 
|
}  | 
|
return rs.getMetaData();  | 
|
}  | 
|
    /** | 
|
     * <p>Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * an <code>Object</code>. | 
|
     * | 
|
     * <p>This method will return the value of the given column as a | 
|
     * Java object.  The type of the Java object 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. | 
|
     * | 
|
     * In the JDBC 3.0 API, the behavior of method | 
|
     * <code>getObject</code> is extended to materialize | 
|
     * data of SQL user-defined types.  When a column contains | 
|
     * a structured or distinct value, the behavior of this method is as | 
|
     * if it were a call to: <code>getObject(columnIndex, | 
|
     * this.getStatement().getConnection().getTypeMap())</code>. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return a <code>java.lang.Object</code> holding the column value | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Object getObject(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getObject(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * <p>Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as | 
|
     * an <code>Object</code>. | 
|
     * | 
|
     * <p>This method will return the value of the given column as a | 
|
     * Java object.  The type of the Java object 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. | 
|
     * | 
|
     * In the JDBC 3.0 API, the behavior of the method | 
|
     * <code>getObject</code> is extended to materialize | 
|
     * data of SQL user-defined types.  When a column contains | 
|
     * a structured or distinct value, the behavior of this method is as | 
|
     * if it were a call to: <code>getObject(columnIndex, | 
|
     * this.getStatement().getConnection().getTypeMap())</code>. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return a <code>java.lang.Object</code> holding the column value | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Object getObject(String columnName) throws SQLException {  | 
|
return getObject(findColumn(columnName));  | 
|
}  | 
|
//----------------------------------------------------------------  | 
|
    /** | 
|
     * Maps the given <code>JdbcRowSetImpl</code> column name to its | 
|
     * <code>JdbcRowSetImpl</code> column index and reflects this on | 
|
     * the internal <code>ResultSet</code> object. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @return the column index of the given column name | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     * (2) this rowset does not have a currently valid connection, | 
|
     * prepared statement, and result set | 
|
*/  | 
|
public int findColumn(String columnName) throws SQLException {  | 
|
checkState();  | 
|
return rs.findColumn(columnName);  | 
|
}  | 
|
//--------------------------JDBC 2.0-----------------------------------  | 
|
//---------------------------------------------------------------------  | 
|
// Getters and Setters  | 
|
//---------------------------------------------------------------------  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a | 
|
     * <code>java.io.Reader</code> object. | 
|
     * @return a <code>java.io.Reader</code> object that contains the column | 
|
     * value; if the value is SQL <code>NULL</code>, the value returned is | 
|
     * <code>null</code>. | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * | 
|
*/  | 
|
public java.io.Reader getCharacterStream(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getCharacterStream(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a | 
|
     * <code>java.io.Reader</code> object. | 
|
     * | 
|
     * @return a <code>java.io.Reader</code> object that contains the column | 
|
     * value; if the value is SQL <code>NULL</code>, the value returned is | 
|
     * <code>null</code>. | 
|
     * @param columnName the name of the column | 
|
     * @return the value in the specified column as a <code>java.io.Reader</code> | 
|
     * | 
|
*/  | 
|
public java.io.Reader getCharacterStream(String columnName) throws SQLException {  | 
|
return getCharacterStream(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a | 
|
     * <code>java.math.BigDecimal</code> with full precision. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @return the column value (full precision); | 
|
     * if the value is SQL <code>NULL</code>, the value returned is | 
|
     * <code>null</code>. | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public BigDecimal getBigDecimal(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getBigDecimal(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Gets the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a | 
|
     * <code>java.math.BigDecimal</code> with full precision. | 
|
     * | 
|
     * @param columnName the column name | 
|
     * @return the column value (full precision); | 
|
     * if the value is SQL <code>NULL</code>, the value returned is | 
|
     * <code>null</code>. | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public BigDecimal getBigDecimal(String columnName) throws SQLException {  | 
|
return getBigDecimal(findColumn(columnName));  | 
|
}  | 
|
//---------------------------------------------------------------------  | 
|
// Traversal/Positioning  | 
|
//---------------------------------------------------------------------  | 
|
    /** | 
|
     * Indicates whether the cursor is before the first row in | 
|
     * this rowset's <code>ResultSet</code> object. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is before the first row; | 
|
     * <code>false</code> if the cursor is at any other position or the | 
|
     * result set contains no rows | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public boolean isBeforeFirst() throws SQLException {  | 
|
checkState();  | 
|
return rs.isBeforeFirst();  | 
|
}  | 
|
    /** | 
|
     * Indicates whether the cursor is after the last row in | 
|
     * this rowset's <code>ResultSet</code> object. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is after the last row; | 
|
     * <code>false</code> if the cursor is at any other position or the | 
|
     * result set contains no rows | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public boolean isAfterLast() throws SQLException {  | 
|
checkState();  | 
|
return rs.isAfterLast();  | 
|
}  | 
|
    /** | 
|
     * Indicates whether the cursor is on the first row of | 
|
     * this rowset's <code>ResultSet</code> object. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is on the first row; | 
|
     * <code>false</code> otherwise | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public boolean isFirst() throws SQLException {  | 
|
checkState();  | 
|
return rs.isFirst();  | 
|
}  | 
|
    /** | 
|
     * Indicates whether the cursor is on the last row of | 
|
     * this rowset's <code>ResultSet</code> object. | 
|
     * 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 the result set. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is on the last row; | 
|
     * <code>false</code> otherwise | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public boolean isLast() throws SQLException {  | 
|
checkState();  | 
|
return rs.isLast();  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor to the front of | 
|
     * this rowset's <code>ResultSet</code> object, just before the | 
|
     * first row. This method has no effect if the result set contains no rows. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) the result set type is <code>TYPE_FORWARD_ONLY</code>, | 
|
     *            or (3) this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public void beforeFirst() throws SQLException {  | 
|
checkState();  | 
|
rs.beforeFirst();  | 
|
notifyCursorMoved();  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor to the end of | 
|
     * this rowset's <code>ResultSet</code> object, just after the | 
|
     * last row. This method has no effect if the result set contains no rows. | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) the result set type is <code>TYPE_FORWARD_ONLY</code>, | 
|
     *            or (3) this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public void afterLast() throws SQLException {  | 
|
checkState();  | 
|
rs.afterLast();  | 
|
notifyCursorMoved();  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor to the first row in | 
|
     * this rowset's <code>ResultSet</code> object. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is on a valid row; | 
|
     * <code>false</code> if there are no rows in the result set | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) the result set type is <code>TYPE_FORWARD_ONLY</code>, | 
|
     *            or (3) this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public boolean first() throws SQLException {  | 
|
checkState();  | 
|
boolean b = rs.first();  | 
|
notifyCursorMoved();  | 
|
return b;  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor to the last row in | 
|
     * this rowset's <code>ResultSet</code> object. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is on a valid row; | 
|
     * <code>false</code> if there are no rows in the result set | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) the result set type is <code>TYPE_FORWARD_ONLY</code>, | 
|
     *            or (3) this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public boolean last() throws SQLException {  | 
|
checkState();  | 
|
boolean b = rs.last();  | 
|
notifyCursorMoved();  | 
|
return b;  | 
|
}  | 
|
    /** | 
|
     * Retrieves the current row number.  The first row is number 1, the | 
|
     * second is number 2, and so on. | 
|
     * | 
|
     * @return the current row number; <code>0</code> if there is no current row | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public int getRow() throws SQLException {  | 
|
checkState();  | 
|
return rs.getRow();  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor to the given row number in | 
|
     * this rowset's internal <code>ResultSet</code> object. | 
|
     * | 
|
     * <p>If the row number is positive, the cursor moves to | 
|
     * the given row number with respect to the | 
|
     * beginning of the result set.  The first row is row 1, the second | 
|
     * is row 2, and so on. | 
|
     * | 
|
     * <p>If the given row number is negative, the cursor moves to | 
|
     * an absolute row position with respect to | 
|
     * the end of the result set.  For example, calling the method | 
|
     * <code>absolute(-1)</code> positions the | 
|
     * cursor on the last row, calling the method <code>absolute(-2)</code> | 
|
     * moves the cursor to the next-to-last row, and so on. | 
|
     * | 
|
     * <p>An attempt to position the cursor beyond the first/last row in | 
|
     * the result set leaves the cursor before the first row or after | 
|
     * the last row. | 
|
     * | 
|
     * <p><B>Note:</B> Calling <code>absolute(1)</code> is the same | 
|
     * as calling <code>first()</code>. Calling <code>absolute(-1)</code> | 
|
     * is the same as calling <code>last()</code>. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is on the result set; | 
|
     * <code>false</code> otherwise | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) the row is <code>0</code>, (3) the result set | 
|
     *            type is <code>TYPE_FORWARD_ONLY</code>, or (4) this | 
|
     *            rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public boolean absolute(int row) throws SQLException {  | 
|
checkState();  | 
|
boolean b = rs.absolute(row);  | 
|
notifyCursorMoved();  | 
|
return b;  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor a relative number of rows, either positive or negative. | 
|
     * Attempting to move beyond the first/last row in the | 
|
     * result set positions the cursor before/after the | 
|
     * the first/last row. Calling <code>relative(0)</code> is valid, but does | 
|
     * not change the cursor position. | 
|
     * | 
|
     * <p>Note: Calling the method <code>relative(1)</code> | 
|
     * is different from calling the method <code>next()</code> | 
|
     * because is makes sense to call <code>next()</code> when there | 
|
     * is no current row, | 
|
     * for example, when the cursor is positioned before the first row | 
|
     * or after the last row of the result set. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is on a row; | 
|
     * <code>false</code> otherwise | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) there is no current row, (3) the result set | 
|
     *            type is <code>TYPE_FORWARD_ONLY</code>, or (4) this | 
|
     *            rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public boolean relative(int rows) throws SQLException {  | 
|
checkState();  | 
|
boolean b = rs.relative(rows);  | 
|
notifyCursorMoved();  | 
|
return b;  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor to the previous row in this | 
|
     * <code>ResultSet</code> object. | 
|
     * | 
|
     * <p><B>Note:</B> Calling the method <code>previous()</code> is not the same as | 
|
     * calling the method <code>relative(-1)</code> because it | 
|
     * makes sense to call <code>previous()</code> when there is no current row. | 
|
     * | 
|
     * @return <code>true</code> if the cursor is on a valid row; | 
|
     * <code>false</code> if it is off the result set | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) the result set type is <code>TYPE_FORWARD_ONLY</code>, | 
|
     *            or (3) this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
*/  | 
|
public boolean previous() throws SQLException {  | 
|
checkState();  | 
|
boolean b = rs.previous();  | 
|
notifyCursorMoved();  | 
|
return b;  | 
|
}  | 
|
    /** | 
|
     * Gives a hint as to the direction in which the rows in this | 
|
     * <code>ResultSet</code> object will be processed. | 
|
     * The initial value is determined by the | 
|
     * <code>Statement</code> object | 
|
     * that produced this rowset's <code>ResultSet</code> object. | 
|
     * The fetch direction may be changed at any time. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) the result set type is <code>TYPE_FORWARD_ONLY</code> | 
|
     *            and the fetch direction is not <code>FETCH_FORWARD</code>, | 
|
     *            or (3) this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
     * @see java.sql.Statement#setFetchDirection | 
|
*/  | 
|
public void setFetchDirection(int direction) throws SQLException {  | 
|
checkState();  | 
|
rs.setFetchDirection(direction);  | 
|
}  | 
|
    /** | 
|
     * Returns the fetch direction for this | 
|
     * <code>ResultSet</code> object. | 
|
     * | 
|
     * @return the current fetch direction for this rowset's | 
|
     *         <code>ResultSet</code> object | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public int getFetchDirection() throws SQLException {  | 
|
        try { | 
|
checkState();  | 
|
} catch(SQLException sqle) {  | 
|
super.getFetchDirection();  | 
|
}  | 
|
return rs.getFetchDirection();  | 
|
}  | 
|
    /** | 
|
     * Gives the JDBC driver a hint as to the number of rows that should | 
|
     * be fetched from the database when more rows are needed for this | 
|
     * <code>ResultSet</code> object. | 
|
     * If the fetch size specified is zero, the JDBC driver | 
|
     * ignores the value and is free to make its own best guess as to what | 
|
     * the fetch size should be.  The default value is set by the | 
|
     * <code>Statement</code> object | 
|
     * that created the result set.  The fetch size may be changed at any time. | 
|
     * | 
|
     * @param rows the number of rows to fetch | 
|
     * @throws SQLException if (1) a database access error occurs, (2) the | 
|
     *            condition <code>0 <= rows <= this.getMaxRows()</code> is not | 
|
     *            satisfied, or (3) this rowset does not currently have a valid | 
|
     *            connection, prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void setFetchSize(int rows) throws SQLException {  | 
|
checkState();  | 
|
rs.setFetchSize(rows);  | 
|
}  | 
|
    /** | 
|
     * | 
|
     * Returns the fetch size for this | 
|
     * <code>ResultSet</code> object. | 
|
     * | 
|
     * @return the current fetch size for this rowset's <code>ResultSet</code> object | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public int getType() throws SQLException {  | 
|
        try { | 
|
checkState();  | 
|
} catch(SQLException sqle) {  | 
|
return super.getType();  | 
|
}  | 
|
// If the ResultSet has not been created, then return the default type  | 
|
        // otherwise return the type from the ResultSet. | 
|
if(rs == null) {  | 
|
return super.getType();  | 
|
        } else { | 
|
int rstype = rs.getType();  | 
|
return rstype;  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Returns the concurrency mode of this rowset's <code>ResultSet</code> object. | 
|
     * The concurrency used is determined by the | 
|
     * <code>Statement</code> object that created the result set. | 
|
     * | 
|
     * @return the concurrency type, either <code>CONCUR_READ_ONLY</code> | 
|
     * or <code>CONCUR_UPDATABLE</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public int getConcurrency() throws SQLException {  | 
|
        try { | 
|
checkState();  | 
|
} catch(SQLException sqle) {  | 
|
super.getConcurrency();  | 
|
}  | 
|
return rs.getConcurrency();  | 
|
}  | 
|
//---------------------------------------------------------------------  | 
|
// Updates  | 
|
//---------------------------------------------------------------------  | 
|
    /** | 
|
     * Indicates whether the current row has been updated.  The value returned | 
|
     * depends on whether or not the result set can detect updates. | 
|
     * | 
|
     * @return <code>true</code> if the row has been visibly updated | 
|
     * by the owner or another, and updates are detected | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * @see java.sql.DatabaseMetaData#updatesAreDetected | 
|
*/  | 
|
public boolean rowUpdated() throws SQLException {  | 
|
checkState();  | 
|
return rs.rowUpdated();  | 
|
}  | 
|
    /** | 
|
     * Indicates whether the current row has had an insertion. | 
|
     * The value returned depends on whether or not this | 
|
     * <code>ResultSet</code> object can detect visible inserts. | 
|
     * | 
|
     * @return <code>true</code> if a row has had an insertion | 
|
     * and insertions are detected; <code>false</code> otherwise | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * @see java.sql.DatabaseMetaData#insertsAreDetected | 
|
     * | 
|
*/  | 
|
public boolean rowInserted() throws SQLException {  | 
|
checkState();  | 
|
return rs.rowInserted();  | 
|
}  | 
|
    /** | 
|
     * Indicates whether a row has been deleted.  A deleted row may leave | 
|
     * a visible "hole" in a result set.  This method can be used to | 
|
     * detect holes in a result set.  The value returned depends on whether | 
|
     * or not this rowset's <code>ResultSet</code> object can detect deletions. | 
|
     * | 
|
     * @return <code>true</code> if a row was deleted and deletions are detected; | 
|
     * <code>false</code> otherwise | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * @see java.sql.DatabaseMetaData#deletesAreDetected | 
|
*/  | 
|
public boolean rowDeleted() throws SQLException {  | 
|
checkState();  | 
|
return rs.rowDeleted();  | 
|
}  | 
|
    /** | 
|
     * Gives a nullable column a null value. | 
|
     * | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> | 
|
     * or <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public void updateNull(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateNull(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>boolean</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateBoolean(int columnIndex, boolean x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateBoolean(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>byte</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateByte(int columnIndex, byte x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateByte(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>short</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateShort(int columnIndex, short x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateShort(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an <code>int</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public void updateInt(int columnIndex, int x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateInt(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>long</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateLong(int columnIndex, long x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateLong(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>float</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateFloat(int columnIndex, float x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateFloat(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>double</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateDouble(int columnIndex, double x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateDouble(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.math.BigDecimal</code> | 
|
     * value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateBigDecimal(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>String</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateString(int columnIndex, String x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateString(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>byte</code> array value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateBytes(int columnIndex, byte x[]) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateBytes(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.Date</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateDate(int columnIndex, java.sql.Date x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateDate(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.Time</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateTime(int columnIndex, java.sql.Time x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateTime(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.Timestamp</code> | 
|
     * value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateTimestamp(int columnIndex, java.sql.Timestamp x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateTimestamp(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an ascii stream value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            (2) or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateAsciiStream(int columnIndex, java.io.InputStream x, int length) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateAsciiStream(columnIndex, x, length);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a binary stream value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateBinaryStream(int columnIndex, java.io.InputStream x, int length) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateBinaryStream(columnIndex, x, length);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a character stream value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateCharacterStream(int columnIndex, java.io.Reader x, int length) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateCharacterStream(columnIndex, x, length);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an <code>Object</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @param scale for <code>java.sql.Types.DECIMAl</code> | 
|
     *  or <code>java.sql.Types.NUMERIC</code> types, | 
|
     *  this is the number of digits after the decimal point.  For all other | 
|
     *  types this value will be ignored. | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateObject(int columnIndex, Object x, int scale) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateObject(columnIndex, x, scale);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an <code>Object</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateObject(int columnIndex, Object x) throws SQLException {  | 
|
checkState();  | 
|
// To check the type and concurrency of the ResultSet  | 
|
        // to verify whether updates are possible or not | 
|
checkTypeConcurrency();  | 
|
rs.updateObject(columnIndex, x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>null</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public void updateNull(String columnName) throws SQLException {  | 
|
updateNull(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>boolean</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateBoolean(String columnName, boolean x) throws SQLException {  | 
|
updateBoolean(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>byte</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateByte(String columnName, byte x) throws SQLException {  | 
|
updateByte(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>short</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateShort(String columnName, short x) throws SQLException {  | 
|
updateShort(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an <code>int</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateInt(String columnName, int x) throws SQLException {  | 
|
updateInt(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>long</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateLong(String columnName, long x) throws SQLException {  | 
|
updateLong(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>float </code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateFloat(String columnName, float x) throws SQLException {  | 
|
updateFloat(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>double</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateDouble(String columnName, double x) throws SQLException {  | 
|
updateDouble(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.BigDecimal</code> | 
|
     * value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateBigDecimal(String columnName, BigDecimal x) throws SQLException {  | 
|
updateBigDecimal(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>String</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateString(String columnName, String x) throws SQLException {  | 
|
updateString(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>boolean</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * JDBC 2.0 | 
|
     * | 
|
     * Updates a column with a byte array value. | 
|
     * | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row, or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or <code>insertRow</code> | 
|
     * methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateBytes(String columnName, byte x[]) throws SQLException {  | 
|
updateBytes(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.Date</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateDate(String columnName, java.sql.Date x) throws SQLException {  | 
|
updateDate(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.Time</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateTime(String columnName, java.sql.Time x) throws SQLException {  | 
|
updateTime(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.Timestamp</code> | 
|
     * value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateTimestamp(String columnName, java.sql.Timestamp x) throws SQLException {  | 
|
updateTimestamp(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an ascii stream value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateAsciiStream(String columnName, java.io.InputStream x, int length) throws SQLException {  | 
|
updateAsciiStream(findColumn(columnName), x, length);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a binary stream value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateBinaryStream(String columnName, java.io.InputStream x, int length) throws SQLException {  | 
|
updateBinaryStream(findColumn(columnName), x, length);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a character stream value. | 
|
     * The <code>updateXXX</code> methods are used to update column values | 
|
     * in the current row or the insert row.  The <code>updateXXX</code> | 
|
     * methods do not update the underlying database; instead the | 
|
     * <code>updateRow</code> or <code>insertRow</code> methods are called | 
|
     * to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param reader the new column <code>Reader</code> stream value | 
|
     * @param length the length of the stream | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateCharacterStream(String columnName, java.io.Reader reader, int length) throws SQLException {  | 
|
updateCharacterStream(findColumn(columnName), reader, length);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an <code>Object</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @param scale for <code>java.sql.Types.DECIMAL</code> | 
|
     *  or <code>java.sql.Types.NUMERIC</code> types, | 
|
     *  this is the number of digits after the decimal point.  For all other | 
|
     *  types this value will be ignored. | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateObject(String columnName, Object x, int scale) throws SQLException {  | 
|
updateObject(findColumn(columnName), x, scale);  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an <code>Object</code> value. | 
|
     * The <code>updateXXX</code> methods are used to update column values in the | 
|
     * current row or the insert row.  The <code>updateXXX</code> methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the new column value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
*/  | 
|
public void updateObject(String columnName, Object x) throws SQLException {  | 
|
updateObject(findColumn(columnName), x);  | 
|
}  | 
|
    /** | 
|
     * Inserts the contents of the insert row into this | 
|
     * <code>ResultSet</code> object and into the database | 
|
     * and also notifies listeners that a row has changed. | 
|
     * The cursor must be on the insert row when this method is called. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) this method is called when the cursor is not | 
|
     *             on the insert row, (3) not all non-nullable columns in | 
|
     *             the insert row have been given a value, or (4) this | 
|
     *             rowset does not currently have a valid connection, | 
|
     *             prepared statement, and result set | 
|
*/  | 
|
public void insertRow() throws SQLException {  | 
|
checkState();  | 
|
rs.insertRow();  | 
|
notifyRowChanged();  | 
|
}  | 
|
    /** | 
|
     * Updates the underlying database with the new contents of the | 
|
     * current row of this rowset's <code>ResultSet</code> object | 
|
     * and notifies listeners that a row has changed. | 
|
     * This method cannot be called when the cursor is on the insert row. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) this method is called when the cursor is | 
|
     *             on the insert row, (3) the concurrency of the result | 
|
     *             set is <code>ResultSet.CONCUR_READ_ONLY</code>, or | 
|
     *             (4) this rowset does not currently have a valid connection, | 
|
     *             prepared statement, and result set | 
|
*/  | 
|
public void updateRow() throws SQLException {  | 
|
checkState();  | 
|
rs.updateRow();  | 
|
notifyRowChanged();  | 
|
}  | 
|
    /** | 
|
     * Deletes the current row from this rowset's <code>ResultSet</code> object | 
|
     * and from the underlying database and also notifies listeners that a row | 
|
     * has changed.  This method cannot be called when the cursor is on the insert | 
|
     * row. | 
|
     * | 
|
     * @throws SQLException if a database access error occurs | 
|
     * or if this method is called when the cursor is on the insert row | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) this method is called when the cursor is before the | 
|
     *            first row, after the last row, or on the insert row, | 
|
     *            (3) the concurrency of this rowset's result | 
|
     *            set is <code>ResultSet.CONCUR_READ_ONLY</code>, or | 
|
     *            (4) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public void deleteRow() throws SQLException {  | 
|
checkState();  | 
|
rs.deleteRow();  | 
|
notifyRowChanged();  | 
|
}  | 
|
    /** | 
|
     * Refreshes the current row of this rowset's <code>ResultSet</code> | 
|
     * object with its most recent value in the database.  This method | 
|
     * cannot be called when the cursor is on the insert row. | 
|
     * | 
|
     * <P>The <code>refreshRow</code> method provides a way for an | 
|
     * application to explicitly tell the JDBC driver to refetch | 
|
     * a row(s) from the database.  An application may want to call | 
|
     * <code>refreshRow</code> when caching or prefetching is being | 
|
     * done by the JDBC driver to fetch the latest value of a row | 
|
     * from the database.  The JDBC driver may actually refresh multiple | 
|
     * rows at once if the fetch size is greater than one. | 
|
     * | 
|
     * <P> All values are refetched subject to the transaction isolation | 
|
     * level and cursor sensitivity.  If <code>refreshRow</code> is called after | 
|
     * calling an <code>updateXXX</code> method, but before calling | 
|
     * the method <code>updateRow</code>, then the | 
|
     * updates made to the row are lost.  Calling the method | 
|
     * <code>refreshRow</code> frequently will likely slow performance. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) this method is called when the cursor is | 
|
     *             on the insert row, or (3) this rowset does not | 
|
     *             currently have a valid connection, prepared statement, | 
|
     *             and result set | 
|
     * | 
|
*/  | 
|
public void refreshRow() throws SQLException {  | 
|
checkState();  | 
|
rs.refreshRow();  | 
|
}  | 
|
    /** | 
|
     * Cancels the updates made to the current row in this | 
|
     * <code>ResultSet</code> object and notifies listeners that a row | 
|
     * has changed. This method may be called after calling an | 
|
     * <code>updateXXX</code> method(s) and before calling | 
|
     * the method <code>updateRow</code> to roll back | 
|
     * the updates made to a row.  If no updates have been made or | 
|
     * <code>updateRow</code> has already been called, this method has no | 
|
     * effect. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) this method is called when the cursor is | 
|
     *             on the insert row, or (3) this rowset does not | 
|
     *             currently have a valid connection, prepared statement, | 
|
     *             and result set | 
|
*/  | 
|
public void cancelRowUpdates() throws SQLException {  | 
|
checkState();  | 
|
rs.cancelRowUpdates();  | 
|
notifyRowChanged();  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor to the insert row.  The current cursor position is | 
|
     * remembered while the cursor is positioned on the insert row. | 
|
     * | 
|
     * The insert row is a special row associated with an updatable | 
|
     * result set.  It is essentially a buffer where a new row may | 
|
     * be constructed by calling the <code>updateXXX</code> methods prior to | 
|
     * inserting the row into the result set. | 
|
     * | 
|
     * Only the <code>updateXXX</code>, <code>getXXX</code>, | 
|
     * and <code>insertRow</code> methods may be | 
|
     * called when the cursor is on the insert row.  All of the columns in | 
|
     * a result set must be given a value each time this method is | 
|
     * called before calling <code>insertRow</code>. | 
|
     * An <code>updateXXX</code> method must be called before a | 
|
     * <code>getXXX</code> method can be called on a column value. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) this rowset's <code>ResultSet</code> object is | 
|
     *             not updatable, or (3) this rowset does not | 
|
     *             currently have a valid connection, prepared statement, | 
|
     *             and result set | 
|
     * | 
|
*/  | 
|
public void moveToInsertRow() throws SQLException {  | 
|
checkState();  | 
|
rs.moveToInsertRow();  | 
|
}  | 
|
    /** | 
|
     * Moves the cursor to the remembered cursor position, usually the | 
|
     * current row.  This method has no effect if the cursor is not on | 
|
     * the insert row. | 
|
     * | 
|
     * @throws SQLException if (1) a database access error occurs, | 
|
     *            (2) this rowset's <code>ResultSet</code> object is | 
|
     *             not updatable, or (3) this rowset does not | 
|
     *             currently have a valid connection, prepared statement, | 
|
     *             and result set | 
|
*/  | 
|
public void moveToCurrentRow() throws SQLException {  | 
|
checkState();  | 
|
rs.moveToCurrentRow();  | 
|
}  | 
|
    /** | 
|
     * Returns the <code>Statement</code> object that produced this | 
|
     * <code>ResultSet</code> object. | 
|
     * If the result set was generated some other way, such as by a | 
|
     * <code>DatabaseMetaData</code> method, this method returns | 
|
     * <code>null</code>. | 
|
     * | 
|
     * @return the <code>Statement</code> object that produced | 
|
     * this rowset's <code>ResultSet</code> object or <code>null</code> | 
|
     * if the result set was produced some other way | 
|
     * @throws SQLException if a database access error occurs | 
|
*/  | 
|
public java.sql.Statement getStatement() throws SQLException {  | 
|
if(rs != null)  | 
|
        { | 
|
return rs.getStatement();  | 
|
        } else { | 
|
return null;  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as an <code>Object</code>. | 
|
     * This method uses the given <code>Map</code> object | 
|
     * for the custom mapping of the | 
|
     * SQL structured or distinct type that is being retrieved. | 
|
     * | 
|
     * @param i the first column is 1, the second is 2, and so on | 
|
     * @param map a <code>java.util.Map</code> object that contains the mapping | 
|
     * from SQL type names to classes in the Java programming language | 
|
     * @return an <code>Object</code> in the Java programming language | 
|
     * representing the SQL value | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Object getObject(int i, java.util.Map<String,Class<?>> map)  | 
|
throws SQLException  | 
|
    { | 
|
checkState();  | 
|
return rs.getObject(i, map);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>Ref</code> object. | 
|
     * | 
|
     * @param i the first column is 1, the second is 2, and so on | 
|
     * @return a <code>Ref</code> object representing an SQL <code>REF</code> value | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Ref getRef(int i) throws SQLException {  | 
|
checkState();  | 
|
return rs.getRef(i);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>Blob</code> object. | 
|
     * | 
|
     * @param i the first column is 1, the second is 2, and so on | 
|
     * @return a <code>Blob</code> object representing the SQL <code>BLOB</code> | 
|
     *         value in the specified column | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Blob getBlob(int i) throws SQLException {  | 
|
checkState();  | 
|
return rs.getBlob(i);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>Clob</code> object. | 
|
     * | 
|
     * @param i the first column is 1, the second is 2, and so on | 
|
     * @return a <code>Clob</code> object representing the SQL <code>CLOB</code> | 
|
     *         value in the specified column | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Clob getClob(int i) throws SQLException {  | 
|
checkState();  | 
|
return rs.getClob(i);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as an <code>Array</code> object. | 
|
     * | 
|
     * @param i the first column is 1, the second is 2, and so on. | 
|
     * @return an <code>Array</code> object representing the SQL <code>ARRAY</code> | 
|
     *         value in the specified column | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Array getArray(int i) throws SQLException {  | 
|
checkState();  | 
|
return rs.getArray(i);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as an <code>Object</code>. | 
|
     * This method uses the specified <code>Map</code> object for | 
|
     * custom mapping if appropriate. | 
|
     * | 
|
     * @param colName the name of the column from which to retrieve the value | 
|
     * @param map a <code>java.util.Map</code> object that contains the mapping | 
|
     * from SQL type names to classes in the Java programming language | 
|
     * @return an <code>Object</code> representing the SQL | 
|
     *         value in the specified column | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Object getObject(String colName, java.util.Map<String,Class<?>> map)  | 
|
throws SQLException  | 
|
    { | 
|
return getObject(findColumn(colName), map);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>Ref</code> object. | 
|
     * | 
|
     * @param colName the column name | 
|
     * @return a <code>Ref</code> object representing the SQL <code>REF</code> value in | 
|
     *         the specified column | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Ref getRef(String colName) throws SQLException {  | 
|
return getRef(findColumn(colName));  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>Blob</code> object. | 
|
     * | 
|
     * @param colName the name of the column from which to retrieve the value | 
|
     * @return a <code>Blob</code> object representing the SQL <code>BLOB</code> | 
|
     *         value in the specified column | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Blob getBlob(String colName) throws SQLException {  | 
|
return getBlob(findColumn(colName));  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>Clob</code> object. | 
|
     * | 
|
     * @param colName the name of the column from which to retrieve the value | 
|
     * @return a <code>Clob</code> object representing the SQL <code>CLOB</code> | 
|
     *         value in the specified column | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Clob getClob(String colName) throws SQLException {  | 
|
return getClob(findColumn(colName));  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as an <code>Array</code> object. | 
|
     * | 
|
     * @param colName the name of the column from which to retrieve the value | 
|
     * @return an <code>Array</code> object representing the SQL <code>ARRAY</code> | 
|
     *         value in the specified column | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public Array getArray(String colName) throws SQLException {  | 
|
return getArray(findColumn(colName));  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>java.sql.Date</code> | 
|
     * object. This method uses the given calendar to construct an appropriate | 
|
     * millisecond value for the date if the underlying database does not store | 
|
     * timezone information. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param cal the <code>java.util.Calendar</code> object | 
|
     *        to use in constructing the date | 
|
     * @return the column value as a <code>java.sql.Date</code> object; | 
|
     *         if the value is SQL <code>NULL</code>, | 
|
     *         the value returned is <code>null</code> | 
|
     * @throws SQLException if (1) a database access error occurs | 
|
     *            or (2) this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Date getDate(int columnIndex, Calendar cal) throws SQLException {  | 
|
checkState();  | 
|
return rs.getDate(columnIndex, cal);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>java.sql.Date</code> | 
|
     * object. This method uses the given calendar to construct an appropriate | 
|
     * millisecond value for the date if the underlying database does not store | 
|
     * timezone information. | 
|
     * | 
|
     * @param columnName the SQL name of the column from which to retrieve the value | 
|
     * @param cal the <code>java.util.Calendar</code> object | 
|
     *        to use in constructing the date | 
|
     * @return the column value as a <code>java.sql.Date</code> object; | 
|
     *         if the value is SQL <code>NULL</code>, | 
|
     *         the value returned is <code>null</code> | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
     * | 
|
*/  | 
|
public java.sql.Date getDate(String columnName, Calendar cal) throws SQLException {  | 
|
return getDate(findColumn(columnName), cal);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>java.sql.Time</code> | 
|
     * object. This method uses the given calendar to construct an appropriate | 
|
     * millisecond value for the date if the underlying database does not store | 
|
     * timezone information. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param cal the <code>java.util.Calendar</code> object | 
|
     *        to use in constructing the time | 
|
     * @return the column value as a <code>java.sql.Time</code> object; | 
|
     *         if the value is SQL <code>NULL</code>, | 
|
     *         the value returned is <code>null</code> in the Java programming language | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Time getTime(int columnIndex, Calendar cal) throws SQLException {  | 
|
checkState();  | 
|
return rs.getTime(columnIndex, cal);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a <code>java.sql.Time</code> | 
|
     * object. This method uses the given calendar to construct an appropriate | 
|
     * millisecond value for the date if the underlying database does not store | 
|
     * timezone information. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @param cal the <code>java.util.Calendar</code> object | 
|
     *        to use in constructing the time | 
|
     * @return the column value as a <code>java.sql.Time</code> object; | 
|
     *         if the value is SQL <code>NULL</code>, | 
|
     *         the value returned is <code>null</code> in the Java programming language | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Time getTime(String columnName, Calendar cal) throws SQLException {  | 
|
return getTime(findColumn(columnName), cal);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a | 
|
     * <code>java.sql.Timestamp</code> object. | 
|
     * This method uses the given calendar to construct an appropriate millisecond | 
|
     * value for the timestamp if the underlying database does not store | 
|
     * timezone information. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, and so on | 
|
     * @param cal the <code>java.util.Calendar</code> object | 
|
     *        to use in constructing the timestamp | 
|
     * @return the column value as a <code>java.sql.Timestamp</code> object; | 
|
     *         if the value is SQL <code>NULL</code>, | 
|
     *         the value returned is <code>null</code> | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException {  | 
|
checkState();  | 
|
return rs.getTimestamp(columnIndex, cal);  | 
|
}  | 
|
    /** | 
|
     * Returns the value of the designated column in the current row | 
|
     * of this rowset's <code>ResultSet</code> object as a | 
|
     * <code>java.sql.Timestamp</code> object. | 
|
     * This method uses the given calendar to construct an appropriate millisecond | 
|
     * value for the timestamp if the underlying database does not store | 
|
     * timezone information. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @param cal the <code>java.util.Calendar</code> object | 
|
     *        to use in constructing the timestamp | 
|
     * @return the column value as a <code>java.sql.Timestamp</code> object; | 
|
     *         if the value is SQL <code>NULL</code>, | 
|
     *         the value returned is <code>null</code> | 
|
     * @throws SQLException if a database access error occurs | 
|
     *            or this rowset does not currently have a valid connection, | 
|
     *            prepared statement, and result set | 
|
*/  | 
|
public java.sql.Timestamp getTimestamp(String columnName, Calendar cal) throws SQLException {  | 
|
return getTimestamp(findColumn(columnName), cal);  | 
|
}  | 
|
    /** | 
|
     * Sets the designated column in either the current row or the insert | 
|
     * row of this <code>JdbcRowSetImpl</code> object with the given | 
|
     * <code>double</code> value. | 
|
     * | 
|
     * This method updates a column value in either the current row or | 
|
     * the insert row of this rowset, but it does not update the | 
|
     * database.  If the cursor is on a row in the rowset, the | 
|
     * method {@link #updateRow} must be called to update the database. | 
|
     * If the cursor is on the insert row, the method {@link #insertRow} | 
|
     * must be called, which will insert the new row into both this rowset | 
|
     * and the database. Both of these methods must be called before the | 
|
     * cursor moves to another row. | 
|
     * | 
|
     * @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 this rowset | 
|
     * @param ref the new <code>Ref</code> column value | 
|
     * @throws SQLException if (1) the given column index is out of bounds, | 
|
     *            (2) the cursor is not on one of this rowset's rows or its | 
|
     *            insert row, or (3) this rowset is | 
|
     *            <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
*/  | 
|
public void updateRef(int columnIndex, java.sql.Ref ref)  | 
|
throws SQLException {  | 
|
checkState();  | 
|
rs.updateRef(columnIndex, ref);  | 
|
}  | 
|
    /** | 
|
     * Sets the designated column in either the current row or the insert | 
|
     * row of this <code>JdbcRowSetImpl</code> object with the given | 
|
     * <code>double</code> value. | 
|
     * | 
|
     * This method updates a column value in either the current row or | 
|
     * the insert row of this rowset, but it does not update the | 
|
     * database.  If the cursor is on a row in the rowset, the | 
|
     * method {@link #updateRow} must be called to update the database. | 
|
     * If the cursor is on the insert row, the method {@link #insertRow} | 
|
     * must be called, which will insert the new row into both this rowset | 
|
     * and the database. Both of these methods must be called before the | 
|
     * cursor moves to another row. | 
|
     * | 
|
     * @param columnName a <code>String</code> object that must match the | 
|
     *        SQL name of a column in this rowset, ignoring case | 
|
     * @param ref the new column value | 
|
     * @throws SQLException if (1) the given column name does not match the | 
|
     *            name of a column in this rowset, (2) the cursor is not on | 
|
     *            one of this rowset's rows or its insert row, or (3) this | 
|
     *            rowset is <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
*/  | 
|
public void updateRef(String columnName, java.sql.Ref ref)  | 
|
throws SQLException {  | 
|
updateRef(findColumn(columnName), ref);  | 
|
}  | 
|
    /** | 
|
     * Sets the designated column in either the current row or the insert | 
|
     * row of this <code>JdbcRowSetImpl</code> object with the given | 
|
     * <code>double</code> value. | 
|
     * | 
|
     * This method updates a column value in either the current row or | 
|
     * the insert row of this rowset, but it does not update the | 
|
     * database.  If the cursor is on a row in the rowset, the | 
|
     * method {@link #updateRow} must be called to update the database. | 
|
     * If the cursor is on the insert row, the method {@link #insertRow} | 
|
     * must be called, which will insert the new row into both this rowset | 
|
     * and the database. Both of these methods must be called before the | 
|
     * cursor moves to another row. | 
|
     * | 
|
     * @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 this rowset | 
|
     * @param c the new column <code>Clob</code> value | 
|
     * @throws SQLException if (1) the given column index is out of bounds, | 
|
     *            (2) the cursor is not on one of this rowset's rows or its | 
|
     *            insert row, or (3) this rowset is | 
|
     *            <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
*/  | 
|
public void updateClob(int columnIndex, Clob c) throws SQLException {  | 
|
checkState();  | 
|
rs.updateClob(columnIndex, c);  | 
|
}  | 
|
    /** | 
|
     * Sets the designated column in either the current row or the insert | 
|
     * row of this <code>JdbcRowSetImpl</code> object with the given | 
|
     * <code>double</code> value. | 
|
     * | 
|
     * This method updates a column value in either the current row or | 
|
     * the insert row of this rowset, but it does not update the | 
|
     * database.  If the cursor is on a row in the rowset, the | 
|
     * method {@link #updateRow} must be called to update the database. | 
|
     * If the cursor is on the insert row, the method {@link #insertRow} | 
|
     * must be called, which will insert the new row into both this rowset | 
|
     * and the database. Both of these methods must be called before the | 
|
     * cursor moves to another row. | 
|
     * | 
|
     * @param columnName a <code>String</code> object that must match the | 
|
     *        SQL name of a column in this rowset, ignoring case | 
|
     * @param c the new column <code>Clob</code> value | 
|
     * @throws SQLException if (1) the given column name does not match the | 
|
     *            name of a column in this rowset, (2) the cursor is not on | 
|
     *            one of this rowset's rows or its insert row, or (3) this | 
|
     *            rowset is <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
*/  | 
|
public void updateClob(String columnName, Clob c) throws SQLException {  | 
|
updateClob(findColumn(columnName), c);  | 
|
}  | 
|
    /** | 
|
     * Sets the designated column in either the current row or the insert | 
|
     * row of this <code>JdbcRowSetImpl</code> object with the given | 
|
     * <code>java.sql.Blob</code> value. | 
|
     * | 
|
     * This method updates a column value in either the current row or | 
|
     * the insert row of this rowset, but it does not update the | 
|
     * database.  If the cursor is on a row in the rowset, the | 
|
     * method {@link #updateRow} must be called to update the database. | 
|
     * If the cursor is on the insert row, the method {@link #insertRow} | 
|
     * must be called, which will insert the new row into both this rowset | 
|
     * and the database. Both of these methods must be called before the | 
|
     * cursor moves to another row. | 
|
     * | 
|
     * @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 this rowset | 
|
     * @param b the new column <code>Blob</code> value | 
|
     * @throws SQLException if (1) the given column index is out of bounds, | 
|
     *            (2) the cursor is not on one of this rowset's rows or its | 
|
     *            insert row, or (3) this rowset is | 
|
     *            <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
*/  | 
|
public void updateBlob(int columnIndex, Blob b) throws SQLException {  | 
|
checkState();  | 
|
rs.updateBlob(columnIndex, b);  | 
|
}  | 
|
    /** | 
|
     * Sets the designated column in either the current row or the insert | 
|
     * row of this <code>JdbcRowSetImpl</code> object with the given | 
|
     * <code>java.sql.Blob </code> value. | 
|
     * | 
|
     * This method updates a column value in either the current row or | 
|
     * the insert row of this rowset, but it does not update the | 
|
     * database.  If the cursor is on a row in the rowset, the | 
|
     * method {@link #updateRow} must be called to update the database. | 
|
     * If the cursor is on the insert row, the method {@link #insertRow} | 
|
     * must be called, which will insert the new row into both this rowset | 
|
     * and the database. Both of these methods must be called before the | 
|
     * cursor moves to another row. | 
|
     * | 
|
     * @param columnName a <code>String</code> object that must match the | 
|
     *        SQL name of a column in this rowset, ignoring case | 
|
     * @param b the new column <code>Blob</code> value | 
|
     * @throws SQLException if (1) the given column name does not match the | 
|
     *            name of a column in this rowset, (2) the cursor is not on | 
|
     *            one of this rowset's rows or its insert row, or (3) this | 
|
     *            rowset is <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
*/  | 
|
public void updateBlob(String columnName, Blob b) throws SQLException {  | 
|
updateBlob(findColumn(columnName), b);  | 
|
}  | 
|
    /** | 
|
     * Sets the designated column in either the current row or the insert | 
|
     * row of this <code>JdbcRowSetImpl</code> object with the given | 
|
     * <code>java.sql.Array</code> values. | 
|
     * | 
|
     * This method updates a column value in either the current row or | 
|
     * the insert row of this rowset, but it does not update the | 
|
     * database.  If the cursor is on a row in the rowset, the | 
|
     * method {@link #updateRow} must be called to update the database. | 
|
     * If the cursor is on the insert row, the method {@link #insertRow} | 
|
     * must be called, which will insert the new row into both this rowset | 
|
     * and the database. Both of these methods must be called before the | 
|
     * cursor moves to another row. | 
|
     * | 
|
     * @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 this rowset | 
|
     * @param a the new column <code>Array</code> value | 
|
     * @throws SQLException if (1) the given column index is out of bounds, | 
|
     *            (2) the cursor is not on one of this rowset's rows or its | 
|
     *            insert row, or (3) this rowset is | 
|
     *            <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
*/  | 
|
public void updateArray(int columnIndex, Array a) throws SQLException {  | 
|
checkState();  | 
|
rs.updateArray(columnIndex, a);  | 
|
}  | 
|
    /** | 
|
     * Sets the designated column in either the current row or the insert | 
|
     * row of this <code>JdbcRowSetImpl</code> object with the given | 
|
     * <code>java.sql.Array</code> value. | 
|
     * | 
|
     * This method updates a column value in either the current row or | 
|
     * the insert row of this rowset, but it does not update the | 
|
     * database.  If the cursor is on a row in the rowset, the | 
|
     * method {@link #updateRow} must be called to update the database. | 
|
     * If the cursor is on the insert row, the method {@link #insertRow} | 
|
     * must be called, which will insert the new row into both this rowset | 
|
     * and the database. Both of these methods must be called before the | 
|
     * cursor moves to another row. | 
|
     * | 
|
     * @param columnName a <code>String</code> object that must match the | 
|
     *        SQL name of a column in this rowset, ignoring case | 
|
     * @param a the new column <code>Array</code> value | 
|
     * @throws SQLException if (1) the given column name does not match the | 
|
     *            name of a column in this rowset, (2) the cursor is not on | 
|
     *            one of this rowset's rows or its insert row, or (3) this | 
|
     *            rowset is <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
*/  | 
|
public void updateArray(String columnName, Array a) throws SQLException {  | 
|
updateArray(findColumn(columnName), a);  | 
|
}  | 
|
    /** | 
|
     * Provide interface coverage for getURL(int) in ResultSet->RowSet | 
|
*/  | 
|
public java.net.URL getURL(int columnIndex) throws SQLException {  | 
|
checkState();  | 
|
return rs.getURL(columnIndex);  | 
|
}  | 
|
    /** | 
|
     * Provide interface coverage for getURL(String) in ResultSet->RowSet | 
|
*/  | 
|
public java.net.URL getURL(String columnName) throws SQLException {  | 
|
return getURL(findColumn(columnName));  | 
|
}  | 
|
    /** | 
|
     * Return the RowSetWarning object for the current row of a | 
|
     * <code>JdbcRowSetImpl</code> | 
|
*/  | 
|
public RowSetWarning getRowSetWarnings() throws SQLException {  | 
|
return null;  | 
|
}  | 
|
    /** | 
|
     * Unsets the designated parameter to the given int array. | 
|
     * This was set using <code>setMatchColumn</code> | 
|
     * as the column which will form the basis of the join. | 
|
     * <P> | 
|
     * The parameter value unset by this method should be same | 
|
     * as was set. | 
|
     * | 
|
     * @param columnIdxes the index into this rowset | 
|
     *        object's internal representation of parameter values | 
|
     * @throws SQLException if an error occurs or the | 
|
     *  parameter index is out of bounds or if the columnIdx is | 
|
     *  not the same as set using <code>setMatchColumn(int [])</code> | 
|
*/  | 
|
public void unsetMatchColumn(int[] columnIdxes) throws SQLException {  | 
|
int i_val;  | 
|
for( int j= 0 ;j < columnIdxes.length; j++) {  | 
|
i_val = (Integer.parseInt(iMatchColumns.get(j).toString()));  | 
|
if(columnIdxes[j] != i_val) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.matchcols").toString());  | 
|
}  | 
|
}  | 
|
for( int i = 0;i < columnIdxes.length ;i++) {  | 
|
iMatchColumns.set(i,Integer.valueOf(-1));  | 
|
}  | 
|
}  | 
|
   /** | 
|
     * Unsets the designated parameter to the given String array. | 
|
     * This was set using <code>setMatchColumn</code> | 
|
     * as the column which will form the basis of the join. | 
|
     * <P> | 
|
     * The parameter value unset by this method should be same | 
|
     * as was set. | 
|
     * | 
|
     * @param columnIdxes the index into this rowset | 
|
     *        object's internal representation of parameter values | 
|
     * @throws SQLException if an error occurs or the | 
|
     *  parameter index is out of bounds or if the columnName is | 
|
     *  not the same as set using <code>setMatchColumn(String [])</code> | 
|
*/  | 
|
public void unsetMatchColumn(String[] columnIdxes) throws SQLException {  | 
|
for(int j = 0 ;j < columnIdxes.length; j++) {  | 
|
if( !columnIdxes[j].equals(strMatchColumns.get(j)) ){  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.matchcols").toString());  | 
|
}  | 
|
}  | 
|
for(int i = 0 ; i < columnIdxes.length; i++) {  | 
|
strMatchColumns.set(i,null);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Retrieves the column name as <code>String</code> array | 
|
     * that was set using <code>setMatchColumn(String [])</code> | 
|
     * for this rowset. | 
|
     * | 
|
     * @return a <code>String</code> array object that contains the column names | 
|
     *         for the rowset which has this the match columns | 
|
     * | 
|
     * @throws SQLException if an error occurs or column name is not set | 
|
*/  | 
|
public String[] getMatchColumnNames() throws SQLException {  | 
|
String []str_temp = new String[strMatchColumns.size()];  | 
|
if( strMatchColumns.get(0) == null) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.setmatchcols").toString());  | 
|
}  | 
|
strMatchColumns.copyInto(str_temp);  | 
|
return str_temp;  | 
|
}  | 
|
    /** | 
|
     * Retrieves the column id as <code>int</code> array that was set using | 
|
     * <code>setMatchColumn(int [])</code> for this rowset. | 
|
     * | 
|
     * @return a <code>int</code> array object that contains the column ids | 
|
     *         for the rowset which has this as the match columns. | 
|
     * | 
|
     * @throws SQLException if an error occurs or column index is not set | 
|
*/  | 
|
public int[] getMatchColumnIndexes() throws SQLException {  | 
|
Integer []int_temp = new Integer[iMatchColumns.size()];  | 
|
int [] i_temp = new int[iMatchColumns.size()];  | 
|
int i_val;  | 
|
i_val = iMatchColumns.get(0);  | 
|
if( i_val == -1 ) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.setmatchcols").toString());  | 
|
}  | 
|
iMatchColumns.copyInto(int_temp);  | 
|
for(int i = 0; i < int_temp.length; i++) {  | 
|
i_temp[i] = (int_temp[i]).intValue();  | 
|
}  | 
|
return i_temp;  | 
|
}  | 
|
    /** | 
|
     * Sets the designated parameter to the given int array. | 
|
     * This forms the basis of the join for the | 
|
     * <code>JoinRowSet</code> as the column which will form the basis of the | 
|
     * join. | 
|
     * <P> | 
|
     * The parameter value set by this method is stored internally and | 
|
     * will be supplied as the appropriate parameter in this rowset's | 
|
     * command when the method <code>getMatchColumnIndexes</code> is called. | 
|
     * | 
|
     * @param columnIdxes the indexes into this rowset | 
|
     *        object's internal representation of parameter values; the | 
|
     *        first parameter is 0, the second is 1, and so on; must be | 
|
     *        <code>0</code> or greater | 
|
     * @throws SQLException if an error occurs or the | 
|
     *                         parameter index is out of bounds | 
|
*/  | 
|
public void setMatchColumn(int[] columnIdxes) throws SQLException {  | 
|
for(int j = 0 ; j < columnIdxes.length; j++) {  | 
|
if( columnIdxes[j] < 0 ) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.matchcols1").toString());  | 
|
}  | 
|
}  | 
|
for(int i = 0 ;i < columnIdxes.length; i++) {  | 
|
iMatchColumns.add(i,Integer.valueOf(columnIdxes[i]));  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Sets the designated parameter to the given String array. | 
|
     *  This forms the basis of the join for the | 
|
     * <code>JoinRowSet</code> as the column which will form the basis of the | 
|
     * join. | 
|
     * <P> | 
|
     * The parameter value set by this method is stored internally and | 
|
     * will be supplied as the appropriate parameter in this rowset's | 
|
     * command when the method <code>getMatchColumn</code> is called. | 
|
     * | 
|
     * @param columnNames the name of the column into this rowset | 
|
     *        object's internal representation of parameter values | 
|
     * @throws SQLException if an error occurs or the | 
|
     *  parameter index is out of bounds | 
|
*/  | 
|
public void setMatchColumn(String[] columnNames) throws SQLException {  | 
|
for(int j = 0; j < columnNames.length; j++) {  | 
|
if( columnNames[j] == null || columnNames[j].equals("")) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.matchcols2").toString());  | 
|
}  | 
|
}  | 
|
for( int i = 0; i < columnNames.length; i++) {  | 
|
strMatchColumns.add(i,columnNames[i]);  | 
|
}  | 
|
}  | 
|
        /** | 
|
     * Sets the designated parameter to the given <code>int</code> | 
|
     * object.  This forms the basis of the join for the | 
|
     * <code>JoinRowSet</code> as the column which will form the basis of the | 
|
     * join. | 
|
     * <P> | 
|
     * The parameter value set by this method is stored internally and | 
|
     * will be supplied as the appropriate parameter in this rowset's | 
|
     * command when the method <code>getMatchColumn</code> is called. | 
|
     * | 
|
     * @param columnIdx the index into this rowset | 
|
     *        object's internal representation of parameter values; the | 
|
     *        first parameter is 0, the second is 1, and so on; must be | 
|
     *        <code>0</code> or greater | 
|
     * @throws SQLException if an error occurs or the | 
|
     *                         parameter index is out of bounds | 
|
*/  | 
|
public void setMatchColumn(int columnIdx) throws SQLException {  | 
|
        // validate, if col is ok to be set | 
|
if(columnIdx < 0) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.matchcols1").toString());  | 
|
        } else { | 
|
            // set iMatchColumn | 
|
iMatchColumns.set(0, Integer.valueOf(columnIdx));  | 
|
//strMatchColumn = null;  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Sets the designated parameter to the given <code>String</code> | 
|
     * object.  This forms the basis of the join for the | 
|
     * <code>JoinRowSet</code> as the column which will form the basis of the | 
|
     * join. | 
|
     * <P> | 
|
     * The parameter value set by this method is stored internally and | 
|
     * will be supplied as the appropriate parameter in this rowset's | 
|
     * command when the method <code>getMatchColumn</code> is called. | 
|
     * | 
|
     * @param columnName the name of the column into this rowset | 
|
     *        object's internal representation of parameter values | 
|
     * @throws SQLException if an error occurs or the | 
|
     *  parameter index is out of bounds | 
|
*/  | 
|
public void setMatchColumn(String columnName) throws SQLException {  | 
|
        // validate, if col is ok to be set | 
|
if(columnName == null || (columnName= columnName.trim()).equals("")) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.matchcols2").toString());  | 
|
        } else { | 
|
            // set strMatchColumn | 
|
strMatchColumns.set(0, columnName);  | 
|
//iMatchColumn = -1;  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Unsets the designated parameter to the given <code>int</code> | 
|
     * object.  This was set using <code>setMatchColumn</code> | 
|
     * as the column which will form the basis of the join. | 
|
     * <P> | 
|
     * The parameter value unset by this method should be same | 
|
     * as was set. | 
|
     * | 
|
     * @param columnIdx the index into this rowset | 
|
     *        object's internal representation of parameter values | 
|
     * @throws SQLException if an error occurs or the | 
|
     *  parameter index is out of bounds or if the columnIdx is | 
|
     *  not the same as set using <code>setMatchColumn(int)</code> | 
|
*/  | 
|
public void unsetMatchColumn(int columnIdx) throws SQLException {  | 
|
        // check if we are unsetting the SAME column | 
|
if(! iMatchColumns.get(0).equals(Integer.valueOf(columnIdx) ) ) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.unsetmatch").toString());  | 
|
} else if(strMatchColumns.get(0) != null) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.usecolname").toString());  | 
|
        } else { | 
|
                // that is, we are unsetting it. | 
|
iMatchColumns.set(0, Integer.valueOf(-1));  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Unsets the designated parameter to the given <code>String</code> | 
|
     * object.  This was set using <code>setMatchColumn</code> | 
|
     * as the column which will form the basis of the join. | 
|
     * <P> | 
|
     * The parameter value unset by this method should be same | 
|
     * as was set. | 
|
     * | 
|
     * @param columnName the index into this rowset | 
|
     *        object's internal representation of parameter values | 
|
     * @throws SQLException if an error occurs or the | 
|
     *  parameter index is out of bounds or if the columnName is | 
|
     *  not the same as set using <code>setMatchColumn(String)</code> | 
|
     * | 
|
*/  | 
|
public void unsetMatchColumn(String columnName) throws SQLException {  | 
|
        // check if we are unsetting the same column | 
|
columnName = columnName.trim();  | 
|
if(!((strMatchColumns.get(0)).equals(columnName))) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.unsetmatch").toString());  | 
|
} else if(iMatchColumns.get(0) > 0) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.usecolid").toString());  | 
|
        } else { | 
|
strMatchColumns.set(0, null); // that is, we are unsetting it.  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Retrieves the <code>DatabaseMetaData</code> associated with | 
|
     * the connection handle associated this this | 
|
     * <code>JdbcRowSet</code> object. | 
|
     * | 
|
     * @return the <code>DatabaseMetadata</code> associated | 
|
     *  with the rowset's connection. | 
|
     * @throws SQLException if a database access error occurs | 
|
*/  | 
|
public DatabaseMetaData getDatabaseMetaData() throws SQLException {  | 
|
Connection con = connect();  | 
|
return con.getMetaData();  | 
|
}  | 
|
    /** | 
|
     * Retrieves the <code>ParameterMetaData</code> associated with | 
|
     * the connection handle associated this this | 
|
     * <code>JdbcRowSet</code> object. | 
|
     * | 
|
     * @return the <code>ParameterMetadata</code> associated | 
|
     *  with the rowset's connection. | 
|
     * @throws SQLException if a database access error occurs | 
|
*/  | 
|
public ParameterMetaData getParameterMetaData() throws SQLException {  | 
|
prepare();  | 
|
return (ps.getParameterMetaData());  | 
|
}  | 
|
    /** | 
|
     * Commits all updates in this <code>JdbcRowSet</code> object by | 
|
     * wrapping the internal <code>Connection</code> object and calling | 
|
     * its <code>commit</code> method. | 
|
     * This method sets this <code>JdbcRowSet</code> object's private field | 
|
     * <code>rs</code> to <code>null</code> after saving its value to another | 
|
     * object, but only if the <code>ResultSet</code> | 
|
     * constant <code>HOLD_CURSORS_OVER_COMMIT</code> has not been set. | 
|
     * (The field <code>rs</code> is this <code>JdbcRowSet</code> object's | 
|
     * <code>ResultSet</code> object.) | 
|
     * | 
|
     * @throws SQLException if autoCommit is set to true or if a database | 
|
     * access error occurs | 
|
*/  | 
|
public void commit() throws SQLException {  | 
|
conn.commit();  | 
|
// Checking the holadbility value and making the result set handle null  | 
|
// Added as per Rave requirements  | 
|
if( conn.getHoldability() != HOLD_CURSORS_OVER_COMMIT) {  | 
|
rs = null;  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Sets auto-commit on the internal <code>Connection</code> object with this | 
|
     * <code>JdbcRowSet</code> | 
|
     * | 
|
     * @throws SQLException if a database access error occurs | 
|
*/  | 
|
public void setAutoCommit(boolean autoCommit) throws SQLException {  | 
|
// The connection object should be there  | 
|
// in order to commit the connection handle on or off.  | 
|
if(conn != null) {  | 
|
conn.setAutoCommit(autoCommit);  | 
|
        } else { | 
|
// Coming here means the connection object is null.  | 
|
// So generate a connection handle internally, since  | 
|
// a JdbcRowSet is always connected to a db, it is fine  | 
|
// to get a handle to the connection.  | 
|
// Get hold of a connection handle  | 
|
           // and change the autcommit as passesd. | 
|
conn = connect();  | 
|
// After setting the below the conn.getAutoCommit()  | 
|
           // should return the same value. | 
|
conn.setAutoCommit(autoCommit);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Returns the auto-commit status with this <code>JdbcRowSet</code>. | 
|
     * | 
|
     * @return true if auto commit is true; false otherwise | 
|
     * @throws SQLException if a database access error occurs | 
|
*/  | 
|
public boolean getAutoCommit() throws SQLException {  | 
|
return conn.getAutoCommit();  | 
|
}  | 
|
    /** | 
|
     * Rolls back all the updates in this <code>JdbcRowSet</code> object by | 
|
     * wrapping the internal <code>Connection</code> object and calling its | 
|
     * <code>rollback</code> method. | 
|
     * This method sets this <code>JdbcRowSet</code> object's private field | 
|
     * <code>rs</code> to <code>null</code> after saving its value to another object. | 
|
     * (The field <code>rs</code> is this <code>JdbcRowSet</code> object's | 
|
     * internal <code>ResultSet</code> object.) | 
|
     * | 
|
     * @throws SQLException if autoCommit is set to true or a database | 
|
     * access error occurs | 
|
*/  | 
|
public void rollback() throws SQLException {  | 
|
conn.rollback();  | 
|
// Makes the result ste handle null after rollback  | 
|
// Added as per Rave requirements  | 
|
rs = null;  | 
|
}  | 
|
    /** | 
|
     * Rollbacks all the updates in the <code>JdbcRowSet</code> back to the | 
|
     * last <code>Savepoint</code> transaction marker. Wraps the internal | 
|
     * <code>Connection</code> object and call it's rollback method | 
|
     * | 
|
     * @param s the <code>Savepoint</code> transaction marker to roll the | 
|
     * transaction to. | 
|
     * @throws SQLException if autoCommit is set to true; or ia a database | 
|
     * access error occurs | 
|
*/  | 
|
public void rollback(Savepoint s) throws SQLException {  | 
|
conn.rollback(s);  | 
|
}  | 
|
    // Setting the ResultSet Type and Concurrency | 
|
protected void setParams() throws SQLException {  | 
|
if(rs == null) {  | 
|
setType(ResultSet.TYPE_SCROLL_INSENSITIVE);  | 
|
setConcurrency(ResultSet.CONCUR_UPDATABLE);  | 
|
}  | 
|
        else { | 
|
setType(rs.getType());  | 
|
setConcurrency(rs.getConcurrency());  | 
|
}  | 
|
}  | 
|
    // Checking ResultSet Type and Concurrency | 
|
private void checkTypeConcurrency() throws SQLException {  | 
|
if(rs.getType() == TYPE_FORWARD_ONLY ||  | 
|
rs.getConcurrency() == CONCUR_READ_ONLY) {  | 
|
throw new SQLException(resBundle.handleGetObject("jdbcrowsetimpl.resnotupd").toString());  | 
|
}  | 
|
}  | 
|
// Returns a Connection Handle  | 
|
// Added as per Rave requirements  | 
|
/**  | 
|
* Gets this <code>JdbcRowSet</code> object's Connection property  | 
|
*  | 
|
*  | 
|
* @return the <code>Connection</code> object associated with this rowset;  | 
|
*/  | 
|
protected Connection getConnection() {  | 
|
return conn;  | 
|
}  | 
|
// Sets the connection handle with the parameter  | 
|
// Added as per rave requirements  | 
|
/**  | 
|
* Sets this <code>JdbcRowSet</code> object's connection property  | 
|
* to the given <code>Connection</code> object.  | 
|
*  | 
|
* @param connection the <code>Connection</code> object.  | 
|
*/  | 
|
protected void setConnection(Connection connection) {  | 
|
conn = connection;  | 
|
}  | 
|
// Returns a PreparedStatement Handle  | 
|
// Added as per Rave requirements  | 
|
/**  | 
|
* Gets this <code>JdbcRowSet</code> object's PreparedStatement property  | 
|
*  | 
|
*  | 
|
* @return the <code>PreparedStatement</code> object associated with this rowset;  | 
|
*/  | 
|
protected PreparedStatement getPreparedStatement() {  | 
|
return ps;  | 
|
}  | 
|
//Sets the prepared statement handle to the parameter  | 
|
// Added as per Rave requirements  | 
|
    /** | 
|
     * Sets this <code>JdbcRowSet</code> object's preparedtsatement property | 
|
     * to the given <code>PreparedStatemennt</code> object. | 
|
     * | 
|
     * @param preparedStatement the <code>PreparedStatement</code> object | 
|
     * | 
|
*/  | 
|
protected void setPreparedStatement(PreparedStatement preparedStatement) {  | 
|
ps = preparedStatement;  | 
|
}  | 
|
// Returns a ResultSet handle  | 
|
// Added as per Rave requirements  | 
|
/**  | 
|
* Gets this <code>JdbcRowSet</code> object's ResultSet property  | 
|
*  | 
|
*  | 
|
* @return the <code>ResultSet</code> object associated with this rowset;  | 
|
*/  | 
|
protected ResultSet getResultSet() throws SQLException {  | 
|
checkState();  | 
|
return rs;  | 
|
}  | 
|
// Sets the result set handle to the parameter  | 
|
// Added as per Rave requirements  | 
|
    /** | 
|
     * Sets this <code>JdbcRowSet</code> object's resultset property | 
|
     * to the given <code>ResultSet</code> object. | 
|
     * | 
|
     * @param resultSet the <code>ResultSet</code> object | 
|
     * | 
|
*/  | 
|
protected void setResultSet(ResultSet resultSet) {  | 
|
rs = resultSet;  | 
|
}  | 
|
    /** | 
|
     * Sets this <code>JdbcRowSet</code> object's <code>command</code> property to | 
|
     * the given <code>String</code> object and clears the parameters, if any, | 
|
     * that were set for the previous command. In addition, | 
|
     * if the <code>command</code> property has previously been set to a | 
|
     * non-null value and it is | 
|
     * different from the <code>String</code> object supplied, | 
|
     * this method sets this <code>JdbcRowSet</code> object's private fields | 
|
     * <code>ps</code> and <code>rs</code> to <code>null</code>. | 
|
     * (The field <code>ps</code> is its <code>PreparedStatement</code> object, and | 
|
     * the field <code>rs</code> is its <code>ResultSet</code> object.) | 
|
     * <P> | 
|
     * The <code>command</code> property may not be needed if the <code>RowSet</code> | 
|
     * object gets its data from a source that does not support commands, | 
|
     * such as a spreadsheet or other tabular file. | 
|
     * Thus, this property is optional and may be <code>null</code>. | 
|
     * | 
|
     * @param command a <code>String</code> object containing an SQL query | 
|
     *            that will be set as this <code>RowSet</code> object's command | 
|
     *            property; may be <code>null</code> but may not be an empty string | 
|
     * @throws SQLException if an empty string is provided as the command value | 
|
     * @see #getCommand | 
|
*/  | 
|
public void setCommand(String command) throws SQLException {  | 
|
if (getCommand() != null) {  | 
|
if(!getCommand().equals(command)) {  | 
|
super.setCommand(command);  | 
|
ps = null;  | 
|
rs = null;  | 
|
}  | 
|
}  | 
|
       else { | 
|
super.setCommand(command);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Sets the <code>dataSourceName</code> property for this <code>JdbcRowSet</code> | 
|
     * object to the given logical name and sets this <code>JdbcRowSet</code> object's | 
|
     * Url property to <code>null</code>. In addition, if the <code>dataSourceName</code> | 
|
     * property has previously been set and is different from the one supplied, | 
|
     * this method sets this <code>JdbcRowSet</code> object's private fields | 
|
     * <code>ps</code>, <code>rs</code>, and <code>conn</code> to <code>null</code>. | 
|
     * (The field <code>ps</code> is its <code>PreparedStatement</code> object, | 
|
     * the field <code>rs</code> is its <code>ResultSet</code> object, and | 
|
     * the field <code>conn</code> is its <code>Connection</code> object.) | 
|
     * <P> | 
|
     * The name supplied to this method must have been bound to a | 
|
     * <code>DataSource</code> object in a JNDI naming service so that an | 
|
     * application can do a lookup using that name to retrieve the | 
|
     * <code>DataSource</code> object bound to it. The <code>DataSource</code> | 
|
     * object can then be used to establish a connection to the data source it | 
|
     * represents. | 
|
     * <P> | 
|
     * Users should set either the Url property or the dataSourceName property. | 
|
     * If both properties are set, the driver will use the property set most recently. | 
|
     * | 
|
     * @param dsName a <code>String</code> object with the name that can be supplied | 
|
     *        to a naming service based on JNDI technology to retrieve the | 
|
     *        <code>DataSource</code> object that can be used to get a connection; | 
|
     *        may be <code>null</code> | 
|
     * @throws SQLException if there is a problem setting the | 
|
     *          <code>dataSourceName</code> property | 
|
     * @see #getDataSourceName | 
|
*/  | 
|
public void setDataSourceName(String dsName) throws SQLException{  | 
|
if(getDataSourceName() != null) {  | 
|
if(!getDataSourceName().equals(dsName)) {  | 
|
super.setDataSourceName(dsName);  | 
|
conn = null;  | 
|
ps = null;  | 
|
rs = null;  | 
|
}  | 
|
}  | 
|
       else { | 
|
super.setDataSourceName(dsName);  | 
|
}  | 
|
}  | 
|
/**  | 
|
* Sets the Url property for this <code>JdbcRowSet</code> object  | 
|
* to the given <code>String</code> object and sets the dataSource name  | 
|
* property to <code>null</code>. In addition, if the Url property has  | 
|
* previously been set to a non <code>null</code> value and its value  | 
|
* is different from the value to be set,  | 
|
* this method sets this <code>JdbcRowSet</code> object's private fields  | 
|
* <code>ps</code>, <code>rs</code>, and <code>conn</code> to <code>null</code>.  | 
|
* (The field <code>ps</code> is its <code>PreparedStatement</code> object,  | 
|
* the field <code>rs</code> is its <code>ResultSet</code> object, and  | 
|
* the field <code>conn</code> is its <code>Connection</code> object.)  | 
|
* <P>  | 
|
* The Url property is a JDBC URL that is used when  | 
|
* the connection is created using a JDBC technology-enabled driver  | 
|
     * ("JDBC driver") and the <code>DriverManager</code>. | 
|
* The correct JDBC URL for the specific driver to be used can be found  | 
|
* in the driver documentation. Although there are guidelines for for how  | 
|
* a JDBC URL is formed,  | 
|
* a driver vendor can specify any <code>String</code> object except  | 
|
* one with a length of <code>0</code> (an empty string).  | 
|
* <P>  | 
|
* Setting the Url property is optional if connections are established using  | 
|
* a <code>DataSource</code> object instead of the <code>DriverManager</code>.  | 
|
* The driver will use either the URL property or the  | 
|
* dataSourceName property to create a connection, whichever was  | 
|
* specified most recently. If an application uses a JDBC URL, it  | 
|
* must load a JDBC driver that accepts the JDBC URL before it uses the  | 
|
* <code>RowSet</code> object to connect to a database. The <code>RowSet</code>  | 
|
* object will use the URL internally to create a database connection in order  | 
|
* to read or write data.  | 
|
*  | 
|
* @param url a <code>String</code> object that contains the JDBC URL  | 
|
* that will be used to establish the connection to a database for this  | 
|
* <code>RowSet</code> object; may be <code>null</code> but must not  | 
|
* be an empty string  | 
|
* @throws SQLException if an error occurs setting the Url property or the  | 
|
* parameter supplied is a string with a length of <code>0</code> (an  | 
|
* empty string)  | 
|
* @see #getUrl  | 
|
*/  | 
|
public void setUrl(String url) throws SQLException {  | 
|
if(getUrl() != null) {  | 
|
if(!getUrl().equals(url)) {  | 
|
super.setUrl(url);  | 
|
conn = null;  | 
|
ps = null;  | 
|
rs = null;  | 
|
}  | 
|
}  | 
|
       else { | 
|
super.setUrl(url);  | 
|
}  | 
|
}  | 
|
     /** | 
|
     * Sets the username property for this <code>JdbcRowSet</code> object | 
|
     * to the given user name. Because it | 
|
     * is not serialized, the username property is set at run time before | 
|
     * calling the method <code>execute</code>. In addition, | 
|
     * if the <code>username</code> property is already set with a | 
|
     * non-null value and that value is different from the <code>String</code> | 
|
     * object to be set, | 
|
     * this method sets this <code>JdbcRowSet</code> object's private fields | 
|
     * <code>ps</code>, <code>rs</code>, and <code>conn</code> to <code>null</code>. | 
|
     * (The field <code>ps</code> is its <code>PreparedStatement</code> object, | 
|
     * <code>rs</code> is its <code>ResultSet</code> object, and | 
|
     * <code>conn</code> is its <code>Connection</code> object.) | 
|
     * Setting these fields to <code>null</code> ensures that only current | 
|
     * values will be used. | 
|
     * | 
|
     * @param uname the <code>String</code> object containing the user name that | 
|
     *     is supplied to the data source to create a connection. It may be null. | 
|
     * @see #getUsername | 
|
*/  | 
|
public void setUsername(String uname) {  | 
|
if( getUsername() != null) {  | 
|
if(!getUsername().equals(uname)) {  | 
|
super.setUsername(uname);  | 
|
conn = null;  | 
|
ps = null;  | 
|
rs = null;  | 
|
}  | 
|
}  | 
|
       else{ | 
|
super.setUsername(uname);  | 
|
}  | 
|
}  | 
|
     /** | 
|
     * Sets the password property for this <code>JdbcRowSet</code> object | 
|
     * to the given <code>String</code> object. Because it | 
|
     * is not serialized, the password property is set at run time before | 
|
     * calling the method <code>execute</code>. Its default valus is | 
|
     * <code>null</code>. In addition, | 
|
     * if the <code>password</code> property is already set with a | 
|
     * non-null value and that value is different from the one being set, | 
|
     * this method sets this <code>JdbcRowSet</code> object's private fields | 
|
     * <code>ps</code>, <code>rs</code>, and <code>conn</code> to <code>null</code>. | 
|
     * (The field <code>ps</code> is its <code>PreparedStatement</code> object, | 
|
     * <code>rs</code> is its <code>ResultSet</code> object, and | 
|
     * <code>conn</code> is its <code>Connection</code> object.) | 
|
     * Setting these fields to <code>null</code> ensures that only current | 
|
     * values will be used. | 
|
     * | 
|
     * @param password the <code>String</code> object that represents the password | 
|
     *     that must be supplied to the database to create a connection | 
|
*/  | 
|
public void setPassword(String password) {  | 
|
if ( getPassword() != null) {  | 
|
if(!getPassword().equals(password)) {  | 
|
super.setPassword(password);  | 
|
conn = null;  | 
|
ps = null;  | 
|
rs = null;  | 
|
}  | 
|
}  | 
|
       else{ | 
|
super.setPassword(password);  | 
|
}  | 
|
}  | 
|
/**  | 
|
* Sets the type for this <code>RowSet</code> object to the specified type.  | 
|
* The default type is <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>.  | 
|
*  | 
|
* @param type one of the following constants:  | 
|
* <code>ResultSet.TYPE_FORWARD_ONLY</code>,  | 
|
* <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or  | 
|
* <code>ResultSet.TYPE_SCROLL_SENSITIVE</code>  | 
|
* @throws SQLException if the parameter supplied is not one of the  | 
|
* following constants:  | 
|
* <code>ResultSet.TYPE_FORWARD_ONLY</code> or  | 
|
* <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>  | 
|
* <code>ResultSet.TYPE_SCROLL_SENSITIVE</code>  | 
|
* @see #getConcurrency  | 
|
* @see #getType  | 
|
*/  | 
|
public void setType(int type) throws SQLException {  | 
|
int oldVal;  | 
|
       try { | 
|
oldVal = getType();  | 
|
}catch(SQLException ex) {  | 
|
oldVal = 0;  | 
|
}  | 
|
if(oldVal != type) {  | 
|
super.setType(type);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Sets the concurrency for this <code>RowSet</code> object to | 
|
     * the specified concurrency. The default concurrency for any <code>RowSet</code> | 
|
     * object (connected or disconnected) is <code>ResultSet.CONCUR_UPDATABLE</code>, | 
|
     * but this method may be called at any time to change the concurrency. | 
|
     * | 
|
     * @param concur one of the following constants: | 
|
     *                    <code>ResultSet.CONCUR_READ_ONLY</code> or | 
|
     *                    <code>ResultSet.CONCUR_UPDATABLE</code> | 
|
     * @throws SQLException if the parameter supplied is not one of the | 
|
     *         following constants: | 
|
     *          <code>ResultSet.CONCUR_UPDATABLE</code> or | 
|
     *          <code>ResultSet.CONCUR_READ_ONLY</code> | 
|
     * @see #getConcurrency | 
|
     * @see #isReadOnly | 
|
*/  | 
|
public void setConcurrency(int concur) throws SQLException {  | 
|
int oldVal;  | 
|
       try { | 
|
oldVal = getConcurrency();  | 
|
}catch(NullPointerException ex) {  | 
|
oldVal = 0;  | 
|
}  | 
|
if(oldVal != concur) {  | 
|
super.setConcurrency(concur);  | 
|
}  | 
|
}  | 
|
    /** | 
|
     * Retrieves the value of the designated <code>SQL XML</code> parameter as a | 
|
     * <code>SQLXML</code> object in the Java programming language. | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @return a SQLXML object that maps an SQL XML value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public SQLXML getSQLXML(int columnIndex) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Retrieves the value of the designated <code>SQL XML</code> parameter as a | 
|
     * <code>SQLXML</code> object in the Java programming language. | 
|
     * @param colName the name of the column from which to retrieve the value | 
|
     * @return a SQLXML object that maps an SQL XML value | 
|
     * @throws SQLException if a database access error occurs | 
|
*/  | 
|
public SQLXML getSQLXML(String colName) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Retrieves the value of the designated column in the current row of this | 
|
     * <code>ResultSet</code> object as a java.sql.RowId object in the Java | 
|
     * programming language. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second 2, ... | 
|
     * @return the column value if the value is a SQL <code>NULL</code> the | 
|
     *     value returned is <code>null</code> | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public RowId getRowId(int columnIndex) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Retrieves the value of the designated column in the current row of this | 
|
     * <code>ResultSet</code> object as a java.sql.RowId object in the Java | 
|
     * programming language. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @return the column value if the value is a SQL <code>NULL</code> the | 
|
     *     value returned is <code>null</code> | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public RowId getRowId(String columnName) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>RowId</code> value. The updater | 
|
     * methods are used to update column values in the current row or the insert | 
|
     * row. The updater methods do not update the underlying database; instead | 
|
     * the <code>updateRow<code> or <code>insertRow</code> methods are called | 
|
     * to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second 2, ... | 
|
     * @param x the column value | 
|
     * @throws SQLException if a database access occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public void updateRowId(int columnIndex, RowId x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>RowId</code> value. The updater | 
|
     * methods are used to update column values in the current row or the insert | 
|
     * row. The updater methods do not update the underlying database; instead | 
|
     * the <code>updateRow<code> or <code>insertRow</code> methods are called | 
|
     * to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param x the column value | 
|
     * @throws SQLException if a database access occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public void updateRowId(String columnName, RowId x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Retrieves the holdability of this ResultSet object | 
|
     * @return  either ResultSet.HOLD_CURSORS_OVER_COMMIT or ResultSet.CLOSE_CURSORS_AT_COMMIT | 
|
     * @throws SQLException if a database error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public int getHoldability() throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Retrieves whether this ResultSet object has been closed. A ResultSet is closed if the | 
|
     * method close has been called on it, or if it is automatically closed. | 
|
     * @return true if this ResultSet object is closed; false if it is still open | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public boolean isClosed() throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * This method is used for updating columns that support National Character sets. | 
|
     * It can be used for updating NCHAR,NVARCHAR and LONGNVARCHAR columns. | 
|
     * @param columnIndex the first column is 1, the second 2, ... | 
|
     * @param nString the value for the column to be updated | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public void updateNString(int columnIndex, String nString) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * This method is used for updating columns that support National Character sets. | 
|
     * It can be used for updating NCHAR,NVARCHAR and LONGNVARCHAR columns. | 
|
     * @param columnName name of the Column | 
|
     * @param nString the value for the column to be updated | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public void updateNString(String columnName, String nString) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /*o | 
|
     * This method is used for updating SQL <code>NCLOB</code>  type that maps | 
|
     * to <code>java.sql.Types.NCLOB</code> | 
|
     * @param columnIndex the first column is 1, the second 2, ... | 
|
     * @param nClob the value for the column to be updated | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public void updateNClob(int columnIndex, NClob nClob) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * This method is used for updating SQL <code>NCLOB</code>  type that maps | 
|
     * to <code>java.sql.Types.NCLOB</code> | 
|
     * @param columnName name of the column | 
|
     * @param nClob the value for the column to be updated | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public void updateNClob(String columnName, NClob nClob) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Retrieves the value of the designated column in the current row | 
|
     * of this <code>ResultSet</code> object as a <code>NClob</code> object | 
|
     * in the Java programming language. | 
|
     * | 
|
     * @param i the first column is 1, the second is 2, ... | 
|
     * @return a <code>NClob</code> object representing the SQL | 
|
     *         <code>NCLOB</code> value in the specified column | 
|
     * @exception SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public NClob getNClob(int i) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
     * Retrieves the value of the designated column in the current row | 
|
     * of this <code>ResultSet</code> object as a <code>NClob</code> object | 
|
     * in the Java programming language. | 
|
     * | 
|
     * @param colName the name of the column from which to retrieve the value | 
|
     * @return a <code>NClob</code> object representing the SQL <code>NCLOB</code> | 
|
     * value in the specified column | 
|
     * @exception SQLException if a database access error occurs | 
|
     * @since 6.0 | 
|
*/  | 
|
public NClob getNClob(String colName) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException{  | 
|
return null;  | 
|
}  | 
|
public boolean isWrapperFor(Class<?> interfaces) throws SQLException {  | 
|
return false;  | 
|
}  | 
|
    /** | 
|
      * Sets the designated parameter to the given <code>java.sql.SQLXML</code> object. The driver converts this to an | 
|
      * SQL <code>XML</code> value when it sends it to the database. | 
|
      * @param parameterIndex index of the first parameter is 1, the second is 2, ... | 
|
      * @param xmlObject a <code>SQLXML</code> object that maps an SQL <code>XML</code> value | 
|
      * @throws SQLException if a database access error occurs | 
|
      * @since 1.6 | 
|
*/  | 
|
public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Sets the designated parameter to the given <code>java.sql.SQLXML</code> object. The driver converts this to an | 
|
     * <code>SQL XML</code> value when it sends it to the database. | 
|
     * @param parameterName the name of the parameter | 
|
     * @param xmlObject a <code>SQLXML</code> object that maps an <code>SQL XML</code> value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public void setSQLXML(String parameterName, SQLXML xmlObject) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Sets the designated parameter to the given <code>java.sql.RowId</code> object. The | 
|
     * driver converts this to a SQL <code>ROWID</code> value when it sends it | 
|
     * to the database | 
|
     * | 
|
     * @param parameterIndex the first parameter is 1, the second is 2, ... | 
|
     * @param x the parameter value | 
|
     * @throws SQLException if a database access error occurs | 
|
     * | 
|
     * @since 1.6 | 
|
*/  | 
|
public void setRowId(int parameterIndex, RowId x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
    * Sets the designated parameter to the given <code>java.sql.RowId</code> object. The | 
|
    * driver converts this to a SQL <code>ROWID</code> when it sends it to the | 
|
    * database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @throws SQLException if a database access error occurs | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setRowId(String parameterName, RowId x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
     * Sets the designated parameter to the given <code>String</code> object. | 
|
     * The driver converts this to a SQL <code>NCHAR</code> or | 
|
     * <code>NVARCHAR</code> or <code>LONGNVARCHAR</code> value | 
|
     * (depending on the argument's | 
|
     * size relative to the driver's limits on <code>NVARCHAR</code> values) | 
|
     * when it sends it to the database. | 
|
     * | 
|
     * @param parameterIndex of the first parameter is 1, the second is 2, ... | 
|
     * @param value the parameter value | 
|
     * @throws SQLException if the driver does not support national | 
|
     *         character sets;  if the driver can detect that a data conversion | 
|
     *  error could occur ; or if a database access error occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public void setNString(int parameterIndex, String value) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
    * Sets the designated parameter in this <code>RowSet</code> object's command | 
|
    * to a <code>Reader</code> object. The | 
|
    * <code>Reader</code> reads the data till end-of-file is reached. The | 
|
    * driver does the necessary conversion from Java character format to | 
|
    * the national character set in the database. | 
|
 | 
|
    * <P><B>Note:</B> This stream object can either be a standard | 
|
    * Java stream object or your own subclass that implements the | 
|
    * standard interface. | 
|
    * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
    * it might be more efficient to use a version of | 
|
    * <code>setNCharacterStream</code> which takes a length parameter. | 
|
    * | 
|
    * @param parameterIndex of the first parameter is 1, the second is 2, ... | 
|
    * @param value the parameter value | 
|
    * @throws SQLException if the driver does not support national | 
|
    *         character sets;  if the driver can detect that a data conversion | 
|
    *  error could occur ; if a database access error occurs; or | 
|
    * this method is called on a closed <code>PreparedStatement</code> | 
|
    * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
    * Sets the designated parameter to a <code>java.sql.NClob</code> object. The object | 
|
    * implements the <code>java.sql.NClob</code> interface. This <code>NClob</code> | 
|
    * object maps to a SQL <code>NCLOB</code>. | 
|
    * @param parameterName the name of the column to be set | 
|
    * @param value the parameter value | 
|
    * @throws SQLException if the driver does not support national | 
|
    *         character sets;  if the driver can detect that a data conversion | 
|
    *  error could occur; or if a database access error occurs | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setNClob(String parameterName, NClob value) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
     * Retrieves the value of the designated column in the current row | 
|
     * of this <code>ResultSet</code> object as a | 
|
     * <code>java.io.Reader</code> object. | 
|
     * It is intended for use when | 
|
     * accessing  <code>NCHAR</code>,<code>NVARCHAR</code> | 
|
     * and <code>LONGNVARCHAR</code> columns. | 
|
     * | 
|
     * @return a <code>java.io.Reader</code> object that contains the column | 
|
     * value; if the value is SQL <code>NULL</code>, the value returned is | 
|
     * <code>null</code> in the Java programming language. | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @exception SQLException if a database access error occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public java.io.Reader getNCharacterStream(int columnIndex) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Retrieves the value of the designated column in the current row | 
|
     * of this <code>ResultSet</code> object as a | 
|
     * <code>java.io.Reader</code> object. | 
|
     * It is intended for use when | 
|
     * accessing  <code>NCHAR</code>,<code>NVARCHAR</code> | 
|
     * and <code>LONGNVARCHAR</code> columns. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @return a <code>java.io.Reader</code> object that contains the column | 
|
     * value; if the value is SQL <code>NULL</code>, the value returned is | 
|
     * <code>null</code> in the Java programming language | 
|
     * @exception SQLException if a database access error occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public java.io.Reader getNCharacterStream(String columnName) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.SQLXML</code> value. | 
|
     * The updater | 
|
     * methods are used to update column values in the current row or the insert | 
|
     * row. The updater methods do not update the underlying database; instead | 
|
     * the <code>updateRow</code> or <code>insertRow</code> methods are called | 
|
     * to update the database. | 
|
     * @param columnIndex the first column is 1, the second 2, ... | 
|
     * @param xmlObject the value for the column to be updated | 
|
     * @throws SQLException if a database access error occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a <code>java.sql.SQLXML</code> value. | 
|
     * The updater | 
|
     * methods are used to update column values in the current row or the insert | 
|
     * row. The updater methods do not update the underlying database; instead | 
|
     * the <code>updateRow</code> or <code>insertRow</code> methods are called | 
|
     * to update the database. | 
|
     * | 
|
     * @param columnName the name of the column | 
|
     * @param xmlObject the column value | 
|
     * @throws SQLException if a database access occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateSQLXML(String columnName, SQLXML xmlObject) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
     /** | 
|
     * Retrieves the value of the designated column in the current row | 
|
     * of this <code>ResultSet</code> object as | 
|
     * a <code>String</code> in the Java programming language. | 
|
     * It is intended for use when | 
|
     * accessing  <code>NCHAR</code>,<code>NVARCHAR</code> | 
|
     * and <code>LONGNVARCHAR</code> columns. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @exception SQLException if a database access error occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public String getNString(int columnIndex) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Retrieves the value of the designated column in the current row | 
|
     * of this <code>ResultSet</code> object as | 
|
     * a <code>String</code> in the Java programming language. | 
|
     * It is intended for use when | 
|
     * accessing  <code>NCHAR</code>,<code>NVARCHAR</code> | 
|
     * and <code>LONGNVARCHAR</code> columns. | 
|
     * | 
|
     * @param columnName the SQL name of the column | 
|
     * @return the column value; if the value is SQL <code>NULL</code>, the | 
|
     * value returned is <code>null</code> | 
|
     * @exception SQLException if a database access error occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public String getNString(String columnName) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
     /** | 
|
       * Updates the designated column with a character stream value, which will | 
|
       * have the specified number of bytes. The driver does the necessary conversion | 
|
       * from Java character format to the national character set in the database. | 
|
       * It is intended for use when updating NCHAR,NVARCHAR and LONGNVARCHAR columns. | 
|
       * The updater methods are used to update column values in the current row or | 
|
       * the insert row. The updater methods do not update the underlying database; | 
|
       * instead the updateRow or insertRow methods are called to update the database. | 
|
       * | 
|
       * @param columnIndex - the first column is 1, the second is 2, ... | 
|
       * @param x - the new column value | 
|
       * @param length - the length of the stream | 
|
       * @exception SQLException if a database access error occurs | 
|
       * @since 1.6 | 
|
*/  | 
|
public void updateNCharacterStream(int columnIndex,  | 
|
java.io.Reader x,  | 
|
long length)  | 
|
throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
     /** | 
|
       * Updates the designated column with a character stream value, which will | 
|
       * have the specified number of bytes. The driver does the necessary conversion | 
|
       * from Java character format to the national character set in the database. | 
|
       * It is intended for use when updating NCHAR,NVARCHAR and LONGNVARCHAR columns. | 
|
       * The updater methods are used to update column values in the current row or | 
|
       * the insert row. The updater methods do not update the underlying database; | 
|
       * instead the updateRow or insertRow methods are called to update the database. | 
|
       * | 
|
       * @param columnName - name of the Column | 
|
       * @param x - the new column value | 
|
       * @param length - the length of the stream | 
|
       * @exception SQLException if a database access error occurs | 
|
       * @since 1.6 | 
|
*/  | 
|
public void updateNCharacterStream(String columnName,  | 
|
java.io.Reader x,  | 
|
long length)  | 
|
throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a character stream value.   The | 
|
     * driver does the necessary conversion from Java character format to | 
|
     * the national character set in the database. | 
|
     * It is intended for use when | 
|
     * updating  <code>NCHAR</code>,<code>NVARCHAR</code> | 
|
     * and <code>LONGNVARCHAR</code> columns. | 
|
     * | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateNCharacterStream</code> which takes a length parameter. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param x the new column value | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateNCharacterStream(int columnIndex,  | 
|
java.io.Reader x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a character stream value.  The | 
|
     * driver does the necessary conversion from Java character format to | 
|
     * the national character set in the database. | 
|
     * It is intended for use when | 
|
     * updating  <code>NCHAR</code>,<code>NVARCHAR</code> | 
|
     * and <code>LONGNVARCHAR</code> columns. | 
|
     * | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateNCharacterStream</code> which takes a length parameter. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the la | 
|
bel is the name of the column | 
|
     * @param reader the <code>java.io.Reader</code> object containing | 
|
     *        the new column value | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set | 
|
      * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateNCharacterStream(String columnLabel,  | 
|
java.io.Reader reader) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given input stream, which | 
|
     * will have the specified number of bytes. | 
|
     * When a very large ASCII value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.InputStream</code>. Data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from ASCII to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param inputStream An object that contains the data to set the parameter | 
|
     * value to. | 
|
     * @param length the number of bytes in the parameter data. | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given input stream, which | 
|
     * will have the specified number of bytes. | 
|
     * When a very large ASCII value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.InputStream</code>. Data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from ASCII to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the label is the name of the column | 
|
     * @param inputStream An object that contains the data to set the parameter | 
|
     * value to. | 
|
     * @param length the number of bytes in the parameter data. | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given input stream. | 
|
     * When a very large ASCII value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.InputStream</code>. Data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from ASCII to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * | 
|
     *  <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateBlob</code> which takes a length parameter. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param inputStream An object that contains the data to set the parameter | 
|
     * value to. | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given input stream. | 
|
     * When a very large ASCII value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.InputStream</code>. Data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from ASCII to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     *   <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateBlob</code> which takes a length parameter. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the la | 
|
bel is the name of the column | 
|
     * @param inputStream An object that contains the data to set the parameter | 
|
     * value to. | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given <code>Reader</code> | 
|
     * object, which is the given number of characters long. | 
|
     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from UNICODE to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @param length the number of characters in the parameter data. | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateClob(int columnIndex, Reader reader, long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given <code>Reader</code> | 
|
     * object, which is the given number of characters long. | 
|
     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from UNICODE to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the label is the name of the column | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @param length the number of characters in the parameter data. | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateClob(String columnLabel, Reader reader, long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given <code>Reader</code> | 
|
     * object. | 
|
     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from UNICODE to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     *   <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateClob</code> which takes a length parameter. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateClob(int columnIndex, Reader reader) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given <code>Reader</code> | 
|
     * object. | 
|
     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from UNICODE to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     *  <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateClob</code> which takes a length parameter. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the la | 
|
bel is the name of the column | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateClob(String columnLabel, Reader reader) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
     * Updates the designated column using the given <code>Reader</code> | 
|
     * object, which is the given number of characters long. | 
|
     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from UNICODE to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second 2, ... | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @param length the number of characters in the parameter data. | 
|
     * @throws SQLException if the driver does not support national | 
|
     *         character sets;  if the driver can detect that a data conversion | 
|
     *  error could occur; this method is called on a closed result set, | 
|
     * if a database access error occurs or | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given <code>Reader</code> | 
|
     * object, which is the given number of characters long. | 
|
     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from UNICODE to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the label is the name of the column | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @param length the number of characters in the parameter data. | 
|
     * @throws SQLException if the driver does not support national | 
|
     *         character sets;  if the driver can detect that a data conversion | 
|
     *  error could occur; this method is called on a closed result set; | 
|
     *  if a database access error occurs or | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given <code>Reader</code> | 
|
     * object. | 
|
     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from UNICODE to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateNClob</code> which takes a length parameter. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second 2, ... | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @throws SQLException if the driver does not support national | 
|
     *         character sets;  if the driver can detect that a data conversion | 
|
     *  error could occur; this method is called on a closed result set, | 
|
     * if a database access error occurs or | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateNClob(int columnIndex, Reader reader) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column using the given <code>Reader</code> | 
|
     * object. | 
|
     * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
     * parameter, it may be more practical to send it via a | 
|
     * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
     * as needed until end-of-file is reached.  The JDBC driver will | 
|
     * do any necessary conversion from UNICODE to the database char format. | 
|
     * | 
|
     * <P><B>Note:</B> This stream object can either be a standard | 
|
     * Java stream object or your own subclass that implements the | 
|
     * standard interface. | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateNClob</code> which takes a length parameter. | 
|
     * <p> | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the la | 
|
bel is the name of the column | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @throws SQLException if the driver does not support national | 
|
     *         character sets;  if the driver can detect that a data conversion | 
|
     *  error could occur; this method is called on a closed result set; | 
|
     *  if a database access error occurs or | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateNClob(String columnLabel, Reader reader) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
        /** | 
|
     * Updates the designated column with an ascii stream value, which will have | 
|
     * the specified number of bytes. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateAsciiStream(int columnIndex,  | 
|
java.io.InputStream x,  | 
|
long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a binary stream value, which will have | 
|
     * the specified number of bytes. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateBinaryStream(int columnIndex,  | 
|
java.io.InputStream x,  | 
|
long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a character stream value, which will have | 
|
     * the specified number of bytes. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateCharacterStream(int columnIndex,  | 
|
java.io.Reader x,  | 
|
long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
     /** | 
|
     * Updates the designated column with an ascii stream value, which will have | 
|
     * the specified number of bytes.. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the label is the name of the column | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateAsciiStream(String columnLabel,  | 
|
java.io.InputStream x,  | 
|
long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an ascii stream value. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateAsciiStream</code> which takes a length parameter. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param x the new column value | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateAsciiStream(int columnIndex,  | 
|
java.io.InputStream x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with an ascii stream value. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateAsciiStream</code> which takes a length parameter. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the la | 
|
bel is the name of the column | 
|
     * @param x the new column value | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateAsciiStream(String columnLabel,  | 
|
java.io.InputStream x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a binary stream value, which will have | 
|
     * the specified number of bytes. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the label is the name of the column | 
|
     * @param x the new column value | 
|
     * @param length the length of the stream | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateBinaryStream(String columnLabel,  | 
|
java.io.InputStream x,  | 
|
long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a binary stream value. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateBinaryStream</code> which takes a length parameter. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param x the new column value | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateBinaryStream(int columnIndex,  | 
|
java.io.InputStream x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a binary stream value. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateBinaryStream</code> which takes a length parameter. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the la | 
|
bel is the name of the column | 
|
     * @param x the new column value | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateBinaryStream(String columnLabel,  | 
|
java.io.InputStream x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a character stream value, which will have | 
|
     * the specified number of bytes. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the label is the name of the column | 
|
     * @param reader the <code>java.io.Reader</code> object containing | 
|
     *        the new column value | 
|
     * @param length the length of the stream | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateCharacterStream(String columnLabel,  | 
|
java.io.Reader reader,  | 
|
long length) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a character stream value. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateCharacterStream</code> which takes a length parameter. | 
|
     * | 
|
     * @param columnIndex the first column is 1, the second is 2, ... | 
|
     * @param x the new column value | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateCharacterStream(int columnIndex,  | 
|
java.io.Reader x) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Updates the designated column with a character stream value. | 
|
     * The updater methods are used to update column values in the | 
|
     * current row or the insert row.  The updater methods do not | 
|
     * update the underlying database; instead the <code>updateRow</code> or | 
|
     * <code>insertRow</code> methods are called to update the database. | 
|
     * | 
|
     * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
     * it might be more efficient to use a version of | 
|
     * <code>updateCharacterStream</code> which takes a length parameter. | 
|
     * | 
|
     * @param columnLabel the label for the column specified with the SQL AS clause.  If the SQL AS clause was not specified, then the la | 
|
bel is the name of the column | 
|
     * @param reader the <code>java.io.Reader</code> object containing | 
|
     *        the new column value | 
|
     * @exception SQLException if a database access error occurs, | 
|
     * the result set concurrency is <code>CONCUR_READ_ONLY</code> | 
|
     * or this method is called on a closed result set | 
|
     * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
     * this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void updateCharacterStream(String columnLabel,  | 
|
java.io.Reader reader) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
     /** | 
|
  * Sets the designated parameter to the given <code>java.net.URL</code> value. | 
|
  * The driver converts this to an SQL <code>DATALINK</code> value | 
|
  * when it sends it to the database. | 
|
  * | 
|
  * @param parameterIndex the first parameter is 1, the second is 2, ... | 
|
  * @param x the <code>java.net.URL</code> object to be set | 
|
  * @exception SQLException if a database access error occurs or | 
|
  * this method is called on a closed <code>PreparedStatement</code> | 
|
  * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
  * @since 1.4 | 
|
*/  | 
|
public void setURL(int parameterIndex, java.net.URL x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
  * Sets the designated parameter to a <code>Reader</code> object. | 
|
  * This method differs from the <code>setCharacterStream (int, Reader)</code> method | 
|
  * because it informs the driver that the parameter value should be sent to | 
|
  * the server as a <code>NCLOB</code>.  When the <code>setCharacterStream</code> method is used, the | 
|
  * driver may have to do extra work to determine whether the parameter | 
|
  * data should be sent to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code> | 
|
  * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
  * it might be more efficient to use a version of | 
|
  * <code>setNClob</code> which takes a length parameter. | 
|
  * | 
|
  * @param parameterIndex index of the first parameter is 1, the second is 2, ... | 
|
  * @param reader An object that contains the data to set the parameter value to. | 
|
  * @throws SQLException if parameterIndex does not correspond to a parameter | 
|
  * marker in the SQL statement; | 
|
  * if the driver does not support national character sets; | 
|
  * if the driver can detect that a data conversion | 
|
  *  error could occur;  if a database access error occurs or | 
|
  * this method is called on a closed <code>PreparedStatement</code> | 
|
  * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
  * | 
|
  * @since 1.6 | 
|
*/  | 
|
public void setNClob(int parameterIndex, Reader reader)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
  * Sets the designated parameter to a <code>Reader</code> object.  The <code>reader</code> must contain the number | 
|
             * of characters specified by length otherwise a <code>SQLException</code> will be | 
|
            * generated when the <code>CallableStatement</code> is executed. | 
|
            * This method differs from the <code>setCharacterStream (int, Reader, int)</code> method | 
|
            * because it informs the driver that the parameter value should be sent to | 
|
            * the server as a <code>NCLOB</code>.  When the <code>setCharacterStream</code> method is used, the | 
|
            * driver may have to do extra work to determine whether the parameter | 
|
            * data should be send to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code> | 
|
            * | 
|
            * @param parameterName the name of the parameter to be set | 
|
            * @param reader An object that contains the data to set the parameter value to. | 
|
            * @param length the number of characters in the parameter data. | 
|
            * @throws SQLException if parameterIndex does not correspond to a parameter | 
|
            * marker in the SQL statement; if the length specified is less than zero; | 
|
            * if the driver does not support national | 
|
            *         character sets;  if the driver can detect that a data conversion | 
|
            *  error could occur; if a database access error occurs or | 
|
            * this method is called on a closed <code>CallableStatement</code> | 
|
            * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
            * this method | 
|
            * @since 1.6 | 
|
*/  | 
|
public void setNClob(String parameterName, Reader reader, long length)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
  * Sets the designated parameter to a <code>Reader</code> object. | 
|
  * This method differs from the <code>setCharacterStream (int, Reader)</code> method | 
|
  * because it informs the driver that the parameter value should be sent to | 
|
  * the server as a <code>NCLOB</code>.  When the <code>setCharacterStream</code> method is used, the | 
|
  * driver may have to do extra work to determine whether the parameter | 
|
  * data should be send to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code> | 
|
  * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
  * it might be more efficient to use a version of | 
|
  * <code>setNClob</code> which takes a length parameter. | 
|
  * | 
|
  * @param parameterName the name of the parameter | 
|
  * @param reader An object that contains the data to set the parameter value to. | 
|
  * @throws SQLException if the driver does not support national character sets; | 
|
  * if the driver can detect that a data conversion | 
|
  *  error could occur;  if a database access error occurs or | 
|
  * this method is called on a closed <code>CallableStatement</code> | 
|
  * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
  * | 
|
  * @since 1.6 | 
|
*/  | 
|
public void setNClob(String parameterName, Reader reader)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
     ** of characters specified by length otherwise a <code>SQLException</code> will becontain  the number | 
|
     * generated when the <code>PreparedStatement</code> is executed. | 
|
     * This method differs from the <code>setCharacterStream (int, Reader, int)</code> method | 
|
     * because it informs the driver that the parameter value should be sent to | 
|
     * the server as a <code>NCLOB</code>.  When the <code>setCharacterStream</code> method is used, the | 
|
     * driver may have to do extra work to determine whether the parameter | 
|
     * data should be sent to the server as a <code>LONGNVARCHAR</code> or a <code>NCLOB</code> | 
|
     * @param parameterIndex index of the first parameter is 1, the second is 2, ... | 
|
     * @param reader An object that contains the data to set the parameter value to. | 
|
     * @param length the number of characters in the parameter data. | 
|
     * @throws SQLException if parameterIndex does not correspond to a parameter | 
|
     * marker in the SQL statement; if the length specified is less than zero; | 
|
     * if the driver does not support national character sets; | 
|
     * if the driver can detect that a data conversion | 
|
     *  error could occur;  if a database access error occurs or | 
|
     * this method is called on a closed <code>PreparedStatement</code> | 
|
     * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
     * | 
|
     * @since 1.6 | 
|
*/  | 
|
public void setNClob(int parameterIndex, Reader reader, long length)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * Sets the designated parameter to a <code>java.sql.NClob</code> object. The driver converts this to | 
|
a | 
|
     * SQL <code>NCLOB</code> value when it sends it to the database. | 
|
     * @param parameterIndex of the first parameter is 1, the second is 2, ... | 
|
     * @param value the parameter value | 
|
     * @throws SQLException if the driver does not support national | 
|
     *         character sets;  if the driver can detect that a data conversion | 
|
     *  error could occur ; or if a database access error occurs | 
|
     * @since 1.6 | 
|
*/  | 
|
public void setNClob(int parameterIndex, NClob value) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
  * Sets the designated parameter to the given <code>String</code> object. | 
|
  * The driver converts this to a SQL <code>NCHAR</code> or | 
|
  * <code>NVARCHAR</code> or <code>LONGNVARCHAR</code> | 
|
  * @param parameterName the name of the column to be set | 
|
  * @param value the parameter value | 
|
  * @throws SQLException if the driver does not support national | 
|
  *         character sets;  if the driver can detect that a data conversion | 
|
  *  error could occur; or if a database access error occurs | 
|
  * @since 1.6 | 
|
*/  | 
|
public void setNString(String parameterName, String value)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
  * Sets the designated parameter to a <code>Reader</code> object. The | 
|
  * <code>Reader</code> reads the data till end-of-file is reached. The | 
|
  * driver does the necessary conversion from Java character format to | 
|
  * the national character set in the database. | 
|
  * @param parameterIndex of the first parameter is 1, the second is 2, ... | 
|
  * @param value the parameter value | 
|
  * @param length the number of characters in the parameter data. | 
|
  * @throws SQLException if the driver does not support national | 
|
  *         character sets;  if the driver can detect that a data conversion | 
|
  *  error could occur ; or if a database access error occurs | 
|
  * @since 1.6 | 
|
*/  | 
|
public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
  * Sets the designated parameter to a <code>Reader</code> object. The | 
|
  * <code>Reader</code> reads the data till end-of-file is reached. The | 
|
  * driver does the necessary conversion from Java character format to | 
|
  * the national character set in the database. | 
|
  * @param parameterName the name of the column to be set | 
|
  * @param value the parameter value | 
|
  * @param length the number of characters in the parameter data. | 
|
  * @throws SQLException if the driver does not support national | 
|
  *         character sets;  if the driver can detect that a data conversion | 
|
  *  error could occur; or if a database access error occurs | 
|
  * @since 1.6 | 
|
*/  | 
|
public void setNCharacterStream(String parameterName, Reader value, long length)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
  * Sets the designated parameter to a <code>Reader</code> object. The | 
|
  * <code>Reader</code> reads the data till end-of-file is reached. The | 
|
  * driver does the necessary conversion from Java character format to | 
|
  * the national character set in the database. | 
|
 | 
|
  * <P><B>Note:</B> This stream object can either be a standard | 
|
  * Java stream object or your own subclass that implements the | 
|
  * standard interface. | 
|
  * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
  * it might be more efficient to use a version of | 
|
  * <code>setNCharacterStream</code> which takes a length parameter. | 
|
  * | 
|
  * @param parameterName the name of the parameter | 
|
  * @param value the parameter value | 
|
  * @throws SQLException if the driver does not support national | 
|
  *         character sets;  if the driver can detect that a data conversion | 
|
  *  error could occur ; if a database access error occurs; or | 
|
  * this method is called on a closed <code>CallableStatement</code> | 
|
  * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
  * @since 1.6 | 
|
*/  | 
|
public void setNCharacterStream(String parameterName, Reader value) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
    * Sets the designated parameter to the given <code>java.sql.Timestamp</code> value, | 
|
    * using the given <code>Calendar</code> object.  The driver uses | 
|
    * the <code>Calendar</code> object to construct an SQL <code>TIMESTAMP</code> value, | 
|
    * which the driver then sends to the database.  With a | 
|
    * a <code>Calendar</code> object, the driver can calculate the timestamp | 
|
    * taking into account a custom timezone.  If no | 
|
    * <code>Calendar</code> object is specified, the driver uses the default | 
|
    * timezone, which is that of the virtual machine running the application. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @param cal the <code>Calendar</code> object the driver will use | 
|
    *            to construct the timestamp | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getTimestamp | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setTimestamp(String parameterName, java.sql.Timestamp x, Calendar cal)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
    * Sets the designated parameter to a <code>Reader</code> object.  The <code>reader</code> must contain  the number | 
|
               * of characters specified by length otherwise a <code>SQLException</code> will be | 
|
               * generated when the <code>CallableStatement</code> is executed. | 
|
              * This method differs from the <code>setCharacterStream (int, Reader, int)</code> method | 
|
              * because it informs the driver that the parameter value should be sent to | 
|
              * the server as a <code>CLOB</code>.  When the <code>setCharacterStream</code> method is used, the | 
|
               * driver may have to do extra work to determine whether the parameter | 
|
               * data should be send to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code> | 
|
               * @param parameterName the name of the parameter to be set | 
|
              * @param reader An object that contains the data to set the parameter value to. | 
|
              * @param length the number of characters in the parameter data. | 
|
              * @throws SQLException if parameterIndex does not correspond to a parameter | 
|
              * marker in the SQL statement; if the length specified is less than zero; | 
|
              * a database access error occurs or | 
|
              * this method is called on a closed <code>CallableStatement</code> | 
|
              * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
              * this method | 
|
              * | 
|
              * @since 1.6 | 
|
*/  | 
|
public void setClob(String parameterName, Reader reader, long length)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
    * Sets the designated parameter to the given <code>java.sql.Clob</code> object. | 
|
    * The driver converts this to an SQL <code>CLOB</code> value when it | 
|
    * sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x a <code>Clob</code> object that maps an SQL <code>CLOB</code> value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setClob (String parameterName, Clob x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to a <code>Reader</code> object. | 
|
    * This method differs from the <code>setCharacterStream (int, Reader)</code> method | 
|
    * because it informs the driver that the parameter value should be sent to | 
|
    * the server as a <code>CLOB</code>.  When the <code>setCharacterStream</code> method is used, the | 
|
    * driver may have to do extra work to determine whether the parameter | 
|
    * data should be send to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code> | 
|
    * | 
|
    * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
    * it might be more efficient to use a version of | 
|
    * <code>setClob</code> which takes a length parameter. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param reader An object that contains the data to set the parameter value to. | 
|
    * @throws SQLException if a database access error occurs or this method is called on | 
|
    * a closed <code>CallableStatement</code> | 
|
    * | 
|
    * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setClob(String parameterName, Reader reader)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given <code>java.sql.Date</code> value | 
|
    * using the default time zone of the virtual machine that is running | 
|
    * the application. | 
|
    * The driver converts this | 
|
    * to an SQL <code>DATE</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getDate | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setDate(String parameterName, java.sql.Date x)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
    * Sets the designated parameter to the given <code>java.sql.Date</code> value, | 
|
    * using the given <code>Calendar</code> object.  The driver uses | 
|
    * the <code>Calendar</code> object to construct an SQL <code>DATE</code> value, | 
|
    * which the driver then sends to the database.  With a | 
|
    * a <code>Calendar</code> object, the driver can calculate the date | 
|
    * taking into account a custom timezone.  If no | 
|
    * <code>Calendar</code> object is specified, the driver uses the default | 
|
    * timezone, which is that of the virtual machine running the application. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @param cal the <code>Calendar</code> object the driver will use | 
|
    *            to construct the date | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getDate | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setDate(String parameterName, java.sql.Date x, Calendar cal)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given <code>java.sql.Time</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>TIME</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getTime | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setTime(String parameterName, java.sql.Time x)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given <code>java.sql.Time</code> value, | 
|
    * using the given <code>Calendar</code> object.  The driver uses | 
|
    * the <code>Calendar</code> object to construct an SQL <code>TIME</code> value, | 
|
    * which the driver then sends to the database.  With a | 
|
    * a <code>Calendar</code> object, the driver can calculate the time | 
|
    * taking into account a custom timezone.  If no | 
|
    * <code>Calendar</code> object is specified, the driver uses the default | 
|
    * timezone, which is that of the virtual machine running the application. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @param cal the <code>Calendar</code> object the driver will use | 
|
    *            to construct the time | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getTime | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setTime(String parameterName, java.sql.Time x, Calendar cal)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
   * Sets the designated parameter to a <code>Reader</code> object. | 
|
   * This method differs from the <code>setCharacterStream (int, Reader)</code> method | 
|
   * because it informs the driver that the parameter value should be sent to | 
|
   * the server as a <code>CLOB</code>.  When the <code>setCharacterStream</code> method is used, the | 
|
   * driver may have to do extra work to determine whether the parameter | 
|
   * data should be sent to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code> | 
|
   * | 
|
   * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
   * it might be more efficient to use a version of | 
|
   * <code>setClob</code> which takes a length parameter. | 
|
   * | 
|
   * @param parameterIndex index of the first parameter is 1, the second is 2, ... | 
|
   * @param reader An object that contains the data to set the parameter value to. | 
|
   * @throws SQLException if a database access error occurs, this method is called on | 
|
   * a closed <code>PreparedStatement</code>or if parameterIndex does not correspond to a parameter | 
|
   * marker in the SQL statement | 
|
   * | 
|
   * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
   * @since 1.6 | 
|
*/  | 
|
public void setClob(int parameterIndex, Reader reader)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
   * Sets the designated parameter to a <code>Reader</code> object.  The reader must contain  the number | 
|
   * of characters specified by length otherwise a <code>SQLException</code> will be | 
|
   * generated when the <code>PreparedStatement</code> is executed. | 
|
   *This method differs from the <code>setCharacterStream (int, Reader, int)</code> method | 
|
   * because it informs the driver that the parameter value should be sent to | 
|
   * the server as a <code>CLOB</code>.  When the <code>setCharacterStream</code> method is used, the | 
|
   * driver may have to do extra work to determine whether the parameter | 
|
   * data should be sent to the server as a <code>LONGVARCHAR</code> or a <code>CLOB</code> | 
|
   * @param parameterIndex index of the first parameter is 1, the second is 2, ... | 
|
   * @param reader An object that contains the data to set the parameter value to. | 
|
   * @param length the number of characters in the parameter data. | 
|
   * @throws SQLException if a database access error occurs, this method is called on | 
|
   * a closed <code>PreparedStatement</code>, if parameterIndex does not correspond to a parameter | 
|
   * marker in the SQL statement, or if the length specified is less than zero. | 
|
   * | 
|
   * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
   * @since 1.6 | 
|
*/  | 
|
public void setClob(int parameterIndex, Reader reader, long length)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to a <code>InputStream</code> object.  The inputstream must contain  the number | 
|
    * of characters specified by length otherwise a <code>SQLException</code> will be | 
|
    * generated when the <code>PreparedStatement</code> is executed. | 
|
    * This method differs from the <code>setBinaryStream (int, InputStream, int)</code> | 
|
    * method because it informs the driver that the parameter value should be | 
|
    * sent to the server as a <code>BLOB</code>.  When the <code>setBinaryStream</code> method is used, | 
|
    * the driver may have to do extra work to determine whether the parameter | 
|
    * data should be sent to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code> | 
|
    * @param parameterIndex index of the first parameter is 1, | 
|
    * the second is 2, ... | 
|
    * @param inputStream An object that contains the data to set the parameter | 
|
    * value to. | 
|
    * @param length the number of bytes in the parameter data. | 
|
    * @throws SQLException if a database access error occurs, | 
|
    * this method is called on a closed <code>PreparedStatement</code>, | 
|
    * if parameterIndex does not correspond | 
|
    * to a parameter marker in the SQL statement,  if the length specified | 
|
    * is less than zero or if the number of bytes in the inputstream does not match | 
|
    * the specified length. | 
|
    * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
    * | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setBlob(int parameterIndex, InputStream inputStream, long length)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to a <code>InputStream</code> object. | 
|
    * This method differs from the <code>setBinaryStream (int, InputStream)</code> | 
|
    * This method differs from the <code>setBinaryStream (int, InputStream)</code> | 
|
    * method because it informs the driver that the parameter value should be | 
|
    * sent to the server as a <code>BLOB</code>.  When the <code>setBinaryStream</code> method is used, | 
|
    * the driver may have to do extra work to determine whether the parameter | 
|
    * data should be sent to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code> | 
|
    * | 
|
    * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
    * it might be more efficient to use a version of | 
|
    * <code>setBlob</code> which takes a length parameter. | 
|
    * | 
|
    * @param parameterIndex index of the first parameter is 1, | 
|
    * the second is 2, ... | 
|
 | 
|
 | 
|
    * @param inputStream An object that contains the data to set the parameter | 
|
    * value to. | 
|
    * @throws SQLException if a database access error occurs, | 
|
    * this method is called on a closed <code>PreparedStatement</code> or | 
|
    * if parameterIndex does not correspond | 
|
    * to a parameter marker in the SQL statement, | 
|
    * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
    * | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setBlob(int parameterIndex, InputStream inputStream)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to a <code>InputStream</code> object.  The <code>inputstream</code> must contain  the number | 
|
      * of characters specified by length, otherwise a <code>SQLException</code> will be | 
|
      * generated when the <code>CallableStatement</code> is executed. | 
|
      * This method differs from the <code>setBinaryStream (int, InputStream, int)</code> | 
|
      * method because it informs the driver that the parameter value should be | 
|
      * sent to the server as a <code>BLOB</code>.  When the <code>setBinaryStream</code> method is used, | 
|
      * the driver may have to do extra work to determine whether the parameter | 
|
      * data should be sent to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code> | 
|
      * | 
|
      * @param parameterName the name of the parameter to be set | 
|
      * the second is 2, ... | 
|
      * | 
|
      * @param inputStream An object that contains the data to set the parameter | 
|
      * value to. | 
|
      * @param length the number of bytes in the parameter data. | 
|
      * @throws SQLException  if parameterIndex does not correspond | 
|
      * to a parameter marker in the SQL statement,  or if the length specified | 
|
      * is less than zero; if the number of bytes in the inputstream does not match | 
|
      * the specified length; if a database access error occurs or | 
|
      * this method is called on a closed <code>CallableStatement</code> | 
|
      * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
      * this method | 
|
      * | 
|
      * @since 1.6 | 
|
*/  | 
|
public void setBlob(String parameterName, InputStream inputStream, long length)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given <code>java.sql.Blob</code> object. | 
|
    * The driver converts this to an SQL <code>BLOB</code> value when it | 
|
    * sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x a <code>Blob</code> object that maps an SQL <code>BLOB</code> value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setBlob (String parameterName, Blob x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to a <code>InputStream</code> object. | 
|
    * This method differs from the <code>setBinaryStream (int, InputStream)</code> | 
|
    * method because it informs the driver that the parameter value should be | 
|
    * sent to the server as a <code>BLOB</code>.  When the <code>setBinaryStream</code> method is used, | 
|
    * the driver may have to do extra work to determine whether the parameter | 
|
    * data should be send to the server as a <code>LONGVARBINARY</code> or a <code>BLOB</code> | 
|
    * | 
|
    * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
    * it might be more efficient to use a version of | 
|
    * <code>setBlob</code> which takes a length parameter. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param inputStream An object that contains the data to set the parameter | 
|
    * value to. | 
|
    * @throws SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
    * | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setBlob(String parameterName, InputStream inputStream)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
  * Sets the value of the designated parameter with the given object. The second | 
|
  * argument must be an object type; for integral values, the | 
|
  * <code>java.lang</code> equivalent objects should be used. | 
|
  * | 
|
  * <p>The given Java object will be converted to the given targetSqlType | 
|
  * before being sent to the database. | 
|
  * | 
|
  * If the object has a custom mapping (is of a class implementing the | 
|
  * interface <code>SQLData</code>), | 
|
  * the JDBC driver should call the method <code>SQLData.writeSQL</code> to write it | 
|
  * to the SQL data stream. | 
|
  * If, on the other hand, the object is of a class implementing | 
|
  * <code>Ref</code>, <code>Blob</code>, <code>Clob</code>,  <code>NClob</code>, | 
|
  *  <code>Struct</code>, <code>java.net.URL</code>, | 
|
  * or <code>Array</code>, the driver should pass it to the database as a | 
|
  * value of the corresponding SQL type. | 
|
  * <P> | 
|
  * Note that this method may be used to pass datatabase- | 
|
  * specific abstract data types. | 
|
  * | 
|
  * @param parameterName the name of the parameter | 
|
  * @param x the object containing the input parameter value | 
|
  * @param targetSqlType the SQL type (as defined in java.sql.Types) to be | 
|
  * sent to the database. The scale argument may further qualify this type. | 
|
  * @param scale for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types, | 
|
  *          this is the number of digits after the decimal point.  For all other | 
|
  *          types, this value will be ignored. | 
|
  * @exception SQLException if a database access error occurs or | 
|
  * this method is called on a closed <code>CallableStatement</code> | 
|
  * @exception SQLFeatureNotSupportedException if <code>targetSqlType</code> is | 
|
  * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>, | 
|
  * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>, | 
|
  * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>, | 
|
  *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code> | 
|
  * or  <code>STRUCT</code> data type and the JDBC driver does not support | 
|
  * this data type | 
|
  * @see Types | 
|
  * @see #getObject | 
|
  * @since 1.4 | 
|
*/  | 
|
public void setObject(String parameterName, Object x, int targetSqlType, int scale)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
    * Sets the value of the designated parameter with the given object. | 
|
    * This method is like the method <code>setObject</code> | 
|
    * above, except that it assumes a scale of zero. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the object containing the input parameter value | 
|
    * @param targetSqlType the SQL type (as defined in java.sql.Types) to be | 
|
    *                      sent to the database | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if <code>targetSqlType</code> is | 
|
    * a <code>ARRAY</code>, <code>BLOB</code>, <code>CLOB</code>, | 
|
    * <code>DATALINK</code>, <code>JAVA_OBJECT</code>, <code>NCHAR</code>, | 
|
    * <code>NCLOB</code>, <code>NVARCHAR</code>, <code>LONGNVARCHAR</code>, | 
|
    *  <code>REF</code>, <code>ROWID</code>, <code>SQLXML</code> | 
|
    * or  <code>STRUCT</code> data type and the JDBC driver does not support | 
|
    * this data type | 
|
    * @see #getObject | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setObject(String parameterName, Object x, int targetSqlType)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
   * Sets the value of the designated parameter with the given object. | 
|
   * The second parameter must be of type <code>Object</code>; therefore, the | 
|
   * <code>java.lang</code> equivalent objects should be used for built-in types. | 
|
   * | 
|
   * <p>The JDBC specification specifies a standard mapping from | 
|
   * Java <code>Object</code> types to SQL types.  The given argument | 
|
   * will be converted to the corresponding SQL type before being | 
|
   * sent to the database. | 
|
   * | 
|
   * <p>Note that this method may be used to pass datatabase- | 
|
   * specific abstract data types, by using a driver-specific Java | 
|
   * type. | 
|
   * | 
|
   * If the object is of a class implementing the interface <code>SQLData</code>, | 
|
   * the JDBC driver should call the method <code>SQLData.writeSQL</code> | 
|
   * to write it to the SQL data stream. | 
|
   * If, on the other hand, the object is of a class implementing | 
|
   * <code>Ref</code>, <code>Blob</code>, <code>Clob</code>,  <code>NClob</code>, | 
|
   *  <code>Struct</code>, <code>java.net.URL</code>, | 
|
   * or <code>Array</code>, the driver should pass it to the database as a | 
|
   * value of the corresponding SQL type. | 
|
   * <P> | 
|
   * This method throws an exception if there is an ambiguity, for example, if the | 
|
   * object is of a class implementing more than one of the interfaces named above. | 
|
   * | 
|
   * @param parameterName the name of the parameter | 
|
   * @param x the object containing the input parameter value | 
|
   * @exception SQLException if a database access error occurs, | 
|
   * this method is called on a closed <code>CallableStatement</code> or if the given | 
|
   *            <code>Object</code> parameter is ambiguous | 
|
   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
   * this method | 
|
   * @see #getObject | 
|
   * @since 1.4 | 
|
*/  | 
|
public void setObject(String parameterName, Object x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
  * Sets the designated parameter to the given input stream, which will have | 
|
  * the specified number of bytes. | 
|
  * When a very large ASCII value is input to a <code>LONGVARCHAR</code> | 
|
  * parameter, it may be more practical to send it via a | 
|
  * <code>java.io.InputStream</code>. Data will be read from the stream | 
|
  * as needed until end-of-file is reached.  The JDBC driver will | 
|
  * do any necessary conversion from ASCII to the database char format. | 
|
  * | 
|
  * <P><B>Note:</B> This stream object can either be a standard | 
|
  * Java stream object or your own subclass that implements the | 
|
  * standard interface. | 
|
  * | 
|
  * @param parameterName the name of the parameter | 
|
  * @param x the Java input stream that contains the ASCII parameter value | 
|
  * @param length the number of bytes in the stream | 
|
  * @exception SQLException if a database access error occurs or | 
|
  * this method is called on a closed <code>CallableStatement</code> | 
|
  * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
  * this method | 
|
  * @since 1.4 | 
|
*/  | 
|
public void setAsciiStream(String parameterName, java.io.InputStream x, int length)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
/** | 
|
  * Sets the designated parameter to the given input stream, which will have | 
|
  * the specified number of bytes. | 
|
  * When a very large binary value is input to a <code>LONGVARBINARY</code> | 
|
  * parameter, it may be more practical to send it via a | 
|
  * <code>java.io.InputStream</code> object. The data will be read from the stream | 
|
  * as needed until end-of-file is reached. | 
|
  * | 
|
  * <P><B>Note:</B> This stream object can either be a standard | 
|
  * Java stream object or your own subclass that implements the | 
|
  * standard interface. | 
|
  * | 
|
  * @param parameterName the name of the parameter | 
|
  * @param x the java input stream which contains the binary parameter value | 
|
  * @param length the number of bytes in the stream | 
|
  * @exception SQLException if a database access error occurs or | 
|
  * this method is called on a closed <code>CallableStatement</code> | 
|
  * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
  * this method | 
|
  * @since 1.4 | 
|
*/  | 
|
public void setBinaryStream(String parameterName, java.io.InputStream x,  | 
|
int length) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
   * Sets the designated parameter to the given <code>Reader</code> | 
|
   * object, which is the given number of characters long. | 
|
   * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
   * parameter, it may be more practical to send it via a | 
|
   * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
   * as needed until end-of-file is reached.  The JDBC driver will | 
|
   * do any necessary conversion from UNICODE to the database char format. | 
|
   * | 
|
   * <P><B>Note:</B> This stream object can either be a standard | 
|
   * Java stream object or your own subclass that implements the | 
|
   * standard interface. | 
|
   * | 
|
   * @param parameterName the name of the parameter | 
|
   * @param reader the <code>java.io.Reader</code> object that | 
|
   *        contains the UNICODE data used as the designated parameter | 
|
   * @param length the number of characters in the stream | 
|
   * @exception SQLException if a database access error occurs or | 
|
   * this method is called on a closed <code>CallableStatement</code> | 
|
   * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
   * this method | 
|
   * @since 1.4 | 
|
*/  | 
|
public void setCharacterStream(String parameterName,  | 
|
java.io.Reader reader,  | 
|
int length) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
  /** | 
|
   * Sets the designated parameter to the given input stream. | 
|
   * When a very large ASCII value is input to a <code>LONGVARCHAR</code> | 
|
   * parameter, it may be more practical to send it via a | 
|
   * <code>java.io.InputStream</code>. Data will be read from the stream | 
|
   * as needed until end-of-file is reached.  The JDBC driver will | 
|
   * do any necessary conversion from ASCII to the database char format. | 
|
   * | 
|
   * <P><B>Note:</B> This stream object can either be a standard | 
|
   * Java stream object or your own subclass that implements the | 
|
   * standard interface. | 
|
   * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
   * it might be more efficient to use a version of | 
|
   * <code>setAsciiStream</code> which takes a length parameter. | 
|
   * | 
|
   * @param parameterName the name of the parameter | 
|
   * @param x the Java input stream that contains the ASCII parameter value | 
|
   * @exception SQLException if a database access error occurs or | 
|
   * this method is called on a closed <code>CallableStatement</code> | 
|
   * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
     * @since 1.6 | 
|
*/  | 
|
public void setAsciiStream(String parameterName, java.io.InputStream x)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given input stream. | 
|
    * When a very large binary value is input to a <code>LONGVARBINARY</code> | 
|
    * parameter, it may be more practical to send it via a | 
|
    * <code>java.io.InputStream</code> object. The data will be read from the | 
|
    * stream as needed until end-of-file is reached. | 
|
    * | 
|
    * <P><B>Note:</B> This stream object can either be a standard | 
|
    * Java stream object or your own subclass that implements the | 
|
    * standard interface. | 
|
    * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
    * it might be more efficient to use a version of | 
|
    * <code>setBinaryStream</code> which takes a length parameter. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the java input stream which contains the binary parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setBinaryStream(String parameterName, java.io.InputStream x)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given <code>Reader</code> | 
|
    * object. | 
|
    * When a very large UNICODE value is input to a <code>LONGVARCHAR</code> | 
|
    * parameter, it may be more practical to send it via a | 
|
    * <code>java.io.Reader</code> object. The data will be read from the stream | 
|
    * as needed until end-of-file is reached.  The JDBC driver will | 
|
    * do any necessary conversion from UNICODE to the database char format. | 
|
    * | 
|
    * <P><B>Note:</B> This stream object can either be a standard | 
|
    * Java stream object or your own subclass that implements the | 
|
    * standard interface. | 
|
    * <P><B>Note:</B> Consult your JDBC driver documentation to determine if | 
|
    * it might be more efficient to use a version of | 
|
    * <code>setCharacterStream</code> which takes a length parameter. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param reader the <code>java.io.Reader</code> object that contains the | 
|
    *        Unicode data | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @throws SQLFeatureNotSupportedException  if the JDBC driver does not support this method | 
|
    * @since 1.6 | 
|
*/  | 
|
public void setCharacterStream(String parameterName,  | 
|
java.io.Reader reader) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
    * Sets the designated parameter to the given | 
|
    * <code>java.math.BigDecimal</code> value. | 
|
    * The driver converts this to an SQL <code>NUMERIC</code> value when | 
|
    * it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getBigDecimal | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setBigDecimal(String parameterName, BigDecimal x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given Java <code>String</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>VARCHAR</code> or <code>LONGVARCHAR</code> value | 
|
    * (depending on the argument's | 
|
    * size relative to the driver's limits on <code>VARCHAR</code> values) | 
|
    * when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getString | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setString(String parameterName, String x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given Java array of bytes. | 
|
    * The driver converts this to an SQL <code>VARBINARY</code> or | 
|
    * <code>LONGVARBINARY</code> (depending on the argument's size relative | 
|
    * to the driver's limits on <code>VARBINARY</code> values) when it sends | 
|
    * it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getBytes | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setBytes(String parameterName, byte x[]) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given <code>java.sql.Timestamp</code> value. | 
|
    * The driver | 
|
    * converts this to an SQL <code>TIMESTAMP</code> value when it sends it to the | 
|
    * database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getTimestamp | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setTimestamp(String parameterName, java.sql.Timestamp x)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
    * Sets the designated parameter to SQL <code>NULL</code>. | 
|
    * | 
|
    * <P><B>Note:</B> You must specify the parameter's SQL type. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param sqlType the SQL type code defined in <code>java.sql.Types</code> | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setNull(String parameterName, int sqlType) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to SQL <code>NULL</code>. | 
|
    * This version of the method <code>setNull</code> should | 
|
    * be used for user-defined types and REF type parameters.  Examples | 
|
    * of user-defined types include: STRUCT, DISTINCT, JAVA_OBJECT, and | 
|
    * named array types. | 
|
    * | 
|
    * <P><B>Note:</B> To be portable, applications must give the | 
|
    * SQL type code and the fully-qualified SQL type name when specifying | 
|
    * a NULL user-defined or REF parameter.  In the case of a user-defined type | 
|
    * the name is the type name of the parameter itself.  For a REF | 
|
    * parameter, the name is the type name of the referenced type.  If | 
|
    * a JDBC driver does not need the type code or type name information, | 
|
    * it may ignore it. | 
|
    * | 
|
    * Although it is intended for user-defined and Ref parameters, | 
|
    * this method may be used to set a null parameter of any JDBC type. | 
|
    * If the parameter does not have a user-defined or REF type, the given | 
|
    * typeName is ignored. | 
|
    * | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param sqlType a value from <code>java.sql.Types</code> | 
|
    * @param typeName the fully-qualified name of an SQL user-defined type; | 
|
    *        ignored if the parameter is not a user-defined type or | 
|
    *        SQL <code>REF</code> value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setNull (String parameterName, int sqlType, String typeName)  | 
|
throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given Java <code>boolean</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>BIT</code> or <code>BOOLEAN</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @see #getBoolean | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setBoolean(String parameterName, boolean x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given Java <code>byte</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>TINYINT</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getByte | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setByte(String parameterName, byte x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given Java <code>short</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>SMALLINT</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getShort | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setShort(String parameterName, short x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
   /** | 
|
    * Sets the designated parameter to the given Java <code>int</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>INTEGER</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getInt | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setInt(String parameterName, int x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given Java <code>long</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>BIGINT</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getLong | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setLong(String parameterName, long x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given Java <code>float</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>FLOAT</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getFloat | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setFloat(String parameterName, float x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
 /** | 
|
    * Sets the designated parameter to the given Java <code>double</code> value. | 
|
    * The driver converts this | 
|
    * to an SQL <code>DOUBLE</code> value when it sends it to the database. | 
|
    * | 
|
    * @param parameterName the name of the parameter | 
|
    * @param x the parameter value | 
|
    * @exception SQLException if a database access error occurs or | 
|
    * this method is called on a closed <code>CallableStatement</code> | 
|
    * @exception SQLFeatureNotSupportedException if the JDBC driver does not support | 
|
    * this method | 
|
    * @see #getDouble | 
|
    * @since 1.4 | 
|
*/  | 
|
public void setDouble(String parameterName, double x) throws SQLException{  | 
|
throw new SQLFeatureNotSupportedException(resBundle.handleGetObject("jdbcrowsetimpl.featnotsupp").toString());  | 
|
}  | 
|
    /** | 
|
     * This method re populates the resBundle | 
|
     * during the deserialization process | 
|
     * | 
|
*/  | 
|
private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {  | 
|
        // Default state initialization happens here | 
|
ois.defaultReadObject();  | 
|
        // Initialization of transient Res Bundle happens here . | 
|
        try { | 
|
resBundle = JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle();  | 
|
} catch(IOException ioe) {}  | 
|
}  | 
|
static final long serialVersionUID = -3591946023893483003L;  | 
|
//------------------------- JDBC 4.1 -----------------------------------  | 
|
public <T> T getObject(int columnIndex, Class<T> type) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException("Not supported yet.");  | 
|
}  | 
|
public <T> T getObject(String columnLabel, Class<T> type) throws SQLException {  | 
|
throw new SQLFeatureNotSupportedException("Not supported yet.");  | 
|
}  | 
|
}  |