/* * @(#)RowSet.java 1.15 04/05/05 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ 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 * JavaBeansTM 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 reader (a RowSetReader object) * and a writer (a RowSetWriter object) associated with it. * The 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 by the application 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 specified 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. Users should set * either the url property or the data source name property. The rowset will use * the property that was set more recently to get a connection. * * @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 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 * @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 obejct. * * @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.Map> getTypeMap() throws SQLException; /** * Installs the given java.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.Map> map) throws SQLException; //----------------------------------------------------------------------- // The following properties may be used to create a Statement. //----------------------------------------------------------------------- /** * Retrieves this RowSet 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. *

* Attempts to update a read-only rowset will result in an * 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, and LONGVARCHAR 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, and LONGVARCHAR 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. * *

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 java.sql.Types * @exception SQLException if a database access error occurs */ void setNull(int parameterIndex, 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. * *

Note: To be portable, applications must give the * SQL type code and the fully qualified SQL type name when specifying * a NULL UDT or 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 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 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 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 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 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 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 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 in this RowSet object's command * to the given java.math.BigDeciaml 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 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 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 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 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. * *

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 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. * *

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 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. * *

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 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 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). * *

The given Java object will be converted to the targetSqlType * before being sent to the database. *

* If the object is of a class implementing SQLData, * the rowset should call the method SQLData.writeSQL * to write the object to an SQLOutput data stream. * If the object is an instance of a class implementing the Ref, * Struct, Array, Blob, * or Clob interfaces, * the driver uses the default mapping to the corresponding SQL type. * *

Note that this method may be used to pass datatabase-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 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 * @see java.sql.Types */ void setObject(int parameterIndex, 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. *

* 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 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 designated parameter in this RowSet object's command * with a Java Object. For integral values, the * java.lang equivalent objects should be used. * *

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 datatabase-specific * abstract data types by using a driver-specific Java type. * * If the object is of a class implementing SQLData, * the rowset should call the method SQLData.writeSQL * to write the object to an SQLOutput data stream. * If the object is an instance of a class implementing the Ref, * Struct, Array, Blob, * or Clob interfaces, * the driver uses the default mapping to the corresponding SQL type. *

* 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 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 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 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 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 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; /** * Clears the parameters set for this RowSet object's command. *

In general, parameter values remain in force for repeated use of a * 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. *

* The 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. *

* 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 RowSet object does not maintain a continuous connection * with its source of data, it may use a reader (a RowSetReader * object) to fill itself with data. In this case, a reader will have been * registered with this RowSet object, and the method * execute will call on the 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); }