JdbcRowSet
interface. See the interface
* defintion for full behavior and implementation requirements.
*
* @author Jonathan Bruce, Amit Handa
*/
public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable {
/**
* The Connection
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 PreparedStatement
object that is this rowset's
* current command. This field is set internally when the method
* execute
creates the PreparedStatement
* object.
*/
private PreparedStatement ps;
/**
* The ResultSet
object that is this rowset's
* current result set. This field is set internally when the method
* execute
executes the rowset's command and thereby
* creates the rowset's ResultSet
object.
*/
private ResultSet rs;
/**
* The RowSetMetaDataImpl
object that is contructed when
* a ResultSet
object is passed to the JdbcRowSet
* constructor. This helps in constructing all metadata associated
* with the ResultSet
object using the setter methods of
* RowSetMetaDataImpl
.
*/
private RowSetMetaDataImpl rowsMD;
/**
* The ResultSetMetaData
object from which this
* RowSetMetaDataImpl
is formed and which helps in getting
* the metadata information.
*/
private ResultSetMetaData resMD;
/**
* The Vector holding the Match Columns
*/
private VectorJdbcRowSet
object.
* The new instance of JdbcRowSet
will serve as a proxy
* for the ResultSet
object it creates, and by so doing,
* it will make it possible to use the result set as a JavaBeans
* component.
*
* The following is true of a default JdbcRowSet
instance:
*
null
* Hashtable
object for storing any
* parameters that are set
* JdbcRowSet
object must have its
* execute
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 execute
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 VectorJdbcRowSet
object given a
* valid Connection
object. The new
* instance of JdbcRowSet
will serve as a proxy for
* the ResultSet
object it creates, and by so doing,
* it will make it possible to use the result set as a JavaBeans
* component.
*
* The following is true of a default JdbcRowSet
instance:
*
null
* Hashtable
object for storing any
* parameters that are set
* JdbcRowSet
object must have its
* execute
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 execute
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 VectorJdbcRowSet
object using the
* URL, username, and password arguments supplied. The new
* instance of JdbcRowSet
will serve as a proxy for
* the ResultSet
object it creates, and by so doing,
* it will make it possible to use the result set as a JavaBeans
* component.
*
*
* The following is true of a default JdbcRowSet
instance:
*
null
* Hashtable
object for storing any
* parameters that are set
* JdbcRowSet
* object will be connected. The form for a JDBC URL is
* jdbc:subprotocol:subname
.
* @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 VectorJdbcRowSet
object using the given valid
* ResultSet
object. The new
* instance of JdbcRowSet
will serve as a proxy for
* the ResultSet
object, and by so doing,
* it will make it possible to use the result set as a JavaBeans
* component.
*
*
* The following is true of a default JdbcRowSet
instance:
*
null
* Hashtable
object for storing any
* parameters that are set
* ResultSet
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 VectorRowSetMetaData
object with the values
* in the given ResultSetMetaData
object.
*
* @param md the RowSetMetaData
object for this
* JdbcRowSetImpl
object, which will be set with
* values from rsmd
* @param rsmd the ResultSetMetaData
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 ResultSet
object for which this
* JdbcRowSet
object is a wrapper, effectively
* making the result set a JavaBeans component.
*
* 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 DataSource
* object will be used to create the connection, properties for the
* data source name, user name, and password must be set. If the
* DriverManager
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.
*
* Other properties have default values that may optionally be set
* to new values. The If an input stream is open for the current row, a call
* to the method Note: A Note: All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a Note: All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a Note: All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a Note: All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a Note: All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a Note: All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a The warning chain is automatically cleared each time a new
* row is read.
*
* Note: This warning chain only covers warnings caused
* by 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 The JDBC API supports this SQL feature by providing the name of the
* SQL cursor used by a Note: If positioned update is not supported, a
* Gets the value of the designated column in the current row
* of this rowset's 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.
*
* This method may also be used to read datatabase-specific
* abstract data types.
*
* In the JDBC 3.0 API, the behavior of method
* Gets the value of the designated column in the current row
* of this rowset's 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.
*
* This method may also be used to read datatabase-specific
* abstract data types.
*
* In the JDBC 3.0 API, the behavior of the method
* 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.
*
* 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
* 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.
*
* Note: Calling Note: Calling the method Note: Calling the method The All values are refetched subject to the transaction isolation
* level and cursor sensitivity. If
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* The
* The name supplied to this method must have been bound to a
*
* 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
* 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
* Setting the Url property is optional if connections are established using
* a Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
*
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
*
* 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
*
* 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 Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* 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
* 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 The JDBC specification specifies a standard mapping from
* Java 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
* 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 Note: 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 Note: 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 Note: 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 Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* Note: Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* Note: You must specify the parameter's SQL type.
*
* @param parameterName the name of the parameter
* @param sqlType the SQL type code defined in Note: 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 execute
method will use the value
* for the command property to create a PreparedStatement
* 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 {
MapResultSet
* object down one row from its current position.
* A ResultSet
cursor is initially positioned
* before the first row; the first call to the method
* next
makes the first row the current row; the
* second call makes the second row the current row, and so on.
*
* next
will
* implicitly close it. A ResultSet
object's
* warning chain is cleared when a new row is read.
*
* @return true
if the new current row is valid;
* false
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 ResultSet
object's database and
* JDBC resources immediately instead of waiting for
* this to happen when it is automatically closed.
*
* ResultSet
object
* is automatically closed by the
* Statement
object that generated it when
* that Statement
object is closed,
* re-executed, or is used to retrieve the next result from a
* sequence of multiple results. A ResultSet
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
* ResultSet
object had a value of SQL NULL
.
* Note that you must first call one of the getXXX
methods
* on a column to try to read its value and then call
* the method wasNull
to see if the value read was
* SQL NULL
.
*
* @return true
if the last column value read was SQL
* NULL
and false
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 ResultSet
object as
* a String
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return the column value; if the value is SQL NULL
, the
* value returned is null
* @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 ResultSet
object as
* a boolean
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return the column value; if the value is SQL NULL
, the
* value returned is false
* @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 ResultSet
object as
* a byte
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a short
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* an int
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a long
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a float
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a double
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a java.sql.BigDecimal
.
*
* @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 NULL
, the
* value returned is null
* @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 ResultSet
object as
* a byte
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 NULL
, the
* value returned is null
* @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 ResultSet
object as
* a java.sql.Date
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 NULL
, the
* value returned is null
* @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 ResultSet
object as
* a java.sql.Time
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 NULL
, the
* value returned is null
* @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 ResultSet
object as
* a java.sql.Timestamp
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 NULL
, the
* value returned is null
* @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 ResultSet
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 LONGVARCHAR
values.
* The JDBC driver will
* do any necessary conversion from the database format into ASCII.
*
* getXXX
method implicitly closes the stream. Also, a
* stream may return 0
when the method
* InputStream.available
* 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 NULL
, the
* value returned is null
* @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 ResultSet
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 largeLONGVARCHAR
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.
*
* getXXX
method implicitly closes the stream. Also, a
* stream may return 0
when the method
* InputStream.available
* 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 NULL
, the value returned is null
* @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 getCharacterStream
in place of
* getUnicodeStream
*/
@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 ResultSet
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 LONGVARBINARY
values.
*
* getXXX
method implicitly closes the stream. Also, a
* stream may return 0
when the method
* InputStream.available
* 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 NULL
, the value returned is null
* @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 ResultSet
object as
* a String
.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is null
* @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 ResultSet
object as
* a boolean
.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is false
* @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 ResultSet
object as
* a byte
.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a short
.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* an int
.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a long
.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a float
.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a double
.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is 0
* @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 ResultSet
object as
* a java.math.BigDecimal
.
*
* @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 NULL
, the
* value returned is null
* @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 ResultSet
object as
* a byte
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 NULL
, the
* value returned is null
* @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 ResultSet
object as
* a java.sql.Date
object in the Java programming language.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is null
* @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 ResultSet
object as
* a java.sql.Time
object in the Java programming language.
*
* @param columnName the SQL name of the column
* @return the column value;
* if the value is SQL NULL
,
* the value returned is null
* @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 ResultSet
object as
* a java.sql.Timestamp
object.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is null
* @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 ResultSet
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 LONGVARCHAR
values.
* The JDBC driver will
* do any necessary conversion from the database format into ASCII.
*
* getXXX
method implicitly closes the stream. Also, a
* stream may return 0
when the method available
* 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 NULL
,
* the value returned is null
.
* @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 ResultSet
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 LONGVARCHAR
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.
*
* getXXX
method implicitly closes the stream. Also, a
* stream may return 0
when the method available
* 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 NULL
,
* the value returned is null
.
* @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 ResultSet
object as a stream of uninterpreted
* byte
s.
* The value can then be read in chunks from the
* stream. This method is particularly
* suitable for retrieving large LONGVARBINARY
* values.
*
* getXXX
method implicitly closes the stream. Also, a
* stream may return 0
when the method available
* 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 NULL
, the result is null
* @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
* ResultSet
object.
* Subsequent warnings on this rowset's ResultSet
object
* will be chained to the SQLWarning
object that
* this method returns.
*
* ResultSet
methods. Any warning caused by
* Statement
methods
* (such as reading OUT parameters) will be chained on the
* Statement
object.
*
* @return the first SQLWarning
object reported or null
* @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 ResultSet
object.
* After this method is called, the method getWarnings
* returns null
until a new warning is
* reported for this rowset's ResultSet
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 ResultSet
* object.
*
* select
statement should be
* of the form 'select for update'. If the 'for update' clause is
* omitted, the positioned updates may fail.
*
* ResultSet
object.
* The current row of a ResultSet
object
* is also the current row of this SQL cursor.
*
* SQLException
is thrown.
*
* @return the SQL name for this rowset's ResultSet
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 ResultSet
object's columns.
*
* @return the description of this rowset's ResultSet
* 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();
}
/**
* ResultSet
object as
* an Object
.
*
* getObject
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: getObject(columnIndex,
* this.getStatement().getConnection().getTypeMap())
.
*
* @param columnIndex the first column is 1, the second is 2, and so on
* @return a java.lang.Object
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);
}
/**
* ResultSet
object as
* an Object
.
*
* getObject
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: getObject(columnIndex,
* this.getStatement().getConnection().getTypeMap())
.
*
* @param columnName the SQL name of the column
* @return a java.lang.Object
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 JdbcRowSetImpl
column name to its
* JdbcRowSetImpl
column index and reflects this on
* the internal ResultSet
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 ResultSet
object as a
* java.io.Reader
object.
* @return a java.io.Reader
object that contains the column
* value; if the value is SQL NULL
, the value returned is
* null
.
* @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 ResultSet
object as a
* java.io.Reader
object.
*
* @return a java.io.Reader
object that contains the column
* value; if the value is SQL NULL
, the value returned is
* null
.
* @param columnName the name of the column
* @return the value in the specified column as a java.io.Reader
*
*/
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 ResultSet
object as a
* java.math.BigDecimal
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 NULL
, the value returned is
* null
.
* @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 ResultSet
object as a
* java.math.BigDecimal
with full precision.
*
* @param columnName the column name
* @return the column value (full precision);
* if the value is SQL NULL
, the value returned is
* null
.
* @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 ResultSet
object.
*
* @return true
if the cursor is before the first row;
* false
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 ResultSet
object.
*
* @return true
if the cursor is after the last row;
* false
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 ResultSet
object.
*
* @return true
if the cursor is on the first row;
* false
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 ResultSet
object.
* Note: Calling the method isLast
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 true
if the cursor is on the last row;
* false
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 ResultSet
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 TYPE_FORWARD_ONLY
,
* 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 ResultSet
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 TYPE_FORWARD_ONLY
,
* 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 ResultSet
object.
*
* @return true
if the cursor is on a valid row;
* false
if there are no rows in the result set
* @throws SQLException if (1) a database access error occurs,
* (2) the result set type is TYPE_FORWARD_ONLY
,
* 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 ResultSet
object.
*
* @return true
if the cursor is on a valid row;
* false
if there are no rows in the result set
* @throws SQLException if (1) a database access error occurs,
* (2) the result set type is TYPE_FORWARD_ONLY
,
* 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; 0
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 ResultSet
object.
*
* absolute(-1)
positions the
* cursor on the last row, calling the method absolute(-2)
* moves the cursor to the next-to-last row, and so on.
*
* absolute(1)
is the same
* as calling first()
. Calling absolute(-1)
* is the same as calling last()
.
*
* @return true
if the cursor is on the result set;
* false
otherwise
* @throws SQLException if (1) a database access error occurs,
* (2) the row is 0
, (3) the result set
* type is TYPE_FORWARD_ONLY
, 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 relative(0)
is valid, but does
* not change the cursor position.
*
* relative(1)
* is different from calling the method next()
* because is makes sense to call next()
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 true
if the cursor is on a row;
* false
otherwise
* @throws SQLException if (1) a database access error occurs,
* (2) there is no current row, (3) the result set
* type is TYPE_FORWARD_ONLY
, 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
* ResultSet
object.
*
* previous()
is not the same as
* calling the method relative(-1)
because it
* makes sense to call previous()
when there is no current row.
*
* @return true
if the cursor is on a valid row;
* false
if it is off the result set
* @throws SQLException if (1) a database access error occurs,
* (2) the result set type is TYPE_FORWARD_ONLY
,
* 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
* ResultSet
object will be processed.
* The initial value is determined by the
* Statement
object
* that produced this rowset's ResultSet
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 TYPE_FORWARD_ONLY
* and the fetch direction is not FETCH_FORWARD
,
* 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
* ResultSet
object.
*
* @return the current fetch direction for this rowset's
* ResultSet
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
* ResultSet
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
* Statement
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 0 <= rows <= this.getMaxRows()
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
* ResultSet
object.
*
* @return the current fetch size for this rowset's ResultSet
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 ResultSet
object.
* The concurrency used is determined by the
* Statement
object that created the result set.
*
* @return the concurrency type, either CONCUR_READ_ONLY
* or CONCUR_UPDATABLE
* @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 true
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
* ResultSet
object can detect visible inserts.
*
* @return true
if a row has had an insertion
* and insertions are detected; false
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 ResultSet
object can detect deletions.
*
* @return true
if a row was deleted and deletions are detected;
* false
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 updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 boolean
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 byte
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 short
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 int
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 long
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 float
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 double
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 java.math.BigDecimal
* value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 String
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 byte
array value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 java.sql.Date
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 java.sql.Time
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 java.sql.Timestamp
* value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 Object
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, and so on
* @param x the new column value
* @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.
* @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 Object
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
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, 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 null
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 boolean
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 byte
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 short
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 int
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 long
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 float
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 double
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 java.sql.BigDecimal
* value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 String
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 boolean
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
methods are called to update the database.
*
* JDBC 2.0
*
* Updates a column with a byte array value.
*
* The updateXXX
methods are used to update column values in the
* current row, or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or insertRow
* 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 java.sql.Date
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 java.sql.Time
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 java.sql.Timestamp
* value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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 updateXXX
methods are used to update column values
* in the current row or the insert row. The updateXXX
* methods do not update the underlying database; instead the
* updateRow
or insertRow
methods are called
* to update the database.
*
* @param columnName the name of the column
* @param reader the new column Reader
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 Object
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
methods are called to update the database.
*
* @param columnName the name of the column
* @param x the new column value
* @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.
* @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 Object
value.
* The updateXXX
methods are used to update column values in the
* current row or the insert row. The updateXXX
methods do not
* update the underlying database; instead the updateRow
or
* insertRow
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
* ResultSet
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 ResultSet
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 ResultSet.CONCUR_READ_ONLY
, 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 ResultSet
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 ResultSet.CONCUR_READ_ONLY
, 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 ResultSet
* object with its most recent value in the database. This method
* cannot be called when the cursor is on the insert row.
*
* refreshRow
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
* refreshRow
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.
*
* refreshRow
is called after
* calling an updateXXX
method, but before calling
* the method updateRow
, then the
* updates made to the row are lost. Calling the method
* refreshRow
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
* ResultSet
object and notifies listeners that a row
* has changed. This method may be called after calling an
* updateXXX
method(s) and before calling
* the method updateRow
to roll back
* the updates made to a row. If no updates have been made or
* updateRow
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 updateXXX
methods prior to
* inserting the row into the result set.
*
* Only the updateXXX
, getXXX
,
* and insertRow
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 insertRow
.
* An updateXXX
method must be called before a
* getXXX
method can be called on a column value.
*
* @throws SQLException if (1) a database access error occurs,
* (2) this rowset's ResultSet
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 ResultSet
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 Statement
object that produced this
* ResultSet
object.
* If the result set was generated some other way, such as by a
* DatabaseMetaData
method, this method returns
* null
.
*
* @return the Statment
object that produced
* this rowset's ResultSet
object or null
* 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 ResultSet
object as an Object
.
* This method uses the given Map
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 java.util.Map
object that contains the mapping
* from SQL type names to classes in the Java programming language
* @return an Object
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.MapResultSet
object as a Ref
object.
*
* @param i the first column is 1, the second is 2, and so on
* @return a Ref
object representing an SQL REF
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 ResultSet
object as a Blob
object.
*
* @param i the first column is 1, the second is 2, and so on
* @return a Blob
object representing the SQL BLOB
* 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 ResultSet
object as a Clob
object.
*
* @param i the first column is 1, the second is 2, and so on
* @return a Clob
object representing the SQL CLOB
* 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 ResultSet
object as an Array
object.
*
* @param i the first column is 1, the second is 2, and so on.
* @return an Array
object representing the SQL ARRAY
* 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 ResultSet
object as an Object
.
* This method uses the specified Map
object for
* custom mapping if appropriate.
*
* @param colName the name of the column from which to retrieve the value
* @param map a java.util.Map
object that contains the mapping
* from SQL type names to classes in the Java programming language
* @return an Object
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.MapResultSet
object as a Ref
object.
*
* @param colName the column name
* @return a Ref
object representing the SQL REF
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 ResultSet
object as a Blob
object.
*
* @param colName the name of the column from which to retrieve the value
* @return a Blob
object representing the SQL BLOB
* 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 ResultSet
object as a Clob
object.
*
* @param colName the name of the column from which to retrieve the value
* @return a Clob
object representing the SQL CLOB
* 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 ResultSet
object as an Array
object.
*
* @param colName the name of the column from which to retrieve the value
* @return an Array
object representing the SQL ARRAY
* 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 ResultSet
object as a java.sql.Date
* 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 java.util.Calendar
object
* to use in constructing the date
* @return the column value as a java.sql.Date
object;
* if the value is SQL NULL
,
* the value returned is null
* @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 ResultSet
object as a java.sql.Date
* 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 java.util.Calendar
object
* to use in constructing the date
* @return the column value as a java.sql.Date
object;
* if the value is SQL NULL
,
* the value returned is null
* @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 ResultSet
object as a java.sql.Time
* 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 java.util.Calendar
object
* to use in constructing the time
* @return the column value as a java.sql.Time
object;
* if the value is SQL NULL
,
* the value returned is null
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 ResultSet
object as a java.sql.Time
* 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 java.util.Calendar
object
* to use in constructing the time
* @return the column value as a java.sql.Time
object;
* if the value is SQL NULL
,
* the value returned is null
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 ResultSet
object as a
* java.sql.Timestamp
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 java.util.Calendar
object
* to use in constructing the timestamp
* @return the column value as a java.sql.Timestamp
object;
* if the value is SQL NULL
,
* the value returned is null
* @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 ResultSet
object as a
* java.sql.Timestamp
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 java.util.Calendar
object
* to use in constructing the timestamp
* @return the column value as a java.sql.Timestamp
object;
* if the value is SQL NULL
,
* the value returned is null
* @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 JdbcRowSetImpl
object with the given
* double
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 1
, the second
* is 2
, and so on; must be 1
or larger
* and equal to or less than the number of columns in this rowset
* @param ref the new Ref
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
* ResultSet.CONCUR_READ_ONLY
*/
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 JdbcRowSetImpl
object with the given
* double
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 String
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 ResultSet.CONCUR_READ_ONLY
*/
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 JdbcRowSetImpl
object with the given
* double
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 1
, the second
* is 2
, and so on; must be 1
or larger
* and equal to or less than the number of columns in this rowset
* @param c the new column Clob
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
* ResultSet.CONCUR_READ_ONLY
*/
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 JdbcRowSetImpl
object with the given
* double
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 String
object that must match the
* SQL name of a column in this rowset, ignoring case
* @param c the new column Clob
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 ResultSet.CONCUR_READ_ONLY
*/
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 JdbcRowSetImpl
object with the given
* java.sql.Blob
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 1
, the second
* is 2
, and so on; must be 1
or larger
* and equal to or less than the number of columns in this rowset
* @param b the new column Blob
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
* ResultSet.CONCUR_READ_ONLY
*/
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 JdbcRowSetImpl
object with the given
* java.sql.Blob
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 String
object that must match the
* SQL name of a column in this rowset, ignoring case
* @param b the new column Blob
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 ResultSet.CONCUR_READ_ONLY
*/
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 JdbcRowSetImpl
object with the given
* java.sql.Array
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 1
, the second
* is 2
, and so on; must be 1
or larger
* and equal to or less than the number of columns in this rowset
* @param a the new column Array
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
* ResultSet.CONCUR_READ_ONLY
*/
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 JdbcRowSetImpl
object with the given
* java.sql.Array
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 String
object that must match the
* SQL name of a column in this rowset, ignoring case
* @param a the new column Array
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 ResultSet.CONCUR_READ_ONLY
*/
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
* JdbcRowSetImpl
*/
public RowSetWarning getRowSetWarnings() throws SQLException {
return null;
}
/**
* Unsets the designated parameter to the given int array.
* This was set using setMatchColumn
* as the column which will form the basis of the join.
* setMatchColumn(int [])
*/
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 setMatchColumn
* as the column which will form the basis of the join.
* setMatchColumn(String [])
*/
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 String
array
* that was set using setMatchColumn(String [])
* for this rowset.
*
* @return a String
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 int
array that was set using
* setMatchColumn(int [])
for this rowset.
*
* @return a int
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
* JoinRowSet
as the column which will form the basis of the
* join.
* getMatchColumnIndexes
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
* 0
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
* JoinRowSet
as the column which will form the basis of the
* join.
* getMatchColumn
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 int
* object. This forms the basis of the join for the
* JoinRowSet
as the column which will form the basis of the
* join.
* getMatchColumn
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
* 0
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 String
* object. This forms the basis of the join for the
* JoinRowSet
as the column which will form the basis of the
* join.
* getMatchColumn
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 int
* object. This was set using setMatchColumn
* as the column which will form the basis of the join.
* setMatchColumn(int)
*/
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 String
* object. This was set using setMatchColumn
* as the column which will form the basis of the join.
* setMatchColumn(String)
*
*/
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 DatabaseMetaData
associated with
* the connection handle associated this this
* JdbcRowSet
object.
*
* @return the DatabaseMetadata
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 ParameterMetaData
associated with
* the connection handle associated this this
* JdbcRowSet
object.
*
* @return the ParameterMetadata
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 JdbcRowSet
object by
* wrapping the internal Connection
object and calling
* its commit
method.
* This method sets this JdbcRowSet
object's private field
* rs
to null
after saving its value to another
* object, but only if the ResultSet
* constant HOLD_CURSORS_OVER_COMMIT
has not been set.
* (The field rs
is this JdbcRowSet
object's
* ResultSet
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 Connection
object with this
* JdbcRowSet
*
* @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 JdbcRowSet
.
*
* @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 JdbcRowSet
object by
* wrapping the internal Connection
object and calling its
* rollback
method.
* This method sets this JdbcRowSet
object's private field
* rs
to null
after saving its value to another object.
* (The field rs
is this JdbcRowSet
object's
* internal ResultSet
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 JdbcRowSet
back to the
* last Savepoint
transaction marker. Wraps the internal
* Connection
object and call it's rollback method
*
* @param s the Savepoint
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 JdbcRowSet
object's Connection property
*
*
* @return the Connection
object associated with this rowset;
*/
protected Connection getConnection() {
return conn;
}
// Sets the connection handle with the parameter
// Added as per rave requirements
/**
* Sets this JdbcRowSet
object's connection property
* to the given Connection
object.
*
* @param connection the Connection
object.
*/
protected void setConnection(Connection connection) {
conn = connection;
}
// Returns a PreparedStatement Handle
// Added as per Rave requirements
/**
* Gets this JdbcRowSet
object's PreparedStatement property
*
*
* @return the PreparedStatement
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 JdbcRowSet
object's preparedtsatement property
* to the given PreparedStatemennt
object.
*
* @param preparedStatement the PreparedStatement
object
*
*/
protected void setPreparedStatement(PreparedStatement preparedStatement) {
ps = preparedStatement;
}
// Returns a ResultSet handle
// Added as per Rave requirements
/**
* Gets this JdbcRowSet
object's ResultSet property
*
*
* @return the ResultSet
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 JdbcRowSet
object's resultset property
* to the given ResultSet
object.
*
* @param resultSet the ResultSet
object
*
*/
protected void setResultSet(ResultSet resultSet) {
rs = resultSet;
}
/**
* Sets this JdbcRowSet
object's command
property to
* the given String
object and clears the parameters, if any,
* that were set for the previous command. In addition,
* if the command
property has previously been set to a
* non-null value and it is
* different from the String
object supplied,
* this method sets this JdbcRowSet
object's private fields
* ps
and rs
to null
.
* (The field ps
is its PreparedStatement
object, and
* the field rs
is its ResultSet
object.)
* command
property may not be needed if the RowSet
* 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 null
.
*
* @param command a String
object containing an SQL query
* that will be set as this RowSet
object's command
* property; may be null
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 dataSourceName
property for this JdbcRowSet
* object to the given logical name and sets this JdbcRowSet
object's
* Url property to null
. In addition, if the dataSourceName
* property has previously been set and is different from the one supplied,
* this method sets this JdbcRowSet
object's private fields
* ps
, rs
, and conn
to null
.
* (The field ps
is its PreparedStatement
object,
* the field rs
is its ResultSet
object, and
* the field conn
is its Connection
object.)
* DataSource
object in a JNDI naming service so that an
* application can do a lookup using that name to retrieve the
* DataSource
object bound to it. The DataSource
* object can then be used to establish a connection to the data source it
* represents.
* String
object with the name that can be supplied
* to a naming service based on JNDI technology to retrieve the
* DataSource
object that can be used to get a connection;
* may be null
* @throws SQLException if there is a problem setting the
* dataSourceName
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 JdbcRowSet
object
* to the given String
object and sets the dataSource name
* property to null
. In addition, if the Url property has
* previously been set to a non null
value and its value
* is different from the value to be set,
* this method sets this JdbcRowSet
object's private fields
* ps
, rs
, and conn
to null
.
* (The field ps
is its PreparedStatement
object,
* the field rs
is its ResultSet
object, and
* the field conn
is its Connection
object.)
* DriverManager
.
* 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 String
object except
* one with a length of 0
(an empty string).
* DataSource
object instead of the DriverManager
.
* 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
* RowSet
object to connect to a database. The RowSet
* object will use the URL internally to create a database connection in order
* to read or write data.
*
* @param url a String
object that contains the JDBC URL
* that will be used to establish the connection to a database for this
* RowSet
object; may be null
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 0
(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 JdbcRowSet
object
* to the given user name. Because it
* is not serialized, the username property is set at run time before
* calling the method execute
. In addition,
* if the username
property is already set with a
* non-null value and that value is different from the String
* object to be set,
* this method sets this JdbcRowSet
object's private fields
* ps
, rs
, and conn
to null
.
* (The field ps
is its PreparedStatement
object,
* rs
is its ResultSet
object, and
* conn
is its Connection
object.)
* Setting these fields to null
ensures that only current
* values will be used.
*
* @param uname the String
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 JdbcRowSet
object
* to the given String
object. Because it
* is not serialized, the password property is set at run time before
* calling the method execute
. Its default valus is
* null
. In addition,
* if the password
property is already set with a
* non-null value and that value is different from the one being set,
* this method sets this JdbcRowSet
object's private fields
* ps
, rs
, and conn
to null
.
* (The field ps
is its PreparedStatement
object,
* rs
is its ResultSet
object, and
* conn
is its Connection
object.)
* Setting these fields to null
ensures that only current
* values will be used.
*
* @param password the String
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 RowSet
object to the specified type.
* The default type is ResultSet.TYPE_SCROLL_INSENSITIVE
.
*
* @param type one of the following constants:
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @throws SQLException if the parameter supplied is not one of the
* following constants:
* ResultSet.TYPE_FORWARD_ONLY
or
* ResultSet.TYPE_SCROLL_INSENSITIVE
* ResultSet.TYPE_SCROLL_SENSITIVE
* @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 RowSet
object to
* the specified concurrency. The default concurrency for any RowSet
* object (connected or disconnected) is ResultSet.CONCUR_UPDATABLE
,
* but this method may be called at any time to change the concurrency.
*
* @param concur one of the following constants:
* ResultSet.CONCUR_READ_ONLY
or
* ResultSet.CONCUR_UPDATABLE
* @throws SQLException if the parameter supplied is not one of the
* following constants:
* ResultSet.CONCUR_UPDATABLE
or
* ResultSet.CONCUR_READ_ONLY
* @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 SQL XML
parameter as a
* SQLXML
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 SQL XML
parameter as a
* SQLXML
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
* ResultSet
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 NULL
the
* value returned is null
* @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
* ResultSet
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 NULL
the
* value returned is null
* @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 RowId
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 updateRow
or
insertRow
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 RowId
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 updateRow
or
insertRow
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 NCLOB
type that maps
* to java.sql.Types.NCLOB
* @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 NCLOB
type that maps
* to java.sql.Types.NCLOB
* @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 ResultSet
object as a NClob
object
* in the Java programming language.
*
* @param i the first column is 1, the second is 2, ...
* @return a NClob
object representing the SQL
* NCLOB
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 ResultSet
object as a NClob
object
* in the Java programming language.
*
* @param colName the name of the column from which to retrieve the value
* @return a NClob
object representing the SQL NCLOB
* 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 java.sql.SQLXML
object. The driver converts this to an
* SQL XML
value when it sends it to the database.
* @param parameterIndex index of the first parameter is 1, the second is 2, ...
* @param xmlObject a SQLXML
object that maps an SQL XML
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 java.sql.SQLXML
object. The driver converts this to an
* SQL XML
value when it sends it to the database.
* @param parameterName the name of the parameter
* @param xmlObject a SQLXML
object that maps an SQL XML
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 java.sql.RowId
object. The
* driver converts this to a SQL ROWID
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 java.sql.RowId
object. The
* driver converts this to a SQL ROWID
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 paramter to the given String
object.
* The driver converts this to a SQL NCHAR
or
* NVARCHAR
or LONGNVARCHAR
value
* (depending on the argument's
* size relative to the driver's limits on NVARCHAR
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 RowSet
object's command
* to a Reader
object. The
* Reader
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.
* setNCharacterStream
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 PreparedStatement
* @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 java.sql.NClob
object. The object
* implements the java.sql.NClob
interface. This NClob
* object maps to a SQL NCLOB
.
* @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 ResultSet
object as a
* java.io.Reader
object.
* It is intended for use when
* accessing NCHAR
,NVARCHAR
* and LONGNVARCHAR
columns.
*
* @return a java.io.Reader
object that contains the column
* value; if the value is SQL NULL
, the value returned is
* null
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 ResultSet
object as a
* java.io.Reader
object.
* It is intended for use when
* accessing NCHAR
,NVARCHAR
* and LONGNVARCHAR
columns.
*
* @param columnName the name of the column
* @return a java.io.Reader
object that contains the column
* value; if the value is SQL NULL
, the value returned is
* null
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 java.sql.SQLXML
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 updateRow
or insertRow
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 java.sql.SQLXML
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 updateRow
or insertRow
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 ResultSet
object as
* a String
in the Java programming language.
* It is intended for use when
* accessing NCHAR
,NVARCHAR
* and LONGNVARCHAR
columns.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL NULL
, the
* value returned is null
* @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 ResultSet
object as
* a String
in the Java programming language.
* It is intended for use when
* accessing NCHAR
,NVARCHAR
* and LONGNVARCHAR
columns.
*
* @param columnName the SQL name of the column
* @return the column value; if the value is SQL NULL
, the
* value returned is null
* @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 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.
*
* updateNCharacterStream
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 CONCUR_READ_ONLY
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 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.
*
* updateNCharacterStream
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 java.io.Reader
object containing
* the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is CONCUR_READ_ONLY
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 LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.InputStream
. 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.
*
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.InputStream
. 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.
*
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.InputStream
. 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.
*
* updateBlob
which takes a length parameter.
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.InputStream
. 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.
*
* updateBlob
which takes a length parameter.
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 Reader
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 Reader
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 Reader
* object.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* updateClob
which takes a length parameter.
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 Reader
* object.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* updateClob
which takes a length parameter.
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 Reader
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* @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 Reader
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* @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 Reader
* object.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* updateNClob
which takes a length parameter.
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* @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 Reader
* object.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* updateNClob
which takes a length parameter.
* updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* @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 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,
* the result set concurrency is CONCUR_READ_ONLY
* 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 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,
* the result set concurrency is CONCUR_READ_ONLY
* 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 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,
* the result set concurrency is CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
methods are called to update the database.
*
* updateAsciiStream
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 CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
methods are called to update the database.
*
* updateAsciiStream
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 CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
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 CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
methods are called to update the database.
*
* updateBinaryStream
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 CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
methods are called to update the database.
*
* updateBinaryStream
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 CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
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 java.io.Reader
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 CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
methods are called to update the database.
*
* updateCharacterStream
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 CONCUR_READ_ONLY
* 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 updateRow
or
* insertRow
methods are called to update the database.
*
* updateCharacterStream
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 java.io.Reader
object containing
* the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is CONCUR_READ_ONLY
* 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 java.net.URL
value.
* The driver converts this to an SQL DATALINK
value
* when it sends it to the database.
*
* @param parameterIndex the first parameter is 1, the second is 2, ...
* @param x the java.net.URL
object to be set
* @exception SQLException if a database access error occurs or
* this method is called on a closed PreparedStatement
* @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 Reader
object.
* This method differs from the setCharacterStream (int, Reader)
method
* because it informs the driver that the parameter value should be sent to
* the server as a NCLOB
. When the setCharacterStream
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 LONGNVARCHAR
or a NCLOB
* setNClob
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 PreparedStatement
* @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 Reader
object. The reader
must contain the number
* of characters specified by length otherwise a SQLException
will be
* generated when the CallableStatement
is executed.
* This method differs from the setCharacterStream (int, Reader, int)
method
* because it informs the driver that the parameter value should be sent to
* the server as a NCLOB
. When the setCharacterStream
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 LONGNVARCHAR
or a NCLOB
*
* @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 CallableStatement
* @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 Reader
object.
* This method differs from the setCharacterStream (int, Reader)
method
* because it informs the driver that the parameter value should be sent to
* the server as a NCLOB
. When the setCharacterStream
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 LONGNVARCHAR
or a NCLOB
* setNClob
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 CallableStatement
* @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 SQLException
will becontain the number
* generated when the PreparedStatement
is executed.
* This method differs from the setCharacterStream (int, Reader, int)
method
* because it informs the driver that the parameter value should be sent to
* the server as a NCLOB
. When the setCharacterStream
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 LONGNVARCHAR
or a NCLOB
* @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 PreparedStatement
* @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 java.sql.NClob
object. The driver converts this to
a
* SQL NCLOB
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 paramter to the given String
object.
* The driver converts this to a SQL NCHAR
or
* NVARCHAR
or LONGNVARCHAR
* @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 Reader
object. The
* Reader
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 Reader
object. The
* Reader
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 Reader
object. The
* Reader
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.
* setNCharacterStream
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 CallableStatement
* @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 java.sql.Timestamp
value,
* using the given Calendar
object. The driver uses
* the Calendar
object to construct an SQL TIMESTAMP
value,
* which the driver then sends to the database. With a
* a Calendar
object, the driver can calculate the timestamp
* taking into account a custom timezone. If no
* Calendar
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 Calendar
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 CallableStatement
* @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 Reader
object. The reader
must contain the number
* of characters specified by length otherwise a SQLException
will be
* generated when the CallableStatement
is executed.
* This method differs from the setCharacterStream (int, Reader, int)
method
* because it informs the driver that the parameter value should be sent to
* the server as a CLOB
. When the setCharacterStream
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 LONGVARCHAR
or a CLOB
* @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 CallableStatement
* @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 java.sql.Clob
object.
* The driver converts this to an SQL CLOB
value when it
* sends it to the database.
*
* @param parameterName the name of the parameter
* @param x a Clob
object that maps an SQL CLOB
value
* @exception SQLException if a database access error occurs or
* this method is called on a closed CallableStatement
* @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 Reader
object.
* This method differs from the setCharacterStream (int, Reader)
method
* because it informs the driver that the parameter value should be sent to
* the server as a CLOB
. When the setCharacterStream
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 LONGVARCHAR
or a CLOB
*
* setClob
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 CallableStatement
*
* @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 java.sql.Date
value
* using the default time zone of the virtual machine that is running
* the application.
* The driver converts this
* to an SQL DATE
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 CallableStatement
* @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 java.sql.Date
value,
* using the given Calendar
object. The driver uses
* the Calendar
object to construct an SQL DATE
value,
* which the driver then sends to the database. With a
* a Calendar
object, the driver can calculate the date
* taking into account a custom timezone. If no
* Calendar
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 Calendar
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 CallableStatement
* @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 java.sql.Time
value.
* The driver converts this
* to an SQL TIME
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 CallableStatement
* @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 java.sql.Time
value,
* using the given Calendar
object. The driver uses
* the Calendar
object to construct an SQL TIME
value,
* which the driver then sends to the database. With a
* a Calendar
object, the driver can calculate the time
* taking into account a custom timezone. If no
* Calendar
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 Calendar
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 CallableStatement
* @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 Reader
object.
* This method differs from the setCharacterStream (int, Reader)
method
* because it informs the driver that the parameter value should be sent to
* the server as a CLOB
. When the setCharacterStream
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 LONGVARCHAR
or a CLOB
*
* setClob
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 PreparedStatement
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 Reader
object. The reader must contain the number
* of characters specified by length otherwise a SQLException
will be
* generated when the PreparedStatement
is executed.
*This method differs from the setCharacterStream (int, Reader, int)
method
* because it informs the driver that the parameter value should be sent to
* the server as a CLOB
. When the setCharacterStream
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 LONGVARCHAR
or a CLOB
* @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 PreparedStatement
, 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 InputStream
object. The inputstream must contain the number
* of characters specified by length otherwise a SQLException
will be
* generated when the PreparedStatement
is executed.
* This method differs from the setBinaryStream (int, InputStream, int)
* method because it informs the driver that the parameter value should be
* sent to the server as a BLOB
. When the setBinaryStream
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 LONGVARBINARY
or a BLOB
* @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 PreparedStatement
,
* 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 specfied 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 InputStream
object.
* This method differs from the setBinaryStream (int, InputStream)
* This method differs from the setBinaryStream (int, InputStream)
* method because it informs the driver that the parameter value should be
* sent to the server as a BLOB
. When the setBinaryStream
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 LONGVARBINARY
or a BLOB
*
* setBlob
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 PreparedStatement
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 InputStream
object. The inputstream
must contain the number
* of characters specified by length, otherwise a SQLException
will be
* generated when the CallableStatement
is executed.
* This method differs from the setBinaryStream (int, InputStream, int)
* method because it informs the driver that the parameter value should be
* sent to the server as a BLOB
. When the setBinaryStream
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 LONGVARBINARY
or a BLOB
*
* @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 specfied length; if a database access error occurs or
* this method is called on a closed CallableStatement
* @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 java.sql.Blob
object.
* The driver converts this to an SQL BLOB
value when it
* sends it to the database.
*
* @param parameterName the name of the parameter
* @param x a Blob
object that maps an SQL BLOB
value
* @exception SQLException if a database access error occurs or
* this method is called on a closed CallableStatement
* @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 InputStream
object.
* This method differs from the setBinaryStream (int, InputStream)
* method because it informs the driver that the parameter value should be
* sent to the server as a BLOB
. When the setBinaryStream
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 LONGVARBINARY
or a BLOB
*
* setBlob
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 CallableStatement
* @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
* java.lang
equivalent objects should be used.
*
* SQLData
),
* the JDBC driver should call the method SQLData.writeSQL
to write it
* to the SQL data stream.
* If, on the other hand, the object is of a class implementing
* Ref
, Blob
, Clob
, NClob
,
* Struct
, java.net.URL
,
* or Array
, the driver should pass it to the database as a
* value of the corresponding SQL type.
* CallableStatement
* @exception SQLFeatureNotSupportedException if targetSqlType
is
* a ARRAY
, BLOB
, CLOB
,
* DATALINK
, JAVA_OBJECT
, NCHAR
,
* NCLOB
, NVARCHAR
, LONGNVARCHAR
,
* REF
, ROWID
, SQLXML
* or STRUCT
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 setObject
* 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 CallableStatement
* @exception SQLFeatureNotSupportedException if targetSqlType
is
* a ARRAY
, BLOB
, CLOB
,
* DATALINK
, JAVA_OBJECT
, NCHAR
,
* NCLOB
, NVARCHAR
, LONGNVARCHAR
,
* REF
, ROWID
, SQLXML
* or STRUCT
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 Object
; therefore, the
* java.lang
equivalent objects should be used for built-in types.
*
* Object
types to SQL types. The given argument
* will be converted to the corresponding SQL type before being
* sent to the database.
*
* SQLData
,
* the JDBC driver should call the method SQLData.writeSQL
* to write it to the SQL data stream.
* If, on the other hand, the object is of a class implementing
* Ref
, Blob
, Clob
, NClob
,
* Struct
, java.net.URL
,
* or Array
, the driver should pass it to the database as a
* value of the corresponding SQL type.
* CallableStatement
or if the given
* Object
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 LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.InputStream
. 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.
*
* CallableStatement
* @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 LONGVARBINARY
* parameter, it may be more practical to send it via a
* java.io.InputStream
object. The data will be read from the stream
* as needed until end-of-file is reached.
*
* CallableStatement
* @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 Reader
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* java.io.Reader
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 CallableStatement
* @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 LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.InputStream
. 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.
*
* setAsciiStream
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 CallableStatement
* @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 LONGVARBINARY
* parameter, it may be more practical to send it via a
* java.io.InputStream
object. The data will be read from the
* stream as needed until end-of-file is reached.
*
* setBinaryStream
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 CallableStatement
* @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 Reader
* object.
* When a very large UNICODE value is input to a LONGVARCHAR
* parameter, it may be more practical to send it via a
* java.io.Reader
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.
*
* setCharacterStream
which takes a length parameter.
*
* @param parameterName the name of the parameter
* @param reader the java.io.Reader
object that contains the
* Unicode data
* @exception SQLException if a database access error occurs or
* this method is called on a closed CallableStatement
* @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
* java.math.BigDecimal
value.
* The driver converts this to an SQL NUMERIC
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 CallableStatement
* @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 String
value.
* The driver converts this
* to an SQL VARCHAR
or LONGVARCHAR
value
* (depending on the argument's
* size relative to the driver's limits on VARCHAR
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 CallableStatement
* @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 VARBINARY
or
* LONGVARBINARY
(depending on the argument's size relative
* to the driver's limits on VARBINARY
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 CallableStatement
* @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 java.sql.Timestamp
value.
* The driver
* converts this to an SQL TIMESTAMP
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 CallableStatement
* @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 NULL
.
*
* java.sql.Types
* @exception SQLException if a database access error occurs or
* this method is called on a closed CallableStatement
* @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 NULL
.
* This version of the method setNull
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.
*
* java.sql.Types
* @param typeName the fully-qualified name of an SQL user-defined type;
* ignored if the parameter is not a user-defined type or
* SQL REF
value
* @exception SQLException if a database access error occurs or
* this method is called on a closed CallableStatement
* @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 boolean
value.
* The driver converts this
* to an SQL BIT
or BOOLEAN
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 CallableStatement
* @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 byte
value.
* The driver converts this
* to an SQL TINYINT
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 CallableStatement
* @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 short
value.
* The driver converts this
* to an SQL SMALLINT
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 CallableStatement
* @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 int
value.
* The driver converts this
* to an SQL INTEGER
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 CallableStatement
* @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 long
value.
* The driver converts this
* to an SQL BIGINT
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 CallableStatement
* @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 float
value.
* The driver converts this
* to an SQL FLOAT
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 CallableStatement
* @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 double
value.
* The driver converts this
* to an SQL DOUBLE
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 CallableStatement
* @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