diff -r 4ebc2e2fb97c -r 71c04702a3d5 src/java.sql/share/classes/javax/sql/RowSet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java.sql/share/classes/javax/sql/RowSet.java Tue Sep 12 19:03:39 2017 +0200 @@ -0,0 +1,2193 @@ +/* + * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package javax.sql; + +import java.sql.*; +import java.io.*; +import java.math.*; +import java.util.*; + +/** + * The interface that adds support to the JDBC API for the + * JavaBeans™ component model. + * A rowset, which can be used as a JavaBeans component in + * a visual Bean development environment, can be created and + * configured at design time and executed at run time. + *
+ * The RowSet
+ * interface provides a set of JavaBeans properties that allow a RowSet
+ * instance to be configured to connect to a JDBC data source and read
+ * some data from the data source. A group of setter methods (setInt
,
+ * setBytes
, setString
, and so on)
+ * provide a way to pass input parameters to a rowset's command property.
+ * This command is the SQL query the rowset uses when it gets its data from
+ * a relational database, which is generally the case.
+ *
+ * The RowSet
+ * interface supports JavaBeans events, allowing other components in an
+ * application to be notified when an event occurs on a rowset,
+ * such as a change in its value.
+ *
+ *
The RowSet
interface is unique in that it is intended to be
+ * implemented using the rest of the JDBC API. In other words, a
+ * RowSet
implementation is a layer of software that executes "on top"
+ * of a JDBC driver. Implementations of the RowSet
interface can
+ * be provided by anyone, including JDBC driver vendors who want to
+ * provide a RowSet
implementation as part of their JDBC products.
+ *
+ * A RowSet
object may make a connection with a data source and
+ * maintain that connection throughout its life cycle, in which case it is
+ * called a connected rowset. A rowset may also make a connection with
+ * a data source, get data from it, and then close the connection. Such a rowset
+ * is called a disconnected rowset. A disconnected rowset may make
+ * changes to its data while it is disconnected and then send the changes back
+ * to the original source of the data, but it must reestablish a connection to do so.
+ *
+ * A disconnected rowset may have a {@code Reader} (a RowSetReader
object)
+ * and a writer (a RowSetWriter
object) associated with it.
+ * The {@code Reader} may be implemented in many different ways to populate a rowset
+ * with data, including getting data from a non-relational data source. The
+ * writer can also be implemented in many different ways to propagate changes
+ * made to the rowset's data back to the underlying data source.
+ *
+ * Rowsets are easy to use. The RowSet
interface extends the standard
+ * java.sql.ResultSet
interface. The RowSetMetaData
+ * interface extends the java.sql.ResultSetMetaData
interface.
+ * Thus, developers familiar
+ * with the JDBC API will have to learn a minimal number of new APIs to
+ * use rowsets. In addition, third-party software tools that work with
+ * JDBC ResultSet
objects will also easily be made to work with rowsets.
+ *
+ * @since 1.4
+ */
+
+public interface RowSet extends ResultSet {
+
+ //-----------------------------------------------------------------------
+ // Properties
+ //-----------------------------------------------------------------------
+
+ //-----------------------------------------------------------------------
+ // The following properties may be used to create a Connection.
+ //-----------------------------------------------------------------------
+
+ /**
+ * Retrieves the url property this RowSet
object will use to
+ * create a connection if it uses the DriverManager
+ * instead of a DataSource
object to establish the connection.
+ * The default value is null
.
+ *
+ * @return a string url
+ * @exception SQLException if a database access error occurs
+ * @see #setUrl
+ */
+ String getUrl() throws SQLException;
+
+ /**
+ * Sets the URL this RowSet
object will use when it uses the
+ * DriverManager
to create a connection.
+ *
+ * Setting this property is optional. If a URL is used, a JDBC driver
+ * that accepts the URL must be loaded before the
+ * rowset is used to connect to a database. The rowset will use the URL
+ * internally to create a database connection when reading or writing
+ * data. Either a URL or a data source name is used to create a
+ * connection, whichever was set to non null value most recently.
+ *
+ * @param url a string value; may be null
+ * @exception SQLException if a database access error occurs
+ * @see #getUrl
+ */
+ void setUrl(String url) throws SQLException;
+
+ /**
+ * Retrieves the logical name that identifies the data source for this
+ * RowSet
object.
+ *
+ * @return a data source name
+ * @see #setDataSourceName
+ * @see #setUrl
+ */
+ String getDataSourceName();
+
+ /**
+ * Sets the data source name property for this RowSet
object to the
+ * given String
.
+ *
+ * The value of the data source name property can be used to do a lookup of
+ * a
+ * Attempts to update a read-only rowset will result in an
+ * Note: You must specify the parameter's SQL type.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param sqlType a SQL type code defined by 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 UDT or 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 Note: This stream object can either be a standard
+ * Java stream object or your own subclass that implements the
+ * standard interface.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @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
+ */
+ void setAsciiStream(int parameterIndex, java.io.InputStream x, int length)
+ throws SQLException;
+
+ /**
+ * 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 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 parameterIndex the first parameter is 1, the second is 2, ...
+ * @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
+ */
+ void setBinaryStream(int parameterIndex, java.io.InputStream x,
+ int length) throws SQLException;
+
+ /**
+ * 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 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 parameterIndex the first parameter is 1, the second is 2, ...
+ * @param reader the {@code Reader} object that contains the UNICODE data
+ * to be set
+ * @param length the number of characters in the stream
+ * @exception SQLException if a database access error occurs
+ */
+ void setCharacterStream(int parameterIndex,
+ Reader reader,
+ int length) throws SQLException;
+
+ /**
+ * Sets the designated parameter to the given {@code Reader}
+ * object, which is the given number of characters long.
+ * When a very large UNICODE value is input to a 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: 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: 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 given Java object will be converted to the targetSqlType
+ * before being sent to the database.
+ *
+ * If the object is of a class implementing Note that this method may be used to pass database-specific
+ * abstract data types.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the object containing the input parameter value
+ * @param targetSqlType the SQL type (as defined in 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 database-
+ * 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
+ * Even though it is supported, it is not recommended that this method
+ * be called with floating point input values.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the object containing the input parameter value
+ * @param targetSqlType the SQL type (as defined in The JDBC specification specifies a standard mapping from
+ * Java Note that this method may be used to pass database-
+ * 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 The JDBC specification provides a standard mapping from
+ * Java Object types to SQL types. The driver will convert the
+ * given Java object to its standard SQL mapping before sending it
+ * to the database.
+ *
+ * Note that this method may be used to pass database-specific
+ * abstract data types by using a driver-specific Java type.
+ *
+ * If the object is of a class implementing
+ * An exception is thrown if there is an ambiguity, for example, if the
+ * object is of a class implementing more than one of these interfaces.
+ *
+ * @param parameterIndex The first parameter is 1, the second is 2, ...
+ * @param x The object containing the input parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setObject(int parameterIndex, Object x) throws SQLException;
+
+
+ /**
+ * Sets the designated parameter in this 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
+ * In general, parameter values remain in force for repeated use of a
+ *
+ * The
+ * If the required properties have not been set, an exception is
+ * thrown. If this method is successful, the current contents of the rowset are
+ * discarded and the rowset's metadata is also (re)set. If there are
+ * outstanding updates, they are ignored.
+ *
+ * If this 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
+ * DataSource
object that has been registered with a naming
+ * service. After being retrieved, the DataSource
object can be
+ * used to create a connection to the data source that it represents.
+ *
+ * @param name the logical name of the data source for this RowSet
+ * object; may be null
+ * @exception SQLException if a database access error occurs
+ * @see #getDataSourceName
+ */
+ void setDataSourceName(String name) throws SQLException;
+
+ /**
+ * Retrieves the username used to create a database connection for this
+ * RowSet
object.
+ * The username property is set at run time before calling the method
+ * execute
. It is
+ * not usually part of the serialized state of a RowSet
object.
+ *
+ * @return the username property
+ * @see #setUsername
+ */
+ String getUsername();
+
+ /**
+ * Sets the username property for this RowSet
object to the
+ * given String
.
+ *
+ * @param name a user name
+ * @exception SQLException if a database access error occurs
+ * @see #getUsername
+ */
+ void setUsername(String name) throws SQLException;
+
+ /**
+ * Retrieves the password used to create a database connection.
+ * The password property is set at run time before calling the method
+ * execute
. It is not usually part of the serialized state
+ * of a RowSet
object.
+ *
+ * @return the password for making a database connection
+ * @see #setPassword
+ */
+ String getPassword();
+
+ /**
+ * Sets the database password for this RowSet
object to
+ * the given String
.
+ *
+ * @param password the password string
+ * @exception SQLException if a database access error occurs
+ * @see #getPassword
+ */
+ void setPassword(String password) throws SQLException;
+
+ /**
+ * Retrieves the transaction isolation level set for this
+ * RowSet
object.
+ *
+ * @return the transaction isolation level; one of
+ * Connection.TRANSACTION_READ_UNCOMMITTED
,
+ * Connection.TRANSACTION_READ_COMMITTED
,
+ * Connection.TRANSACTION_REPEATABLE_READ
, or
+ * Connection.TRANSACTION_SERIALIZABLE
+ * @see #setTransactionIsolation
+ */
+ int getTransactionIsolation();
+
+ /**
+ * Sets the transaction isolation level for this RowSet
object.
+ *
+ * @param level the transaction isolation level; one of
+ * Connection.TRANSACTION_READ_UNCOMMITTED
,
+ * Connection.TRANSACTION_READ_COMMITTED
,
+ * Connection.TRANSACTION_REPEATABLE_READ
, or
+ * Connection.TRANSACTION_SERIALIZABLE
+ * @exception SQLException if a database access error occurs
+ * @see #getTransactionIsolation
+ */
+ void setTransactionIsolation(int level) throws SQLException;
+
+ /**
+ * Retrieves the Map
object associated with this
+ * RowSet
object, which specifies the custom mapping
+ * of SQL user-defined types, if any. The default is for the
+ * type map to be empty.
+ *
+ * @return a java.util.Map
object containing the names of
+ * SQL user-defined types and the Java classes to which they are
+ * to be mapped
+ *
+ * @exception SQLException if a database access error occurs
+ * @see #setTypeMap
+ */
+ java.util.Mapjava.util.Map
object as the default
+ * type map for this RowSet
object. This type map will be
+ * used unless another type map is supplied as a method parameter.
+ *
+ * @param map a java.util.Map
object containing the names of
+ * SQL user-defined types and the Java classes to which they are
+ * to be mapped
+ * @exception SQLException if a database access error occurs
+ * @see #getTypeMap
+ */
+ void setTypeMap(java.util.MapRowSet
object's command property.
+ *
+ * The command property contains a command string, which must be an SQL
+ * query, that can be executed to fill the rowset with data.
+ * The default value is null
.
+ *
+ * @return the command string; may be null
+ * @see #setCommand
+ */
+ String getCommand();
+
+ /**
+ * Sets this RowSet
object's command property to the given
+ * SQL query.
+ *
+ * This property is optional
+ * when a rowset gets its data from a data source that does not support
+ * commands, such as a spreadsheet.
+ *
+ * @param cmd the SQL query that will be used to get the data for this
+ * RowSet
object; may be null
+ * @exception SQLException if a database access error occurs
+ * @see #getCommand
+ */
+ void setCommand(String cmd) throws SQLException;
+
+ /**
+ * Retrieves whether this RowSet
object is read-only.
+ * If updates are possible, the default is for a rowset to be
+ * updatable.
+ * SQLException
being thrown.
+ *
+ * @return true
if this RowSet
object is
+ * read-only; false
if it is updatable
+ * @see #setReadOnly
+ */
+ boolean isReadOnly();
+
+ /**
+ * Sets whether this RowSet
object is read-only to the
+ * given boolean
.
+ *
+ * @param value true
if read-only; false
if
+ * updatable
+ * @exception SQLException if a database access error occurs
+ * @see #isReadOnly
+ */
+ void setReadOnly(boolean value) throws SQLException;
+
+ /**
+ * Retrieves the maximum number of bytes that may be returned
+ * for certain column values.
+ * This limit applies only to BINARY
,
+ * VARBINARY
, LONGVARBINARYBINARY
, CHAR
,
+ * VARCHAR
, LONGVARCHAR
, NCHAR
+ * and NVARCHAR
columns.
+ * If the limit is exceeded, the excess data is silently discarded.
+ *
+ * @return the current maximum column size limit; zero means that there
+ * is no limit
+ * @exception SQLException if a database access error occurs
+ * @see #setMaxFieldSize
+ */
+ int getMaxFieldSize() throws SQLException;
+
+ /**
+ * Sets the maximum number of bytes that can be returned for a column
+ * value to the given number of bytes.
+ * This limit applies only to BINARY
,
+ * VARBINARY
, LONGVARBINARYBINARY
, CHAR
,
+ * VARCHAR
, LONGVARCHAR
, NCHAR
+ * and NVARCHAR
columns.
+ * If the limit is exceeded, the excess data is silently discarded.
+ * For maximum portability, use values greater than 256.
+ *
+ * @param max the new max column size limit in bytes; zero means unlimited
+ * @exception SQLException if a database access error occurs
+ * @see #getMaxFieldSize
+ */
+ void setMaxFieldSize(int max) throws SQLException;
+
+ /**
+ * Retrieves the maximum number of rows that this RowSet
+ * object can contain.
+ * If the limit is exceeded, the excess rows are silently dropped.
+ *
+ * @return the current maximum number of rows that this RowSet
+ * object can contain; zero means unlimited
+ * @exception SQLException if a database access error occurs
+ * @see #setMaxRows
+ */
+ int getMaxRows() throws SQLException;
+
+ /**
+ * Sets the maximum number of rows that this RowSet
+ * object can contain to the specified number.
+ * If the limit is exceeded, the excess rows are silently dropped.
+ *
+ * @param max the new maximum number of rows; zero means unlimited
+ * @exception SQLException if a database access error occurs
+ * @see #getMaxRows
+ */
+ void setMaxRows(int max) throws SQLException;
+
+ /**
+ * Retrieves whether escape processing is enabled for this
+ * RowSet
object.
+ * If escape scanning is enabled, which is the default, the driver will do
+ * escape substitution before sending an SQL statement to the database.
+ *
+ * @return true
if escape processing is enabled;
+ * false
if it is disabled
+ * @exception SQLException if a database access error occurs
+ * @see #setEscapeProcessing
+ */
+ boolean getEscapeProcessing() throws SQLException;
+
+ /**
+ * Sets escape processing for this RowSet
object on or
+ * off. If escape scanning is on (the default), the driver will do
+ * escape substitution before sending an SQL statement to the database.
+ *
+ * @param enable true
to enable escape processing;
+ * false
to disable it
+ * @exception SQLException if a database access error occurs
+ * @see #getEscapeProcessing
+ */
+ void setEscapeProcessing(boolean enable) throws SQLException;
+
+ /**
+ * Retrieves the maximum number of seconds the driver will wait for
+ * a statement to execute.
+ * If this limit is exceeded, an SQLException
is thrown.
+ *
+ * @return the current query timeout limit in seconds; zero means
+ * unlimited
+ * @exception SQLException if a database access error occurs
+ * @see #setQueryTimeout
+ */
+ int getQueryTimeout() throws SQLException;
+
+ /**
+ * Sets the maximum time the driver will wait for
+ * a statement to execute to the given number of seconds.
+ * If this limit is exceeded, an SQLException
is thrown.
+ *
+ * @param seconds the new query timeout limit in seconds; zero means
+ * that there is no limit
+ * @exception SQLException if a database access error occurs
+ * @see #getQueryTimeout
+ */
+ void setQueryTimeout(int seconds) throws SQLException;
+
+ /**
+ * Sets the type of this RowSet
object to the given type.
+ * This method is used to change the type of a rowset, which is by
+ * default read-only and non-scrollable.
+ *
+ * @param type one of the ResultSet
constants specifying a type:
+ * ResultSet.TYPE_FORWARD_ONLY
,
+ * ResultSet.TYPE_SCROLL_INSENSITIVE
, or
+ * ResultSet.TYPE_SCROLL_SENSITIVE
+ * @exception SQLException if a database access error occurs
+ * @see java.sql.ResultSet#getType
+ */
+ void setType(int type) throws SQLException;
+
+ /**
+ * Sets the concurrency of this RowSet
object to the given
+ * concurrency level. This method is used to change the concurrency level
+ * of a rowset, which is by default ResultSet.CONCUR_READ_ONLY
+ *
+ * @param concurrency one of the ResultSet
constants specifying a
+ * concurrency level: ResultSet.CONCUR_READ_ONLY
or
+ * ResultSet.CONCUR_UPDATABLE
+ * @exception SQLException if a database access error occurs
+ * @see ResultSet#getConcurrency
+ */
+ void setConcurrency(int concurrency) throws SQLException;
+
+ //-----------------------------------------------------------------------
+ // Parameters
+ //-----------------------------------------------------------------------
+
+ /**
+ * The RowSet
setter methods are used to set any input parameters
+ * needed by the RowSet
object's command.
+ * Parameters are set at run time, as opposed to design time.
+ */
+
+ /**
+ * Sets the designated parameter in this RowSet
object's SQL
+ * command to SQL NULL
.
+ *
+ * java.sql.Types
+ * @exception SQLException if a database access error occurs
+ */
+ void setNull(int parameterIndex, int sqlType) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setNull(String parameterName, int sqlType) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's SQL
+ * command to SQL NULL
. This version of the method setNull
+ * should be used for SQL user-defined types (UDTs) and REF
type
+ * parameters. Examples of UDTs include: STRUCT
, DISTINCT
,
+ * JAVA_OBJECT
, and named array types.
+ *
+ * REF
parameter. In the case of a UDT,
+ * 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 UDT 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 typeName parameter is ignored.
+ *
+ *
+ * @param paramIndex the first parameter is 1, the second is 2, ...
+ * @param sqlType a value from java.sql.Types
+ * @param typeName the fully qualified name of an SQL UDT or the type
+ * name of the SQL structured type being referenced by a REF
+ * type; ignored if the parameter is not a UDT or REF
type
+ * @exception SQLException if a database access error occurs
+ */
+ void setNull (int paramIndex, int sqlType, String typeName)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setNull (String parameterName, int sqlType, String typeName)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java boolean
value. The driver converts this to
+ * an SQL BIT
value before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setBoolean(int parameterIndex, boolean x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setBoolean(String parameterName, boolean x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java byte
value. The driver converts this to
+ * an SQL TINYINT
value before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setByte(int parameterIndex, byte x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setByte(String parameterName, byte x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java short
value. The driver converts this to
+ * an SQL SMALLINT
value before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setShort(int parameterIndex, short x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setShort(String parameterName, short x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java int
value. The driver converts this to
+ * an SQL INTEGER
value before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setInt(int parameterIndex, int x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setInt(String parameterName, int x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java long
value. The driver converts this to
+ * an SQL BIGINT
value before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setLong(int parameterIndex, long x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setLong(String parameterName, long x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java float
value. The driver converts this to
+ * an SQL REAL
value before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setFloat(int parameterIndex, float x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setFloat(String parameterName, float x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java double
value. The driver converts this to
+ * an SQL DOUBLE
value before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setDouble(int parameterIndex, double x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setDouble(String parameterName, double x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given {@code java.math.BigDecimal} value.
+ * The driver converts this to
+ * an SQL NUMERIC
value before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setBigDecimal(String parameterName, BigDecimal x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java String
value. Before sending it to the
+ * database, 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.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setString(int parameterIndex, String x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setString(String parameterName, String x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given Java array of byte
values. Before sending it to the
+ * database, the driver converts this to an SQL VARBINARY
or
+ * LONGVARBINARY
value, depending on the argument's size relative
+ * to the driver's limits on VARBINARY
values.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setBytes(int parameterIndex, byte x[]) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setBytes(String parameterName, byte x[]) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given java.sql.Date
value. The driver converts this to
+ * an SQL DATE
value before sending it to the database, using the
+ * default java.util.Calendar
to calculate the date.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setDate(int parameterIndex, java.sql.Date x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given java.sql.Time
value. The driver converts this to
+ * an SQL TIME
value before sending it to the database, using the
+ * default java.util.Calendar
to calculate it.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setTime(int parameterIndex, java.sql.Time x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given java.sql.Timestamp
value. The driver converts this to
+ * an SQL TIMESTAMP
value before sending it to the database, using the
+ * default java.util.Calendar
to calculate it.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @exception SQLException if a database access error occurs
+ */
+ void setTimestamp(int parameterIndex, java.sql.Timestamp x)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setTimestamp(String parameterName, java.sql.Timestamp x)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given java.io.InputStream
value.
+ * It may be more practical to send a very large ASCII value via a
+ * java.io.InputStream
rather than as a LONGVARCHAR
+ * parameter. The driver will read the data from the stream
+ * as needed until it reaches end-of-file.
+ *
+ * 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
+ */
+ void setAsciiStream(String parameterName, java.io.InputStream x, int length)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given java.io.InputStream
value.
+ * It may be more practical to send a very large binary value via a
+ * java.io.InputStream
rather than as a LONGVARBINARY
+ * parameter. The driver will read the data from the stream
+ * as needed until it reaches end-of-file.
+ *
+ * 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
+ */
+ void setBinaryStream(String parameterName, java.io.InputStream x,
+ int length) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given java.io.Reader
value.
+ * It may be more practical to send a very large UNICODE value via a
+ * java.io.Reader
rather than as a LONGVARCHAR
+ * parameter. The driver will read the data from the stream
+ * as needed until it reaches end-of-file.
+ *
+ * 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
+ */
+ void setCharacterStream(String parameterName,
+ java.io.Reader reader,
+ int length) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * 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 parameterIndex the first parameter is 1, the second is 2, ...
+ * @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 PreparedStatement
+ * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method
+ * @since 1.6
+ */
+ void setAsciiStream(int parameterIndex, java.io.InputStream x)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setAsciiStream(String parameterName, java.io.InputStream x)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * 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 parameterIndex the first parameter is 1, the second is 2, ...
+ * @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 PreparedStatement
+ * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method
+ * @since 1.6
+ */
+ void setBinaryStream(int parameterIndex, java.io.InputStream x)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setBinaryStream(String parameterName, java.io.InputStream x)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to the given {@code 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 parameterIndex the first parameter is 1, the second is 2, ...
+ * @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 PreparedStatement
+ * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method
+ * @since 1.6
+ */
+ void setCharacterStream(int parameterIndex,
+ java.io.Reader reader) throws SQLException;
+
+ /**
+ * Sets the designated parameter to the given {@code 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
+ */
+ void setCharacterStream(String parameterName,
+ java.io.Reader reader) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * to a {@code Reader} object. The
+ * {@code 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
+ */
+ void setNCharacterStream(int parameterIndex, Reader value) throws SQLException;
+
+
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with the given Java Object
. For integral values, the
+ * java.lang
equivalent objects should be used (for example,
+ * an instance of the class Integer
for an int
).
+ *
+ * If the second argument is an InputStream
then the stream must contain
+ * the number of bytes specified by scaleOrLength. If the second argument is a
+ * {@code Reader} then the {@code Reader} must contain the number of characters specified
+ * by scaleOrLength. If these conditions are not true the driver will generate a
+ * SQLException
when the prepared statement is executed.
+ *
+ * SQLData
,
+ * the rowset should call the method SQLData.writeSQL
+ * to write the object to an SQLOutput
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.
+ *
+ *
+ * java.sql.Types
)
+ * to be sent to the database. The scale argument may further qualify this
+ * type.
+ * @param scaleOrLength for java.sql.Types.DECIMAL
+ * or java.sql.Types.NUMERIC types
,
+ * this is the number of digits after the decimal point. For
+ * Java Object types InputStream
and {@code Reader},
+ * this is the length
+ * of the data in the stream or {@code Reader}. For all other types,
+ * this value will be ignored.
+ * @exception SQLException if a database access error occurs
+ * @see java.sql.Types
+ */
+ void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setObject(String parameterName, Object x, int targetSqlType, int scale)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with a Java Object
. For integral values, the
+ * java.lang
equivalent objects should be used.
+ * This method is like setObject
above, but the scale used is the scale
+ * of the second parameter. Scalar values have a scale of zero. Literal
+ * values have the scale present in the literal.
+ * java.sql.Types
)
+ * to be sent to the database
+ * @exception SQLException if a database access error occurs
+ */
+ void setObject(int parameterIndex, Object x,
+ int targetSqlType) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setObject(String parameterName, Object x, int targetSqlType)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setObject(String parameterName, Object x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with a Java Object
. For integral values, the
+ * java.lang
equivalent objects should be used.
+ *
+ * SQLData
,
+ * the rowset should call the method SQLData.writeSQL
+ * to write the object to an SQLOutput
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.
+ *
+ * RowSet
object's command
+ * with the given Ref
value. The driver will convert this
+ * to the appropriate REF(<structured-type>)
value.
+ *
+ * @param i the first parameter is 1, the second is 2, ...
+ * @param x an object representing data of an SQL REF
type
+ * @exception SQLException if a database access error occurs
+ */
+ void setRef (int i, Ref x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with the given Blob
value. The driver will convert this
+ * to the BLOB
value that the Blob
object
+ * represents before sending it to the database.
+ *
+ * @param i the first parameter is 1, the second is 2, ...
+ * @param x an object representing a BLOB
+ * @exception SQLException if a database access error occurs
+ */
+ void setBlob (int i, Blob x) throws SQLException;
+
+ /**
+ * 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 specified length.
+ * @throws SQLFeatureNotSupportedException if the JDBC driver does not support this method
+ *
+ * @since 1.6
+ */
+ void setBlob(int parameterIndex, InputStream inputStream, long length)
+ throws SQLException;
+
+ /**
+ * 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 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
+ */
+ void setBlob(int parameterIndex, InputStream inputStream)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter to a InputStream
object.
+ * The {@code 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 specified 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
+ */
+ void setBlob(String parameterName, InputStream inputStream, long length)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setBlob (String parameterName, Blob x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setBlob(String parameterName, InputStream inputStream)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with the given Clob
value. The driver will convert this
+ * to the CLOB
value that the Clob
object
+ * represents before sending it to the database.
+ *
+ * @param i the first parameter is 1, the second is 2, ...
+ * @param x an object representing a CLOB
+ * @exception SQLException if a database access error occurs
+ */
+ void setClob (int i, Clob x) throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code Reader} object.
+ * The {@code 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
+ */
+ void setClob(int parameterIndex, Reader reader, long length)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code 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
+ */
+ void setClob(int parameterIndex, Reader reader)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code Reader} object. The
+ * {@code 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
+ */
+ void setClob(String parameterName, Reader reader, long length)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setClob (String parameterName, Clob x) throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code 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
+ */
+ void setClob(String parameterName, Reader reader)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with the given Array
value. The driver will convert this
+ * to the ARRAY
value that the Array
object
+ * represents before sending it to the database.
+ *
+ * @param i the first parameter is 1, the second is 2, ...
+ * @param x an object representing an SQL array
+ * @exception SQLException if a database access error occurs
+ */
+ void setArray (int i, Array x) throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with the given java.sql.Date
value. The driver will convert this
+ * to an SQL DATE
value, using the given java.util.Calendar
+ * object to calculate the date.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @param cal the java.util.Calendar
object to use for calculating the date
+ * @exception SQLException if a database access error occurs
+ */
+ void setDate(int parameterIndex, java.sql.Date x, Calendar cal)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setDate(String parameterName, java.sql.Date x)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setDate(String parameterName, java.sql.Date x, Calendar cal)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with the given java.sql.Time
value. The driver will convert this
+ * to an SQL TIME
value, using the given java.util.Calendar
+ * object to calculate it, before sending it to the database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @param cal the java.util.Calendar
object to use for calculating the time
+ * @exception SQLException if a database access error occurs
+ */
+ void setTime(int parameterIndex, java.sql.Time x, Calendar cal)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setTime(String parameterName, java.sql.Time x)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setTime(String parameterName, java.sql.Time x, Calendar cal)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter in this RowSet
object's command
+ * with the given java.sql.Timestamp
value. The driver will
+ * convert this to an SQL TIMESTAMP
value, using the given
+ * java.util.Calendar
object to calculate it, before sending it to the
+ * database.
+ *
+ * @param parameterIndex the first parameter is 1, the second is 2, ...
+ * @param x the parameter value
+ * @param cal the java.util.Calendar
object to use for calculating the
+ * timestamp
+ * @exception SQLException if a database access error occurs
+ */
+ void setTimestamp(int parameterIndex, java.sql.Timestamp x, Calendar cal)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setTimestamp(String parameterName, java.sql.Timestamp x, Calendar cal)
+ throws SQLException;
+
+ /**
+ * Clears the parameters set for this RowSet
object's command.
+ * RowSet
object. Setting a parameter value automatically clears its
+ * previous value. However, in some cases it is useful to immediately
+ * release the resources used by the current parameter values, which can
+ * be done by calling the method clearParameters
.
+ *
+ * @exception SQLException if a database access error occurs
+ */
+ void clearParameters() throws SQLException;
+
+ //---------------------------------------------------------------------
+ // Reading and writing data
+ //---------------------------------------------------------------------
+
+ /**
+ * Fills this RowSet
object with data.
+ * execute
method may use the following properties
+ * to create a connection for reading data: url, data source name,
+ * user name, password, transaction isolation, and type map.
+ *
+ * The execute
method may use the following properties
+ * to create a statement to execute a command:
+ * command, read only, maximum field size,
+ * maximum rows, escape processing, and query timeout.
+ * RowSet
object does not maintain a continuous connection
+ * with its source of data, it may use a {@code Reader} (a RowSetReader
+ * object) to fill itself with data. In this case, a {@code Reader} will have been
+ * registered with this RowSet
object, and the method
+ * execute
will call on the {@code Reader}'s readData
+ * method as part of its implementation.
+ *
+ * @exception SQLException if a database access error occurs or any of the
+ * properties necessary for making a connection and creating
+ * a statement have not been set
+ */
+ void execute() throws SQLException;
+
+ //--------------------------------------------------------------------
+ // Events
+ //--------------------------------------------------------------------
+
+ /**
+ * Registers the given listener so that it will be notified of events
+ * that occur on this RowSet
object.
+ *
+ * @param listener a component that has implemented the RowSetListener
+ * interface and wants to be notified when events occur on this
+ * RowSet
object
+ * @see #removeRowSetListener
+ */
+ void addRowSetListener(RowSetListener listener);
+
+ /**
+ * Removes the specified listener from the list of components that will be
+ * notified when an event occurs on this RowSet
object.
+ *
+ * @param listener a component that has been registered as a listener for this
+ * RowSet
object
+ * @see #addRowSetListener
+ */
+ void removeRowSetListener(RowSetListener listener);
+
+ /**
+ * 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 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, this method
+ * is called on a closed result set,
+ * the java.xml.transform.Result
,
+ * Writer
or OutputStream
has not been closed
+ * for the SQLXML
object or
+ * if there is an error processing the XML value. The getCause
method
+ * of the exception may provide a more detailed exception, for example, if the
+ * stream does not contain valid XML.
+ * @since 1.6
+ */
+ void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException;
+
+ /**
+ * 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, this method
+ * is called on a closed result set,
+ * the java.xml.transform.Result
,
+ * Writer
or OutputStream
has not been closed
+ * for the SQLXML
object or
+ * if there is an error processing the XML value. The getCause
method
+ * of the exception may provide a more detailed exception, for example, if the
+ * stream does not contain valid XML.
+ * @since 1.6
+ */
+ void setSQLXML(String parameterName, SQLXML xmlObject) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setRowId(int parameterIndex, RowId x) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setRowId(String parameterName, RowId x) throws SQLException;
+
+ /**
+ * Sets the designated parameter 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
+ */
+ void setNString(int parameterIndex, String value) throws SQLException;
+
+ /**
+ * Sets the designated parameter 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;
+
+ /**
+ * Sets the designated parameter to a {@code Reader} object. The
+ * {@code 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
+ */
+ void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code Reader} object. The
+ * {@code 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;
+
+ /**
+ * Sets the designated parameter to a {@code Reader} object. The
+ * {@code 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
+ */
+ void setNCharacterStream(String parameterName, Reader value) throws SQLException;
+
+ /**
+ * 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
+ */
+ void setNClob(String parameterName, NClob value) throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code Reader} object.
+ * The {@code 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
+ */
+ void setNClob(String parameterName, Reader reader, long length)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code 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
+ */
+ void setNClob(String parameterName, Reader reader)
+ throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code Reader} object.
+ * The {@code 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 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
+ */
+ void setNClob(int parameterIndex, Reader reader, long length)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setNClob(int parameterIndex, NClob value) throws SQLException;
+
+ /**
+ * Sets the designated parameter to a {@code 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
+ */
+ void setNClob(int parameterIndex, Reader reader)
+ throws SQLException;
+
+ /**
+ * 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
+ */
+ void setURL(int parameterIndex, java.net.URL x) throws SQLException;
+
+
+
+}