/* Copyright (c) 2001-2019, The HSQL Development Group
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of the HSQL Development Group nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.hsqldb.jdbc;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Reader;
import java.io.StringReader;
import java.math.BigDecimal;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Date;
import java.sql.NClob;
import java.sql.Ref;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.RowId;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.sql.SQLWarning;
import java.sql.SQLXML;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Map;
import org.hsqldb.ColumnBase;
import org.hsqldb.HsqlDateTime;
import org.hsqldb.HsqlException;
import org.hsqldb.SessionInterface;
import org.hsqldb.error.ErrorCode;
import org.hsqldb.lib.IntValueHashMap;
import org.hsqldb.lib.StringInputStream;
import org.hsqldb.lib.java.JavaSystem;
import org.hsqldb.navigator.RowSetNavigator;
import org.hsqldb.persist.HsqlDatabaseProperties;
import org.hsqldb.result.Result;
import org.hsqldb.result.ResultConstants;
import org.hsqldb.result.ResultMetaData;
import org.hsqldb.result.ResultProperties;
import org.hsqldb.types.BinaryData;
import org.hsqldb.types.BinaryUUIDType;
import org.hsqldb.types.BlobDataID;
import org.hsqldb.types.ClobDataID;
import org.hsqldb.types.DateTimeType;
import org.hsqldb.types.IntervalMonthData;
import org.hsqldb.types.IntervalSecondData;
import org.hsqldb.types.IntervalType;
import org.hsqldb.types.JavaObjectData;
import org.hsqldb.types.TimeData;
import org.hsqldb.types.TimestampData;
import org.hsqldb.types.Type;
import org.hsqldb.types.Types;
//#ifdef JAVA8
import java.sql.JDBCType;
import java.sql.SQLType;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.OffsetTime;
import java.time.Period;
import java.time.ZoneOffset;
//#endif JAVA8
/* $Id: JDBCResultSet.java 5977 2019-05-12 19:46:19Z fredt $ */
//campbell-burnet@users 20051207 - patch 1.9.0 - initial JDBC 4.0 support work
//fredt@users 20060431 - patch 1.9.0 rewrite with RowSetNavigator
//campbell-burnet@users 20060522 - doc 1.9.0 - full synch up to Mustang Build 84
// Revision 1.21 2006/07/12 12:27:25 boucherb
// patch 1.9.0
// - full synch up to Mustang b90
A table of data representing a database result set, which
is usually generated by executing a statement that queries the database.
A ResultSet
object maintains a cursor pointing
to its current row of data. Initially the cursor is positioned
before the first row. The next
method moves the
cursor to the next row, and because it returns false
when there are no more rows in the ResultSet
object,
it can be used in a while
loop to iterate through
the result set.
A default ResultSet
object is not updatable and
has a cursor that moves forward only. Thus, you can
iterate through it only once and only from the first row to the
last row. It is possible to
produce ResultSet
objects that are scrollable and/or
updatable. The following code fragment, in which con
is a valid Connection
object, illustrates how to make
a result set that is scrollable and insensitive to updates by others, and
that is updatable. See ResultSet
fields for other
options.
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
// rs will be scrollable, will not show changes made by others,
// and will be updatable
The ResultSet
interface provides
getter methods (getBoolean
, getLong
, and so on)
for retrieving column values from the current row.
Values can be retrieved using either the index number of the
column or the name of the column. In general, using the
column index will be more efficient. Columns are numbered from 1.
For maximum portability, result set columns within each row should be
read in left-to-right order, and each column should be read only once.
For the getter methods, a JDBC driver attempts
to convert the underlying data to the Java type specified in the
getter method and returns a suitable Java value. The JDBC specification
has a table showing the allowable mappings from SQL types to Java types
that can be used by the ResultSet
getter methods.
Column names used as input to getter methods are case
insensitive. When a getter method is called with
a column name and several columns have the same name,
the value of the first matching column will be returned.
The column name option is
designed to be used when column names are used in the SQL
query that generated the result set.
For columns that are NOT explicitly named in the query, it
is best to use column numbers. (JDBC4 clarification:) If column names are used, the
programmer should take care to guarantee that they uniquely refer to
the intended columns, which can be assured with the SQL AS clause.
A set of updater methods were added to this interface
in the JDBC 2.0 API (Java™ 2 SDK,
Standard Edition, version 1.2). The comments regarding parameters
to the getter methods also apply to parameters to the
updater methods.
The updater methods may be used in two ways:
- to update a column value in the current row. In a scrollable
ResultSet
object, the cursor can be moved backwards
and forwards, to an absolute position, or to a position
relative to the current row.
The following code fragment updates the NAME
column
in the fifth row of the ResultSet
object
rs
and then uses the method updateRow
to update the data source table from which rs
was derived.
rs.absolute(5); // moves the cursor to the fifth row of rs
rs.updateString("NAME", "AINSWORTH"); // updates the
// NAME
column of row 5 to be AINSWORTH
rs.updateRow(); // updates the row in the data source
- to insert column values into the insert row. An updatable
ResultSet
object has a special row associated with
it that serves as a staging area for building a row to be inserted.
The following code fragment moves the cursor to the insert row, builds
a three-column row, and inserts it into rs
and into
the data source table using the method insertRow
.
rs.moveToInsertRow(); // moves cursor to the insert row
rs.updateString(1, "AINSWORTH"); // updates the
// first column of the insert row to be AINSWORTH
rs.updateInt(2,35); // updates the second column to be 35
rs.updateBoolean(3, true); // updates the third column to true
rs.insertRow();
rs.moveToCurrentRow();
A ResultSet
object is automatically closed when the
Statement
object that
generated it is closed, re-executed, or used
to retrieve the next result from a sequence of multiple results.
The number, types and properties of a ResultSet
object's columns are provided by the ResultSetMetaData
object returned by the ResultSet.getMetaData
method.
HSQLDB-Specific Information:
A ResultSet
object generated by HSQLDB is by default of
ResultSet.TYPE_FORWARD_ONLY
(as is standard JDBC behavior)
and does not allow the use of absolute and relative positioning
methods. If a statement is created with:
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
then the ResultSet
objects it produces support
using all of the absolute and relative positioning methods of JDBC2
to set the position of the current row, for example:
rs.absolute(5);
String fifthRowValue = rs.getString(1);
rs.relative(4);
String ninthRowValue = rs.getString(1);
Note: An HSQLDB ResultSet
object persists, even after its connection is closed. This is regardless of the operational mode of the Database
from which it came. That is, they persist whether originating from a Server
,
WebServer
or in-process mode Database.
From HSQLDB 2.0, there is full support for updatable result sets. Supported methods include all updateXXX methods for the supported types, as well as the insertRow
, updateRow
, deleteRow
, moveToInsertRow
methods.
The Statement must be created with ResultSet.CONCUR_UPDATABLE instead of
CONCUR_READ_ONLY.
Updatability of a result set follows the SQL standards. Some or all columns of an updatable result set can be updated. The current row in such result sets can be deleted using the deleteRow
method. Some updatable result set can also be inserted into and support moveToInsertRow
.
A result set is updatable if the SELECT statement
is updatable. This includes SELECT from TABLE and updatable VIEW objects.
An updatable SELECT statement has a single underlying table or view.
HSQLDB supports both scrollable and forward-only result sets for updatability.
-- In the SELECT below, columns A and B are updatable, any row can be
-- deleted, but it is not insertable-into as column C is not directly from
-- the table.
SELECT A, B, A + B AS C FROM T WHERE ...
-- The SELECT below can be insertable-into so long as other columns of the
-- table that do not appear in the SELECT list have a default value.
SELECT A, B FROM T WHERE ...
(fredt@users)
(campbell-burnet@users)
Author: Campbell Burnet (campbell-burnet@users dot sourceforge.net), Fred Toussi (fredt@users dot sourceforge.net) See Also: Version: 2.5.0 Since: 1.9.0
/**
* <!-- start generic documentation -->
* A table of data representing a database result set, which
* is usually generated by executing a statement that queries the database.
*
* <P>A <code>ResultSet</code> object maintains a cursor pointing
* to its current row of data. Initially the cursor is positioned
* before the first row. The <code>next</code> method moves the
* cursor to the next row, and because it returns <code>false</code>
* when there are no more rows in the <code>ResultSet</code> object,
* it can be used in a <code>while</code> loop to iterate through
* the result set.
* <P>
* A default <code>ResultSet</code> object is not updatable and
* has a cursor that moves forward only. Thus, you can
* iterate through it only once and only from the first row to the
* last row. It is possible to
* produce <code>ResultSet</code> objects that are scrollable and/or
* updatable. The following code fragment, in which <code>con</code>
* is a valid <code>Connection</code> object, illustrates how to make
* a result set that is scrollable and insensitive to updates by others, and
* that is updatable. See <code>ResultSet</code> fields for other
* options.
* <PRE>
*
* Statement stmt = con.createStatement(
* ResultSet.TYPE_SCROLL_INSENSITIVE,
* ResultSet.CONCUR_UPDATABLE);
* ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
* // rs will be scrollable, will not show changes made by others,
* // and will be updatable
*
* </PRE>
* The <code>ResultSet</code> interface provides
* <i>getter</i> methods (<code>getBoolean</code>, <code>getLong</code>, and so on)
* for retrieving column values from the current row.
* Values can be retrieved using either the index number of the
* column or the name of the column. In general, using the
* column index will be more efficient. Columns are numbered from 1.
* For maximum portability, result set columns within each row should be
* read in left-to-right order, and each column should be read only once.
*
* <P>For the getter methods, a JDBC driver attempts
* to convert the underlying data to the Java type specified in the
* getter method and returns a suitable Java value. The JDBC specification
* has a table showing the allowable mappings from SQL types to Java types
* that can be used by the <code>ResultSet</code> getter methods.
*
* <P>Column names used as input to getter methods are case
* insensitive. When a getter method is called with
* a column name and several columns have the same name,
* the value of the first matching column will be returned.
* The column name option is
* designed to be used when column names are used in the SQL
* query that generated the result set.
* For columns that are NOT explicitly named in the query, it
* is best to use column numbers. (JDBC4 clarification:) If column names are used, the
* programmer should take care to guarantee that they uniquely refer to
* the intended columns, which can be assured with the SQL <i>AS</i> clause.
* <P>
* A set of updater methods were added to this interface
* in the JDBC 2.0 API (Java™ 2 SDK,
* Standard Edition, version 1.2). The comments regarding parameters
* to the getter methods also apply to parameters to the
* updater methods.
* <P>
* The updater methods may be used in two ways:
* <ol>
* <li>to update a column value in the current row. In a scrollable
* <code>ResultSet</code> object, the cursor can be moved backwards
* and forwards, to an absolute position, or to a position
* relative to the current row.
* The following code fragment updates the <code>NAME</code> column
* in the fifth row of the <code>ResultSet</code> object
* <code>rs</code> and then uses the method <code>updateRow</code>
* to update the data source table from which <code>rs</code> was derived.
* <PRE>
*
* rs.absolute(5); // moves the cursor to the fifth row of rs
* rs.updateString("NAME", "AINSWORTH"); // updates the
* // <code>NAME</code> column of row 5 to be <code>AINSWORTH</code>
* rs.updateRow(); // updates the row in the data source
*
* </PRE>
* </li>
* <li>to insert column values into the insert row. An updatable
* <code>ResultSet</code> object has a special row associated with
* it that serves as a staging area for building a row to be inserted.
* The following code fragment moves the cursor to the insert row, builds
* a three-column row, and inserts it into <code>rs</code> and into
* the data source table using the method <code>insertRow</code>.
* <PRE>
*
* rs.moveToInsertRow(); // moves cursor to the insert row
* rs.updateString(1, "AINSWORTH"); // updates the
* // first column of the insert row to be <code>AINSWORTH</code>
* rs.updateInt(2,35); // updates the second column to be <code>35</code>
* rs.updateBoolean(3, true); // updates the third column to <code>true</code>
* rs.insertRow();
* rs.moveToCurrentRow();
*
* </PRE>
* </li>
* </ol>
* <P>A <code>ResultSet</code> object is automatically closed when the
* <code>Statement</code> object that
* generated it is closed, re-executed, or used
* to retrieve the next result from a sequence of multiple results.
*
* <P>The number, types and properties of a <code>ResultSet</code>
* object's columns are provided by the <code>ResultSetMetaData</code>
* object returned by the <code>ResultSet.getMetaData</code> method.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* A <code>ResultSet</code> object generated by HSQLDB is by default of
* <code>ResultSet.TYPE_FORWARD_ONLY</code> (as is standard JDBC behavior)
* and does not allow the use of absolute and relative positioning
* methods. If a statement is created with:
*
* <pre class="JavaCodeExample">
* Statement stmt = conn.<b>createStatement</b>(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
* </pre>
*
* then the <code>ResultSet</code> objects it produces support
* using all of the absolute and relative positioning methods of JDBC2
* to set the position of the current row, for example:
*
* <pre class="JavaCodeExample">
* rs.<b>absolute</b>(<span class="JavaNumericLiteral">5</span>);
* String fifthRowValue = rs.<b>getString</b>(<span class="JavaNumericLiteral">1</span>);
* rs.<b>relative</b>(<span class="JavaNumericLiteral">4</span>);
* String ninthRowValue = rs.<b>getString</b>(<span class="JavaNumericLiteral">1</span>);
* </pre>
*
* Note: An HSQLDB <code>ResultSet</code> object persists, even after its
* connection is closed. This is regardless of the operational mode of
* the {@link org.hsqldb.Database Database} from which it came. That is, they
* persist whether originating from a <code>Server</code>,
* <code>WebServer</code> or in-process mode <code>Database.</code>
* <p>
*
* From HSQLDB 2.0, there is full support for updatable result sets.
* Supported methods
* include all updateXXX methods for the supported types, as well as the
* {@link #insertRow},
* {@link #updateRow}, {@link #deleteRow}, {@link #moveToInsertRow}
* methods.<p>
*
* The Statement must be created with ResultSet.CONCUR_UPDATABLE instead of
* CONCUR_READ_ONLY.<p>
*
* Updatability of a result set follows the SQL standards. Some or all columns
* of an updatable result set can be updated. The current row in such result sets
* can be deleted using the {@link #deleteRow} method. Some updatable result set
* can also be inserted into and support {@link #moveToInsertRow}.<p>
*
* A result set is updatable if the SELECT statement
* is updatable. This includes SELECT from TABLE and updatable VIEW objects.
* An updatable SELECT statement has a single underlying table or view.
* HSQLDB supports both scrollable and forward-only result sets for updatability.
*
* <pre class="JavaCodeExample">
* -- In the SELECT below, columns A and B are updatable, any row can be
* -- deleted, but it is not insertable-into as column C is not directly from
* -- the table.
* SELECT A, B, A + B AS C FROM T WHERE ...
*
* -- The SELECT below can be insertable-into so long as other columns of the
* -- table that do not appear in the SELECT list have a default value.
* SELECT A, B FROM T WHERE ...
* </pre>
*
* (fredt@users) <br>
* (campbell-burnet@users)<p>
*
* </div>
* @see JDBCStatement#executeQuery
* @see JDBCStatement#getResultSet
* @see java.sql.ResultSetMetaData
*
* @author Campbell Burnet (campbell-burnet@users dot sourceforge.net)
* @author Fred Toussi (fredt@users dot sourceforge.net)
* @version 2.5.0
* @since 1.9.0
*/
public class JDBCResultSet implements ResultSet {
Moves the cursor froward one row from its current position.
A ResultSet
cursor is initially positioned
before the first row; the first call to the method
next
makes the first row the current row; the
second call makes the second row the current row, and so on.
(JDBC4 clarification:)
When a call to the next
method returns false
,
the cursor is positioned after the last row. Any
invocation of a ResultSet
method which requires a
current row will result in a SQLException
being thrown.
If the result set type is TYPE_FORWARD_ONLY
, it is vendor specified
whether their JDBC driver implementation will return false
or
throw an SQLException
on a
subsequent call to next
.
If an input stream is open for the current row, a call
to the method next
will
implicitly close it. A ResultSet
object's
warning chain is cleared when a new row is read.
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: true
if the new current row is valid;
false
if there are no more rows
/**
* <!-- start generic documentation -->
* Moves the cursor froward one row from its current position.
* A <code>ResultSet</code> cursor is initially positioned
* before the first row; the first call to the method
* <code>next</code> makes the first row the current row; the
* second call makes the second row the current row, and so on.
* <p>(JDBC4 clarification:)
* When a call to the <code>next</code> method returns <code>false</code>,
* the cursor is positioned after the last row. Any
* invocation of a <code>ResultSet</code> method which requires a
* current row will result in a <code>SQLException</code> being thrown.
* If the result set type is <code>TYPE_FORWARD_ONLY</code>, it is vendor specified
* whether their JDBC driver implementation will return <code>false</code> or
* throw an <code>SQLException</code> on a
* subsequent call to <code>next</code>.
*
* <P>If an input stream is open for the current row, a call
* to the method <code>next</code> will
* implicitly close it. A <code>ResultSet</code> object's
* warning chain is cleared when a new row is read.
* <!-- end generic documentation -->
*
* @return <code>true</code> if the new current row is valid;
* <code>false</code> if there are no more rows
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public boolean next() throws SQLException {
checkClosed();
rootWarning = null;
return navigator.next();
}
Releases this ResultSet
object's database and
JDBC resources immediately instead of waiting for
this to happen when it is automatically closed.
(JDBC4 clarification:)
The closing of a ResultSet
object does not close the Blob
,
Clob
or NClob
objects created by the ResultSet
. Blob
,
Clob
or NClob
objects remain valid for at least the duration of the
transaction in which they are created, unless their free
method is invoked.
(JDBC4 clarification:)
When a ResultSet
is closed, any ResultSetMetaData
instances that were created by calling the getMetaData
method remain accessible.
Note: A ResultSet
object
is automatically closed by the
Statement
object that generated it when
that Statement
object is closed,
re-executed, or is used to retrieve the next result from a
sequence of multiple results.
(JDBC4 deleted:) [A ResultSet
object is also automatically
closed when it is garbage collected.]
Calling the method close
on a ResultSet
object that is already closed is a no-op.
Throws: - SQLException – if a database access error occurs
/**
* <!-- start generic documentation -->
* Releases this <code>ResultSet</code> object's database and
* JDBC resources immediately instead of waiting for
* this to happen when it is automatically closed.
*
* <P>(JDBC4 clarification:)
* The closing of a <code>ResultSet</code> object does <strong>not</strong> close the <code>Blob</code>,
* <code>Clob</code> or <code>NClob</code> objects created by the <code>ResultSet</code>. <code>Blob</code>,
* <code>Clob</code> or <code>NClob</code> objects remain valid for at least the duration of the
* transaction in which they are created, unless their <code>free</code> method is invoked.
* <p>
* (JDBC4 clarification:)
* When a <code>ResultSet</code> is closed, any <code>ResultSetMetaData</code>
* instances that were created by calling the <code>getMetaData</code>
* method remain accessible.
*
* <P><B>Note:</B> A <code>ResultSet</code> object
* is automatically closed by the
* <code>Statement</code> object that generated it when
* that <code>Statement</code> object is closed,
* re-executed, or is used to retrieve the next result from a
* sequence of multiple results.
* (JDBC4 deleted:) [A <code>ResultSet</code> object is also automatically
* closed when it is garbage collected.]
* <p>
* Calling the method <code>close</code> on a <code>ResultSet</code>
* object that is already closed is a no-op.
*
* <p>
* <!-- end generic documentation -->
*
* @exception SQLException if a database access error occurs
*/
public void close() throws SQLException {
if (navigator == null) {
return;
}
if (ResultProperties.isHeld(rsProperties)) {
session.closeNavigator(navigator.getId());
} else {
navigator.release();
}
navigator = null;
if (autoClose && statement != null) {
statement.close();
}
}
Reports whether
the last column read had a value of SQL NULL
.
Note that you must first call one of the getter methods
on a column to try to read its value and then call
the method wasNull
to see if the value read was
SQL NULL
.
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: true
if the last column value read was SQL
NULL
and false
otherwise
/**
* <!-- start generic documentation -->
* Reports whether
* the last column read had a value of SQL <code>NULL</code>.
* Note that you must first call one of the getter methods
* on a column to try to read its value and then call
* the method <code>wasNull</code> to see if the value read was
* SQL <code>NULL</code>.
* <!-- end generic documentation -->
*
* @return <code>true</code> if the last column value read was SQL
* <code>NULL</code> and <code>false</code> otherwise
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public boolean wasNull() throws SQLException {
checkClosed();
return wasNullValue;
}
//======================================================================
// Methods for accessing results by column index
//======================================================================
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a String
in the Java programming language.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>String</code> in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public String getString(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
if (sourceType.typeCode == Types.SQL_CLOB) {
ClobDataID x = (ClobDataID) getColumnInType(columnIndex,
sourceType);
if (x == null) {
return null;
}
long length = x.length(session);
if (length > Integer.MAX_VALUE) {
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
return x.getSubString(session, 0, (int) length);
}
return (String) getColumnInType(columnIndex, Type.SQL_VARCHAR);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a boolean
in the Java programming language.
(JDBC4 clarification:)
If the designated column has a datatype of CHAR or VARCHAR
and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
and contains a 0, a value of false
is returned. If the designated column has a datatype
of CHAR or VARCHAR
and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
and contains a 1, a value of true
is returned.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is false
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>boolean</code> in the Java programming language.
*
*
* <P>(JDBC4 clarification:)
* <P>If the designated column has a datatype of CHAR or VARCHAR
* and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
* and contains a 0, a value of <code>false</code> is returned. If the designated column has a datatype
* of CHAR or VARCHAR
* and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
* and contains a 1, a value of <code>true</code> is returned.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>false</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public boolean getBoolean(int columnIndex) throws SQLException {
Object o = getColumnInType(columnIndex, Type.SQL_BOOLEAN);
return o == null ? false
: ((Boolean) o).booleanValue();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a byte
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB converts the numeric value to the return type. If the value is
out of the range for the return type, an error is returned. For example,
this can happen if getByte() or getShort() is used to retrieve a value
of type INTEGER or BIGINT and the value is beyond the range covered by
the return type.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>byte</code> in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB converts the numeric value to the return type. If the value is
* out of the range for the return type, an error is returned. For example,
* this can happen if getByte() or getShort() is used to retrieve a value
* of type INTEGER or BIGINT and the value is beyond the range covered by
* the return type.
*
* </div>
* <!-- end release-specific documentation -->
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public byte getByte(int columnIndex) throws SQLException {
Object o = getColumnInType(columnIndex, Type.TINYINT);
return o == null ? 0
: ((Number) o).byteValue();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a short
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB converts the numeric value to the return type. If the value is
out of the range for the return type, an error is returned. For example,
this can happen if getByte() or getShort() is used to retrieve a value
of type INTEGER or BIGINT and the value is beyond the range covered by
the return type.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>short</code> in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB converts the numeric value to the return type. If the value is
* out of the range for the return type, an error is returned. For example,
* this can happen if getByte() or getShort() is used to retrieve a value
* of type INTEGER or BIGINT and the value is beyond the range covered by
* the return type.
*
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public short getShort(int columnIndex) throws SQLException {
Object o = getColumnInType(columnIndex, Type.SQL_SMALLINT);
return o == null ? 0
: ((Number) o).shortValue();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
an int
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB converts the numeric value to the return type. If the value is
out of the range for the return type, an error is returned. For example,
this can happen if getInt() or getLong() is used to retrieve a value
of type DECIMAL or NUMERIC with a large precision and the value is beyond
the range covered by the return type.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* an <code>int</code> in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB converts the numeric value to the return type. If the value is
* out of the range for the return type, an error is returned. For example,
* this can happen if getInt() or getLong() is used to retrieve a value
* of type DECIMAL or NUMERIC with a large precision and the value is beyond
* the range covered by the return type.
*
* </div>
* <!-- end release-specific documentation -->
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public int getInt(int columnIndex) throws SQLException {
Object o = getColumnInType(columnIndex, Type.SQL_INTEGER);
return o == null ? 0
: ((Number) o).intValue();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a long
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB converts the numeric value to the return type. If the value is
out of the range for the return type, an error is returned. For example,
this can happen if getInt() or getLong() is used to retrieve a value
of type DECIMAL or NUMERIC with a large precision and the value is beyond
the range covered by the return type.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>long</code> in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB converts the numeric value to the return type. If the value is
* out of the range for the return type, an error is returned. For example,
* this can happen if getInt() or getLong() is used to retrieve a value
* of type DECIMAL or NUMERIC with a large precision and the value is beyond
* the range covered by the return type.
*
* </div>
* <!-- end release-specific documentation -->
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public long getLong(int columnIndex) throws SQLException {
Object o = getColumnInType(columnIndex, Type.SQL_BIGINT);
return o == null ? 0
: ((Number) o).longValue();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a float
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB converts the numeric value to the return type. If the value is
out of the range for the return type, an error is returned. For example,
this can happen if getFloat() or getDouble() is used to retrieve a value
of type DECIMAL or NUMERIC with a large precision and the value is beyond
the range covered by the return type.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>float</code> in the Java programming language.
* <!-- end generic documentation -->
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB converts the numeric value to the return type. If the value is
* out of the range for the return type, an error is returned. For example,
* this can happen if getFloat() or getDouble() is used to retrieve a value
* of type DECIMAL or NUMERIC with a large precision and the value is beyond
* the range covered by the return type.
*
* </div>
* <!-- end release-specific documentation -->
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public float getFloat(int columnIndex) throws SQLException {
Object o = getColumnInType(columnIndex, Type.SQL_DOUBLE);
return o == null ? (float) 0.0
: ((Number) o).floatValue();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a double
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB converts the numeric value to the return type. If the value is
out of the range for the return type, an error is returned. For example,
this can happen if getFloat() or getDouble() is used to retrieve a value
of type DECIMAL or NUMERIC with a large precision and the value is beyond
the range covered by the return type.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>double</code> in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB converts the numeric value to the return type. If the value is
* out of the range for the return type, an error is returned. For example,
* this can happen if getFloat() or getDouble() is used to retrieve a value
* of type DECIMAL or NUMERIC with a large precision and the value is beyond
* the range covered by the return type.
*
* </div>
* <!-- end release-specific documentation -->
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public double getDouble(int columnIndex) throws SQLException {
Object o = getColumnInType(columnIndex, Type.SQL_DOUBLE);
return o == null ? 0.0
: ((Number) o).doubleValue();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a java.sql.BigDecimal
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB converts the result and sets the scale
with BigDecimal.ROUND_HALF_DOWN.
Params: - columnIndex – the first column is 1, the second is 2, ...
- scale – the number of digits to the right of the decimal point
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Deprecated:
by java.sun.com as of JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>java.sql.BigDecimal</code> in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB converts the result and sets the scale
* with BigDecimal.ROUND_HALF_DOWN.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param scale the number of digits to the right of the decimal point
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @deprecated
* by java.sun.com as of JDK 1.2
*/
//#ifdef DEPRECATEDJDBC
@Deprecated
public BigDecimal getBigDecimal(int columnIndex,
int scale) throws SQLException {
if (scale < 0) {
throw JDBCUtil.outOfRangeArgument();
}
BigDecimal bd = getBigDecimal(columnIndex);
if (bd != null) {
bd = bd.setScale(scale, BigDecimal.ROUND_DOWN);
}
return bd;
}
//#endif DEPRECATEDJDBC
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a byte
array in the Java programming language.
The bytes represent the raw values returned by the driver.
HSQLDB-Specific Information:
HSQLDB returns correct values for columns of binary types
BINARY
, BIT
, BLOB
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>byte</code> array in the Java programming language.
* The bytes represent the raw values returned by the driver.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB returns correct values for columns of binary types
* <code>BINARY</code>, <code>BIT</code>, <code>BLOB</code>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public byte[] getBytes(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
if (sourceType.typeCode == Types.SQL_BLOB) {
BlobDataID x = (BlobDataID) getColumnInType(columnIndex,
sourceType);
if (x == null) {
return null;
}
long length = x.length(session);
if (length > Integer.MAX_VALUE) {
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
return x.getBytes(session, 0, (int) length);
}
Object x = getColumnInType(columnIndex, Type.SQL_VARBINARY);
if (x == null) {
return null;
}
return ((BinaryData) x).getBytes();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a java.sql.Date
object in the Java programming language.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>java.sql.Date</code> object in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public Date getDate(int columnIndex) throws SQLException {
Object t = getColumnInType(columnIndex, Type.SQL_DATE);
if (t == null) {
return null;
}
return (Date) Type.SQL_DATE.convertSQLToJava(session, t);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a java.sql.Time
object in the Java programming language.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>java.sql.Time</code> object in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public Time getTime(int columnIndex) throws SQLException {
Object t = getColumnInType(columnIndex, Type.SQL_TIME);
if (t == null) {
return null;
}
return (Time) Type.SQL_TIME.convertSQLToJava(session, t);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a java.sql.Timestamp
object in the Java programming language.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>java.sql.Timestamp</code> object in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public Timestamp getTimestamp(int columnIndex) throws SQLException {
Object t = getColumnInType(columnIndex, Type.SQL_TIMESTAMP);
if (t == null) {
return null;
}
return (Timestamp) Type.SQL_TIMESTAMP.convertSQLToJava(session, t);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a stream of ASCII characters. The value can then be read in chunks from the
stream. This method is particularly
suitable for retrieving large LONGVARCHAR values.
The JDBC driver will
do any necessary conversion from the database format into ASCII.
Note: All the data in the returned stream must be
read prior to getting the value of any other column. The next
call to a getter method implicitly closes the stream. Also, a
stream may return 0
when the method
InputStream.available
is called whether there is data available or not.
HSQLDB-Specific Information:
The limitation noted above does not apply to HSQLDB.
When the column is of type CHAR and its variations, it requires no
conversion since it is represented internally already as a
Java String object. When the column is not of type CHAR and its
variations, the returned stream is based on a conversion to the
Java String
representation of the value. In either case,
the obtained stream is always equivalent to a stream of the low order
bytes from the value's String representation.
HSQLDB SQL CHAR
and its variations are all Unicode strings internally, so the recommended alternatives to this method are getString
, getUnicodeStream
(deprecated) and new to 1.7.0: getCharacterStream
(now preferred over the deprecated getUnicodeStream alternative).
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: a Java input stream that delivers the database column value
as a stream of one-byte ASCII characters;
if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a stream of ASCII characters. The value can then be read in chunks from the
* stream. This method is particularly
* suitable for retrieving large LONGVARCHAR values.
* The JDBC driver will
* do any necessary conversion from the database format into ASCII.
*
* <P><B>Note:</B> All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a getter method implicitly closes the stream. Also, a
* stream may return <code>0</code> when the method
* <code>InputStream.available</code>
* is called whether there is data available or not.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* The limitation noted above does not apply to HSQLDB.<p>
*
* When the column is of type CHAR and its variations, it requires no
* conversion since it is represented internally already as a
* Java String object. When the column is not of type CHAR and its
* variations, the returned stream is based on a conversion to the
* Java <code>String</code> representation of the value. In either case,
* the obtained stream is always equivalent to a stream of the low order
* bytes from the value's String representation. <p>
*
* HSQLDB SQL <code>CHAR</code> and its variations are all Unicode strings
* internally, so the recommended alternatives to this method are
* {@link #getString(int) getString},
* {@link #getUnicodeStream(int) getUnicodeStream} (<b>deprecated</b>)
* and new to 1.7.0: {@link #getCharacterStream(int) getCharacterStream}
* (now preferred over the deprecated getUnicodeStream alternative).
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a Java input stream that delivers the database column value
* as a stream of one-byte ASCII characters;
* if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public java.io.InputStream getAsciiStream(
int columnIndex) throws SQLException {
String s = getString(columnIndex);
if (s == null) {
return null;
}
try {
return new ByteArrayInputStream(s.getBytes(JavaSystem.CS_US_ASCII));
} catch (Throwable e) {
throw JDBCUtil.sqlException(e);
}
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
as a stream of two-byte Unicode characters. The first byte is
the high byte; the second byte is the low byte.
The value can then be read in chunks from the
stream. This method is particularly
suitable for retrieving large LONGVARCHAR
values. The
JDBC driver will do any necessary conversion from the database
format into Unicode.
Note: All the data in the returned stream must be
read prior to getting the value of any other column. The next
call to a getter method implicitly closes the stream.
Also, a stream may return 0
when the method
InputStream.available
is called, whether there is data available or not.
HSQLDB-Specific Information:
The limitation noted above does not apply to HSQLDB.
When the column is of type CHAR and its variations, it requires no
conversion since it is represented internally already as
Java Strings. When the column is not of type CHAR and its variations,
the returned stream is based on a conversion to the
Java String
representation of the value. In either case,
the obtained stream is always equivalent to a stream of
bytes from the value's String representation, with high-byte first.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a Java input stream that delivers the database column value
as a stream of two-byte Unicode characters;
if the value is SQL NULL
, the value returned is
null
Deprecated: use getCharacterStream
in place of
getUnicodeStream
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* as a stream of two-byte Unicode characters. The first byte is
* the high byte; the second byte is the low byte.
*
* The value can then be read in chunks from the
* stream. This method is particularly
* suitable for retrieving large <code>LONGVARCHAR</code>values. The
* JDBC driver will do any necessary conversion from the database
* format into Unicode.
*
* <P><B>Note:</B> All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a getter method implicitly closes the stream.
* Also, a stream may return <code>0</code> when the method
* <code>InputStream.available</code>
* is called, whether there is data available or not.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* The limitation noted above does not apply to HSQLDB.<p>
*
* When the column is of type CHAR and its variations, it requires no
* conversion since it is represented internally already as
* Java Strings. When the column is not of type CHAR and its variations,
* the returned stream is based on a conversion to the
* Java <code>String</code> representation of the value. In either case,
* the obtained stream is always equivalent to a stream of
* bytes from the value's String representation, with high-byte first.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a Java input stream that delivers the database column value
* as a stream of two-byte Unicode characters;
* if the value is SQL <code>NULL</code>, the value returned is
* <code>null</code>
*
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @deprecated use <code>getCharacterStream</code> in place of
* <code>getUnicodeStream</code>
*/
//#ifdef DEPRECATEDJDBC
@Deprecated
public java.io.InputStream getUnicodeStream(
int columnIndex) throws SQLException {
String s = getString(columnIndex);
if (s == null) {
return null;
}
return new StringInputStream(s);
}
//#endif DEPRECATEDJDBC
Retrieves the value of the designated column in the current row
of this ResultSet
object as a stream of
uninterpreted bytes. The value can then be read in chunks from the
stream. This method is particularly
suitable for retrieving large LONGVARBINARY
values.
Note: All the data in the returned stream must be
read prior to getting the value of any other column. The next
call to a getter method implicitly closes the stream. Also, a
stream may return 0
when the method
InputStream.available
is called whether there is data available or not.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: a Java input stream that delivers the database column value
as a stream of uninterpreted bytes;
if the value is SQL NULL
, the value returned is
null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a stream of
* uninterpreted bytes. The value can then be read in chunks from the
* stream. This method is particularly
* suitable for retrieving large <code>LONGVARBINARY</code> values.
*
* <P><B>Note:</B> All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a getter method implicitly closes the stream. Also, a
* stream may return <code>0</code> when the method
* <code>InputStream.available</code>
* is called whether there is data available or not.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a Java input stream that delivers the database column value
* as a stream of uninterpreted bytes;
* if the value is SQL <code>NULL</code>, the value returned is
* <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public java.io.InputStream getBinaryStream(
int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
Object o = getColumnInType(columnIndex, sourceType);
if (o == null) {
return null;
}
if (o instanceof BlobDataID) {
return ((BlobDataID) o).getBinaryStream(session);
} else if (o instanceof Blob) {
return ((Blob) o).getBinaryStream();
} else if (o instanceof BinaryData) {
byte[] b = getBytes(columnIndex);
return new ByteArrayInputStream(b);
}
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
//======================================================================
// Methods for accessing results by column label
//======================================================================
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a String
in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>String</code> in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public String getString(String columnLabel) throws SQLException {
return getString(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a boolean
in the Java programming language.
(JDBC4 clarification:) If the designated column has a datatype of CHAR or VARCHAR
and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
and contains a 0, a value of false
is returned. If the designated column has a datatype
of CHAR or VARCHAR
and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
and contains a 1, a value of true
is returned.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is false
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>boolean</code> in the Java programming language.
*
* <P>(JDBC4 clarification:) If the designated column has a datatype of CHAR or VARCHAR
* and contains a "0" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
* and contains a 0, a value of <code>false</code> is returned. If the designated column has a datatype
* of CHAR or VARCHAR
* and contains a "1" or has a datatype of BIT, TINYINT, SMALLINT, INTEGER or BIGINT
* and contains a 1, a value of <code>true</code> is returned.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>false</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public boolean getBoolean(String columnLabel) throws SQLException {
return getBoolean(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a byte
in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>byte</code> in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public byte getByte(String columnLabel) throws SQLException {
return getByte(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a short
in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>short</code> in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public short getShort(String columnLabel) throws SQLException {
return getShort(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
an int
in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* an <code>int</code> in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public int getInt(String columnLabel) throws SQLException {
return getInt(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a long
in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>long</code> in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public long getLong(String columnLabel) throws SQLException {
return getLong(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a float
in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>float</code> in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public float getFloat(String columnLabel) throws SQLException {
return getFloat(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a double
in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is 0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>double</code> in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>0</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public double getDouble(String columnLabel) throws SQLException {
return getDouble(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a java.math.BigDecimal
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB converts the result and sets the scale
with BigDecimal.ROUND_HALF_DOWN.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- scale – the number of digits to the right of the decimal point
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Deprecated:
by java.sun.com as of JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>java.math.BigDecimal</code> in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB converts the result and sets the scale
* with BigDecimal.ROUND_HALF_DOWN.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param scale the number of digits to the right of the decimal point
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @deprecated
* by java.sun.com as of JDK 1.2
*/
//#ifdef DEPRECATEDJDBC
@Deprecated
public BigDecimal getBigDecimal(String columnLabel,
int scale) throws SQLException {
return getBigDecimal(findColumn(columnLabel), scale);
}
//#endif DEPRECATEDJDBC
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a byte
array in the Java programming language.
The bytes represent the raw values returned by the driver.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>byte</code> array in the Java programming language.
* The bytes represent the raw values returned by the driver.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public byte[] getBytes(String columnLabel) throws SQLException {
return getBytes(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a java.sql.Date
object in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>java.sql.Date</code> object in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public Date getDate(String columnLabel) throws SQLException {
return getDate(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a java.sql.Time
object in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value;
if the value is SQL NULL
,
the value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>java.sql.Time</code> object in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public Time getTime(String columnLabel) throws SQLException {
return getTime(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a java.sql.Timestamp
object in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value; if the value is SQL NULL
, the
value returned is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>java.sql.Timestamp</code> object in the Java programming language.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public Timestamp getTimestamp(String columnLabel) throws SQLException {
return getTimestamp(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a stream of
ASCII characters. The value can then be read in chunks from the
stream. This method is particularly
suitable for retrieving large LONGVARCHAR
values.
The JDBC driver will
do any necessary conversion from the database format into ASCII.
Note: All the data in the returned stream must be
read prior to getting the value of any other column. The next
call to a getter method implicitly closes the stream. Also, a
stream may return 0
when the method available
is called whether there is data available or not.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
See Also: Returns: a Java input stream that delivers the database column value
as a stream of one-byte ASCII characters.
If the value is SQL NULL
,
the value returned is null
.
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a stream of
* ASCII characters. The value can then be read in chunks from the
* stream. This method is particularly
* suitable for retrieving large <code>LONGVARCHAR</code> values.
* The JDBC driver will
* do any necessary conversion from the database format into ASCII.
*
* <P><B>Note:</B> All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a getter method implicitly closes the stream. Also, a
* stream may return <code>0</code> when the method <code>available</code>
* is called whether there is data available or not.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return a Java input stream that delivers the database column value
* as a stream of one-byte ASCII characters.
* If the value is SQL <code>NULL</code>,
* the value returned is <code>null</code>.
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @see #getAsciiStream(int)
*/
public java.io.InputStream getAsciiStream(
String columnLabel) throws SQLException {
return getAsciiStream(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a stream of two-byte
Unicode characters. The first byte is the high byte; the second
byte is the low byte.
The value can then be read in chunks from the
stream. This method is particularly
suitable for retrieving large LONGVARCHAR
values.
The JDBC technology-enabled driver will
do any necessary conversion from the database format into Unicode.
Note: All the data in the returned stream must be
read prior to getting the value of any other column. The next
call to a getter method implicitly closes the stream.
Also, a stream may return 0
when the method
InputStream.available
is called, whether there
is data available or not.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
See Also: Returns: a Java input stream that delivers the database column value
as a stream of two-byte Unicode characters.
If the value is SQL NULL
, the value returned
is null
. Deprecated: use getCharacterStream
instead
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a stream of two-byte
* Unicode characters. The first byte is the high byte; the second
* byte is the low byte.
*
* The value can then be read in chunks from the
* stream. This method is particularly
* suitable for retrieving large <code>LONGVARCHAR</code> values.
* The JDBC technology-enabled driver will
* do any necessary conversion from the database format into Unicode.
*
* <P><B>Note:</B> All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a getter method implicitly closes the stream.
* Also, a stream may return <code>0</code> when the method
* <code>InputStream.available</code> is called, whether there
* is data available or not.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return a Java input stream that delivers the database column value
* as a stream of two-byte Unicode characters.
* If the value is SQL <code>NULL</code>, the value returned
* is <code>null</code>.
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @deprecated use <code>getCharacterStream</code> instead
* @see #getUnicodeStream(int)
*/
//#ifdef DEPRECATEDJDBC
@Deprecated
public java.io.InputStream getUnicodeStream(
String columnLabel) throws SQLException {
return getUnicodeStream(findColumn(columnLabel));
}
//#endif DEPRECATEDJDBC
Retrieves the value of the designated column in the current row
of this ResultSet
object as a stream of uninterpreted
byte
s.
The value can then be read in chunks from the
stream. This method is particularly
suitable for retrieving large LONGVARBINARY
values.
Note: All the data in the returned stream must be
read prior to getting the value of any other column. The next
call to a getter method implicitly closes the stream. Also, a
stream may return 0
when the method available
is called whether there is data available or not.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: a Java input stream that delivers the database column value
as a stream of uninterpreted bytes;
if the value is SQL NULL
, the result is null
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a stream of uninterpreted
* <code>byte</code>s.
* The value can then be read in chunks from the
* stream. This method is particularly
* suitable for retrieving large <code>LONGVARBINARY</code>
* values.
*
* <P><B>Note:</B> All the data in the returned stream must be
* read prior to getting the value of any other column. The next
* call to a getter method implicitly closes the stream. Also, a
* stream may return <code>0</code> when the method <code>available</code>
* is called whether there is data available or not.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return a Java input stream that delivers the database column value
* as a stream of uninterpreted bytes;
* if the value is SQL <code>NULL</code>, the result is <code>null</code>
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public java.io.InputStream getBinaryStream(
String columnLabel) throws SQLException {
return getBinaryStream(findColumn(columnLabel));
}
//=====================================================================
// Advanced features:
//=====================================================================
Retrieves the first warning reported by calls on this
ResultSet
object.
Subsequent warnings on this ResultSet
object
will be chained to the SQLWarning
object that
this method returns.
The warning chain is automatically cleared each time a new
row is read. This method may not be called on a ResultSet
object that has been closed; doing so will cause an
SQLException
to be thrown.
Note: This warning chain only covers warnings caused
by ResultSet
methods. Any warning caused by
Statement
methods
(such as reading OUT parameters) will be chained on the
Statement
object.
HSQLDB-Specific Information:
HSQLDB does not produce SQLWarning
objects on any ResultSet object warning chain; this
method always returns null
.
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the first SQLWarning
object reported or
null
if there are none
/**
* <!-- start generic documentation -->
* Retrieves the first warning reported by calls on this
* <code>ResultSet</code> object.
* Subsequent warnings on this <code>ResultSet</code> object
* will be chained to the <code>SQLWarning</code> object that
* this method returns.
*
* <P>The warning chain is automatically cleared each time a new
* row is read. This method may not be called on a <code>ResultSet</code>
* object that has been closed; doing so will cause an
* <code>SQLException</code> to be thrown.
* <P>
* <B>Note:</B> This warning chain only covers warnings caused
* by <code>ResultSet</code> methods. Any warning caused by
* <code>Statement</code> methods
* (such as reading OUT parameters) will be chained on the
* <code>Statement</code> object.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not produce <code>SQLWarning</code>
* objects on any ResultSet object warning chain; this
* method always returns <code>null</code>.
* </div>
* <!-- end release-specific documentation -->
*
* @return the first <code>SQLWarning</code> object reported or
* <code>null</code> if there are none
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public SQLWarning getWarnings() throws SQLException {
checkClosed();
return rootWarning;
}
Clears all warnings reported on this ResultSet
object.
After this method is called, the method getWarnings
returns null
until a new warning is
reported for this ResultSet
object.
HSQLDB-Specific Information:
HSQLDB does not produce SQLWarning
objects on any ResultSet object warning chain; calls to this method
are ignored.
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
/**
* <!-- start generic documentation -->
* Clears all warnings reported on this <code>ResultSet</code> object.
* After this method is called, the method <code>getWarnings</code>
* returns <code>null</code> until a new warning is
* reported for this <code>ResultSet</code> object.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not produce <code>SQLWarning</code>
* objects on any ResultSet object warning chain; calls to this method
* are ignored.
* </div>
* <!-- end release-specific documentation -->
*
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public void clearWarnings() throws SQLException {
checkClosed();
rootWarning = null;
}
Retrieves the name of the SQL cursor used by this ResultSet
object.
In SQL, a result table is retrieved through a cursor that is
named. The current row of a result set can be updated or deleted
using a positioned update/delete statement that references the
cursor name. To insure that the cursor has the proper isolation
level to support update, the cursor's SELECT
statement
should be of the form SELECT FOR UPDATE
. If
FOR UPDATE
is omitted, the positioned updates may fail.
The JDBC API supports this SQL feature by providing the name of the
SQL cursor used by a ResultSet
object.
The current row of a ResultSet
object
is also the current row of this SQL cursor.
HSQLDB-Specific Information:
HSQLDB supports this feature when the cursor has a name.
Throws: - SQLException – if a database access error occurs or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the SQL name for this ResultSet
object's cursor
/**
* <!-- start generic documentation -->
* Retrieves the name of the SQL cursor used by this <code>ResultSet</code>
* object.
*
* <P>In SQL, a result table is retrieved through a cursor that is
* named. The current row of a result set can be updated or deleted
* using a positioned update/delete statement that references the
* cursor name. To insure that the cursor has the proper isolation
* level to support update, the cursor's <code>SELECT</code> statement
* should be of the form <code>SELECT FOR UPDATE</code>. If
* <code>FOR UPDATE</code> is omitted, the positioned updates may fail.
*
* <P>The JDBC API supports this SQL feature by providing the name of the
* SQL cursor used by a <code>ResultSet</code> object.
* The current row of a <code>ResultSet</code> object
* is also the current row of this SQL cursor.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature when the cursor has a name.<p>
*
* </div>
* <!-- end release-specific documentation -->
*
* @return the SQL name for this <code>ResultSet</code> object's cursor
* @exception SQLException if a database access error occurs or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
*/
public String getCursorName() throws SQLException {
checkClosed();
if (result == null) {
return "";
}
return result.getMainString();
}
Retrieves the number, types and properties of
this ResultSet
object's columns.
HSQLDB-Specific Information:
Example:
The following code fragment creates a ResultSet
object rs,
creates a ResultSetMetaData
object rsmd, and uses rsmd
to find out how many columns rs has and whether the first column
in rs can be used in a WHERE
clause.
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
boolean b = rsmd.isSearchable(1);
Changes:
With version 2.0, the engine's SQL implementation has been
completely rewritten. Changes to this class and the implementation of
ResultSetMetaData reflect the engine's new capabilities and provide
more accurate information.
changes to consider:
- isAutoIncrement(int) always returned
false
- isNullable(int) returns the nullability of a real table or view
column in the ResultSet and returns
columnNoNulls
for non-base-column ResultSet columns
(columns of the ResultSet that are based on expressions or
aggregates).
- getColumnDisplaySize(int) returns correct results even for expression
columns.
- getPrecision(int) returns the correct precision even for expression
columns.
- getScale(int) returns the correct precision even for expression
columns.
- getCatalogName(int) returns the catalog name of the database.
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
See Also: Returns: the description of this ResultSet
object's columns
/**
* <!-- start generic documentation -->
* Retrieves the number, types and properties of
* this <code>ResultSet</code> object's columns.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* <B>Example:</B> <p>
*
* The following code fragment creates a <code>ResultSet</code> object rs,
* creates a <code>ResultSetMetaData</code> object rsmd, and uses rsmd
* to find out how many columns rs has and whether the first column
* in rs can be used in a <code>WHERE</code> clause.
*
* <pre class="JavaCodeExample">
* ResultSet rs = stmt.<b>executeQuery</b>(<span class="JavaStringLiteral">"SELECT a, b, c FROM TABLE2"</span>);
* ResultSetMetaData rsmd = rs.<b>getMetaData</b>();<br>
* int numberOfColumns = rsmd.<b>getColumnCount</b>();<br>
* boolean b = rsmd.<b>isSearchable</b>(1);<br>
* </pre>
*
* <hr>
*
* <B>Changes:</B> <p>
*
* With version 2.0, the engine's SQL implementation has been
* completely rewritten. Changes to this class and the implementation of
* ResultSetMetaData reflect the engine's new capabilities and provide
* more accurate information. <p>
*
* changes to consider:
*
* <ol>
* <li>isAutoIncrement(int) <i>always</i> returned <code>false</code></li>
* <li>isNullable(int) returns the nullability of a real table or view
* column in the ResultSet and returns
* <code>columnNoNulls</code> for non-base-column ResultSet columns
* (columns of the ResultSet that are based on expressions or
* aggregates).</li>
* <li>getColumnDisplaySize(int) returns correct results even for expression
* columns.</li>
* <li>getPrecision(int) returns the correct precision even for expression
* columns.</li>
* <li>getScale(int) returns the correct precision even for expression
* columns.</li>
* <li>getCatalogName(int) returns the catalog name of the database.</li>
* </ol>
*
* <hr>
* </div>
* <!-- end release-specific documentation -->
*
* @return the description of this <code>ResultSet</code> object's columns
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @see JDBCResultSetMetaData
*/
public ResultSetMetaData getMetaData() throws SQLException {
checkClosed();
if (resultSetMetaData == null) {
resultSetMetaData = new JDBCResultSetMetaData(resultMetaData,
isUpdatable, isInsertable, connection);
}
return resultSetMetaData;
}
Gets the value of the designated column in the current row
of this ResultSet
object as
an Object
in the Java programming language.
This method will return the value of the given column as a
Java object. The type of the Java object will be the default
Java object type corresponding to the column's SQL type,
following the mapping for built-in types specified in the JDBC
specification. If the value is an SQL NULL
,
the driver returns a Java null
.
This method may also be used to read database-specific
abstract data types.
In the JDBC 2.0 API, the behavior of method
getObject
is extended to materialize
data of SQL user-defined types.
If Connection.getTypeMap
does not throw a
SQLFeatureNotSupportedException
,
then when a column contains a structured or distinct value,
the behavior of this method is as
if it were a call to: getObject(columnIndex,
this.getStatement().getConnection().getTypeMap())
.
If Connection.getTypeMap
does throw a
SQLFeatureNotSupportedException
,
then structured values are not supported, and distinct values
are mapped to the default Java class as determined by the
underlying SQL type of the DISTINCT type.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: a java.lang.Object
holding the column value
/**
* <!-- start generic documentation -->
* <p>Gets the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* an <code>Object</code> in the Java programming language.
*
* <p>This method will return the value of the given column as a
* Java object. The type of the Java object will be the default
* Java object type corresponding to the column's SQL type,
* following the mapping for built-in types specified in the JDBC
* specification. If the value is an SQL <code>NULL</code>,
* the driver returns a Java <code>null</code>.
*
* <p>This method may also be used to read database-specific
* abstract data types.
*
* In the JDBC 2.0 API, the behavior of method
* <code>getObject</code> is extended to materialize
* data of SQL user-defined types.
* <p>
* If <code>Connection.getTypeMap</code> does not throw a
* <code>SQLFeatureNotSupportedException</code>,
* then when a column contains a structured or distinct value,
* the behavior of this method is as
* if it were a call to: <code>getObject(columnIndex,
* this.getStatement().getConnection().getTypeMap())</code>.
*
* If <code>Connection.getTypeMap</code> does throw a
* <code>SQLFeatureNotSupportedException</code>,
* then structured values are not supported, and distinct values
* are mapped to the default Java class as determined by the
* underlying SQL type of the DISTINCT type.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a <code>java.lang.Object</code> holding the column value
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public Object getObject(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
switch (sourceType.typeCode) {
case Types.SQL_ARRAY :
return getArray(columnIndex);
case Types.SQL_DATE :
return getDate(columnIndex);
case Types.SQL_TIME :
return getTime(columnIndex);
case Types.SQL_TIME_WITH_TIME_ZONE :
return getTimeWithZone(columnIndex);
case Types.SQL_TIMESTAMP :
return getTimestamp(columnIndex);
case Types.SQL_TIMESTAMP_WITH_TIME_ZONE :
return getTimestampWithZone(columnIndex);
case Types.SQL_BINARY :
case Types.SQL_VARBINARY :
return getBytes(columnIndex);
case Types.SQL_GUID : {
BinaryData bd = (BinaryData) getColumnValue(columnIndex);
return BinaryUUIDType.getJavaUUID(bd);
}
case Types.SQL_BIT : {
BinaryData bd = (BinaryData) getColumnValue(columnIndex);
if (wasNull()) {
return null;
}
byte[] bytes = bd.getBytes();
if (bytes.length == 0) {
return false;
}
return bytes[0] == 0 ? Boolean.FALSE
: Boolean.TRUE;
}
case Types.SQL_CLOB :
return getClob(columnIndex);
case Types.SQL_BLOB :
return getBlob(columnIndex);
case Types.OTHER :
case Types.JAVA_OBJECT : {
Object o = getColumnInType(columnIndex, sourceType);
if (o == null) {
return null;
}
try {
return ((JavaObjectData) o).getObject();
} catch (HsqlException e) {
throw JDBCUtil.sqlException(e);
}
}
default :
return getColumnInType(columnIndex, sourceType);
}
}
Gets the value of the designated column in the current row
of this ResultSet
object as
an Object
in the Java programming language.
This method will return the value of the given column as a
Java object. The type of the Java object will be the default
Java object type corresponding to the column's SQL type,
following the mapping for built-in types specified in the JDBC
specification. If the value is an SQL NULL
,
the driver returns a Java null
.
This method may also be used to read database-specific
abstract data types.
In the JDBC 2.0 API, the behavior of the method
getObject
is extended to materialize
data of SQL user-defined types. When a column contains
a structured or distinct value, the behavior of this method is as
if it were a call to: getObject(columnIndex,
this.getStatement().getConnection().getTypeMap())
.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: a java.lang.Object
holding the column value
/**
* <!-- start generic documentation -->
* <p>Gets the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* an <code>Object</code> in the Java programming language.
*
* <p>This method will return the value of the given column as a
* Java object. The type of the Java object will be the default
* Java object type corresponding to the column's SQL type,
* following the mapping for built-in types specified in the JDBC
* specification. If the value is an SQL <code>NULL</code>,
* the driver returns a Java <code>null</code>.
* <P>
* This method may also be used to read database-specific
* abstract data types.
* <P>
* In the JDBC 2.0 API, the behavior of the method
* <code>getObject</code> is extended to materialize
* data of SQL user-defined types. When a column contains
* a structured or distinct value, the behavior of this method is as
* if it were a call to: <code>getObject(columnIndex,
* this.getStatement().getConnection().getTypeMap())</code>.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return a <code>java.lang.Object</code> holding the column value
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
*/
public Object getObject(String columnLabel) throws SQLException {
return getObject(findColumn(columnLabel));
}
//----------------------------------------------------------------
Maps the given ResultSet
column label to its
ResultSet
column index.
HSQLDB-Specific Information:
Starting with 1.9.x, HSQLDB does an exhaustive search, backed by
a cache lookup (to improve performance for subsequent invocations with
a given input).
Upon careful investigation of the JDBC specification and the behaviour
of existing JDBC drivers, there is actually nothing preventing the
findColumn method from doing an exhaustive search, as long as it conforms
to the following rules (which describe the new implementation):
- the entire search is case insensitive
- each search iteration occurs from leftmost to rightmost column,
returning the first match encountered
- the first pass matches only bare column labels
- the second pass matches only simple column names
- further passes conform to the identifier qualification
and identifier quoting rules of the engine
In this implementation, the SQL tokenizer is not employed, both because
it does not yet correctly handle greater than two part qualification
and also because is is not immediately considered important to do a
truly exhaustive search, handling the full range of possibly mixed quoted
and unquoted identifier components.
Instead:
- a third pass matches simple table-dot-column qualified names
- a fourth pass matches simple schema-dot-table-dot-column qualified column names
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if the
ResultSet
object
does not contain a column labeled columnLabel
, a database access error occurs
or this method is called on a closed result set
Returns: the column index of the given column name
/**
* <!-- start generic documentation -->
* Maps the given <code>ResultSet</code> column label to its
* <code>ResultSet</code> column index.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* Starting with 1.9.x, HSQLDB does an exhaustive search, backed by
* a cache lookup (to improve performance for subsequent invocations with
* a given input). <p>
*
* Upon careful investigation of the JDBC specification and the behaviour
* of existing JDBC drivers, there is actually nothing preventing the
* findColumn method from doing an exhaustive search, as long as it conforms
* to the following rules (which describe the new implementation):
*
* <ol>
* <li> the entire search is case insensitive
* <li> each search iteration occurs from leftmost to rightmost column,
* returning the first match encountered
* <li> the first pass matches only bare column labels
* <li> the second pass matches only simple column names
* <li> further passes conform to the identifier qualification
* and identifier quoting rules of the engine
* </ol>
*
* In this implementation, the SQL tokenizer is not employed, both because
* it does not yet correctly handle greater than two part qualification
* and also because is is not immediately considered important to do a
* truly exhaustive search, handling the full range of possibly mixed quoted
* and unquoted identifier components. <p>
*
* Instead:
* <ul>
* <li> a third pass matches simple table-dot-column qualified names
* <li> a fourth pass matches simple schema-dot-table-dot-column qualified column names
* </ul>
* </div>
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column index of the given column name
* @exception SQLException if the <code>ResultSet</code> object
* does not contain a column labeled <code>columnLabel</code>, a database access error occurs
* or this method is called on a closed result set
*/
public int findColumn(final String columnLabel) throws SQLException {
checkClosed();
if (columnLabel == null) {
throw JDBCUtil.nullArgument();
}
int columnIndex;
// faster lookup for subsequent access
if (columnMap != null) {
columnIndex = columnMap.get(columnLabel, -1);
if (columnIndex != -1) {
return columnIndex;
}
}
final String[] colLabels = resultMetaData.columnLabels;
columnIndex = -1;
// column labels first, to preference column aliases
for (int i = 0; i < columnCount; i++) {
if (columnLabel.equalsIgnoreCase(colLabels[i])) {
columnIndex = i;
break;
}
}
final ColumnBase[] columns = resultMetaData.columns;
// then bare column names, to preference simple
// quoted column idents that *may* contain "."
if (columnIndex < 0) {
for (int i = 0; i < columnCount; i++) {
if (columnLabel.equalsIgnoreCase(columns[i].getNameString())) {
columnIndex = i;
break;
}
}
}
// then table-qualified column names (again, quoted
// table idents *may* contain "."
// As a last resort, "fully" qualified column names
// (we don't yet bother with catalog qualification)
if (columnIndex < 0) {
int position = columnLabel.indexOf('.');
if (position < 0) {
throw JDBCUtil.sqlException(ErrorCode.JDBC_COLUMN_NOT_FOUND,
columnLabel);
}
for (int i = 0; i < columnCount; i++) {
final String tabName = columns[i].getTableNameString();
if (tabName == null || tabName.length() == 0) {
continue;
}
final String colName = columns[i].getNameString();
if (columnLabel.equalsIgnoreCase(tabName + '.' + colName)) {
columnIndex = i;
break;
}
final String schemName = columns[i].getSchemaNameString();
if (schemName == null || schemName.length() == 0) {
continue;
}
String match = new StringBuilder(schemName).append('.').append(
tabName).append('.').append(colName).toString();
if (columnLabel.equalsIgnoreCase(match)) {
columnIndex = i;
break;
}
}
}
if (columnIndex < 0) {
throw JDBCUtil.sqlException(ErrorCode.JDBC_COLUMN_NOT_FOUND,
columnLabel);
}
columnIndex++;
if (columnMap == null) {
columnMap = new IntValueHashMap();
}
columnMap.put(columnLabel, columnIndex);
return columnIndex;
}
//--------------------------JDBC 2.0-----------------------------------
//---------------------------------------------------------------------
// Getters and Setters
//---------------------------------------------------------------------
Retrieves the value of the designated column in the current row
of this ResultSet
object as a
java.io.Reader
object.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: a java.io.Reader
object that contains the column
value; if the value is SQL NULL
, the value returned is
null
in the Java programming language. Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a
* <code>java.io.Reader</code> object.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @return a <code>java.io.Reader</code> object that contains the column
* value; if the value is SQL <code>NULL</code>, the value returned is
* <code>null</code> in the Java programming language.
* @param columnIndex the first column is 1, the second is 2, ...
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @since JDK 1.2
*/
public java.io.Reader getCharacterStream(
int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
Object o = getColumnInType(columnIndex, sourceType);
if (o == null) {
return null;
}
if (o instanceof ClobDataID) {
return ((ClobDataID) o).getCharacterStream(session);
} else if (o instanceof Clob) {
return ((Clob) o).getCharacterStream();
} else if (o instanceof String) {
return new StringReader((String) o);
}
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a
java.io.Reader
object.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: a java.io.Reader
object that contains the column
value; if the value is SQL NULL
, the value returned is
null
in the Java programming language Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a
* <code>java.io.Reader</code> object.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return a <code>java.io.Reader</code> object that contains the column
* value; if the value is SQL <code>NULL</code>, the value returned is
* <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @since JDK 1.2
*/
public java.io.Reader getCharacterStream(
String columnLabel) throws SQLException {
return getCharacterStream(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a
java.math.BigDecimal
with full precision.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value (full precision);
if the value is SQL NULL
, the value returned is
null
in the Java programming language. Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a
* <code>java.math.BigDecimal</code> with full precision.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value (full precision);
* if the value is SQL <code>NULL</code>, the value returned is
* <code>null</code> in the Java programming language.
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @since JDK 1.2
*/
public BigDecimal getBigDecimal(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type targetType = resultMetaData.columnTypes[columnIndex - 1];
switch (targetType.typeCode) {
case Types.SQL_NUMERIC :
case Types.SQL_DECIMAL :
break;
case Types.TINYINT :
case Types.SQL_SMALLINT :
case Types.SQL_INTEGER :
case Types.SQL_BIGINT :
targetType = Type.SQL_DECIMAL;
break;
case Types.SQL_DOUBLE :
default :
targetType = Type.SQL_DECIMAL_DEFAULT;
break;
}
return (BigDecimal) getColumnInType(columnIndex, targetType);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a
java.math.BigDecimal
with full precision.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
Returns: the column value (full precision);
if the value is SQL NULL
, the value returned is
null
in the Java programming language. Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a
* <code>java.math.BigDecimal</code> with full precision.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return the column value (full precision);
* if the value is SQL <code>NULL</code>, the value returned is
* <code>null</code> in the Java programming language.
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @since JDK 1.2
*/
public BigDecimal getBigDecimal(String columnLabel) throws SQLException {
return getBigDecimal(findColumn(columnLabel));
}
//---------------------------------------------------------------------
// Traversal/Positioning
//---------------------------------------------------------------------
Retrieves whether the cursor is before the first row in
this ResultSet
object.
(JDBC4 Clarification:)
Note:Support for the isBeforeFirst
method
is optional for ResultSet
s with a result
set type of TYPE_FORWARD_ONLY
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: true
if the cursor is before the first row;
false
if the cursor is at any other position or the
result set contains no rowsSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves whether the cursor is before the first row in
* this <code>ResultSet</code> object.
* <p>
* (JDBC4 Clarification:) <p>
* <strong>Note:</strong>Support for the <code>isBeforeFirst</code> method
* is optional for <code>ResultSet</code>s with a result
* set type of <code>TYPE_FORWARD_ONLY</code>
* <!-- end generic documentation -->
*
* @return <code>true</code> if the cursor is before the first row;
* <code>false</code> if the cursor is at any other position or the
* result set contains no rows
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean isBeforeFirst() throws SQLException {
checkClosed();
if (isOnInsertRow) {
return false;
}
return navigator.isBeforeFirst();
}
Retrieves whether the cursor is after the last row in
this ResultSet
object.
(JDBC4 Clarification:)
Note:Support for the isAfterLast
method
is optional for ResultSet
s with a result
set type of TYPE_FORWARD_ONLY
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: true
if the cursor is after the last row;
false
if the cursor is at any other position or the
result set contains no rowsSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves whether the cursor is after the last row in
* this <code>ResultSet</code> object.
* <p>
* (JDBC4 Clarification:)<p>
* <strong>Note:</strong>Support for the <code>isAfterLast</code> method
* is optional for <code>ResultSet</code>s with a result
* set type of <code>TYPE_FORWARD_ONLY</code>
* <!-- end generic documentation -->
*
* @return <code>true</code> if the cursor is after the last row;
* <code>false</code> if the cursor is at any other position or the
* result set contains no rows
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean isAfterLast() throws SQLException {
// At afterLast condition exists when resultset has been traversed and
// the current row is null. iCurrentRow should also be set to
// afterlast but no need to test
checkClosed();
if (isOnInsertRow) {
return false;
}
return navigator.isAfterLast();
}
Retrieves whether the cursor is on the first row of
this ResultSet
object.
(JDBC4 Clarification:)
Note:Support for the isFirst
method
is optional for ResultSet
s with a result
set type of TYPE_FORWARD_ONLY
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: true
if the cursor is on the first row;
false
otherwiseSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves whether the cursor is on the first row of
* this <code>ResultSet</code> object.
* <p>
* (JDBC4 Clarification:) <p>
* <strong>Note:</strong>Support for the <code>isFirst</code> method
* is optional for <code>ResultSet</code>s with a result
* set type of <code>TYPE_FORWARD_ONLY</code>
* <!-- end generic documentation -->
*
* @return <code>true</code> if the cursor is on the first row;
* <code>false</code> otherwise
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean isFirst() throws SQLException {
checkClosed();
if (isOnInsertRow) {
return false;
}
return navigator.isFirst();
}
Retrieves whether the cursor is on the last row of
this ResultSet
object.
Note: Calling the method isLast
may be expensive
because the JDBC driver
might need to fetch ahead one row in order to determine
whether the current row is the last row in the result set.
(JDBC4 Clarification:)
Note: Support for the isLast
method
is optional for ResultSet
s with a result
set type of TYPE_FORWARD_ONLY
Throws: - SQLException – if a database access error occurs or this method is
called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: true
if the cursor is on the last row;
false
otherwiseSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves whether the cursor is on the last row of
* this <code>ResultSet</code> object.
* <strong>Note:</strong> Calling the method <code>isLast</code> may be expensive
* because the JDBC driver
* might need to fetch ahead one row in order to determine
* whether the current row is the last row in the result set.
* <p>
* (JDBC4 Clarification:) <p>
* <strong>Note:</strong> Support for the <code>isLast</code> method
* is optional for <code>ResultSet</code>s with a result
* set type of <code>TYPE_FORWARD_ONLY</code>
* <!-- end generic documentation -->
*
* @return <code>true</code> if the cursor is on the last row;
* <code>false</code> otherwise
* @exception SQLException if a database access error occurs or this method is
* called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean isLast() throws SQLException {
checkClosed();
if (isOnInsertRow) {
return false;
}
return navigator.isLast();
}
Moves the cursor to the front of
this ResultSet
object, just before the
first row. This method has no effect if the result set contains no rows.
Throws: - SQLException – if a database access error
occurs, this method is called on a closed result set or the
result set type is
TYPE_FORWARD_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor to the front of
* this <code>ResultSet</code> object, just before the
* first row. This method has no effect if the result set contains no rows.
* <!-- end generic documentation -->
*
* @exception SQLException if a database access error
* occurs, this method is called on a closed result set or the
* result set type is <code>TYPE_FORWARD_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void beforeFirst() throws SQLException {
checkClosed();
checkNotForwardOnly();
if (isOnInsertRow || isRowUpdated) {
throw JDBCUtil.sqlExceptionSQL(ErrorCode.X_24513);
}
navigator.beforeFirst();
}
Moves the cursor to the end of
this ResultSet
object, just after the
last row. This method has no effect if the result set contains no rows.
Throws: - SQLException – if a database access error
occurs, this method is called on a closed result set
or the result set type is
TYPE_FORWARD_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor to the end of
* this <code>ResultSet</code> object, just after the
* last row. This method has no effect if the result set contains no rows.
* <!-- end generic documentation -->
*
* @exception SQLException if a database access error
* occurs, this method is called on a closed result set
* or the result set type is <code>TYPE_FORWARD_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void afterLast() throws SQLException {
checkClosed();
checkNotForwardOnly();
if (isOnInsertRow || isRowUpdated) {
throw JDBCUtil.sqlExceptionSQL(ErrorCode.X_24513);
}
navigator.afterLast();
}
Moves the cursor to the first row in
this ResultSet
object.
Throws: - SQLException – if a database access error
occurs, this method is called on a closed result set
or the result set type is
TYPE_FORWARD_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: true
if the cursor is on a valid row;
false
if there are no rows in the result setSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor to the first row in
* this <code>ResultSet</code> object.
* <!-- end generic documentation -->
*
* @return <code>true</code> if the cursor is on a valid row;
* <code>false</code> if there are no rows in the result set
* @exception SQLException if a database access error
* occurs, this method is called on a closed result set
* or the result set type is <code>TYPE_FORWARD_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean first() throws SQLException {
checkClosed();
checkNotForwardOnly();
if (isOnInsertRow || isRowUpdated) {
throw JDBCUtil.sqlExceptionSQL(ErrorCode.X_24513);
}
return navigator.first();
}
Moves the cursor to the last row in
this ResultSet
object.
Throws: - SQLException – if a database access error
occurs, this method is called on a closed result set
or the result set type is
TYPE_FORWARD_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: true
if the cursor is on a valid row;
false
if there are no rows in the result setSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor to the last row in
* this <code>ResultSet</code> object.
* <!-- end generic documentation -->
*
* @return <code>true</code> if the cursor is on a valid row;
* <code>false</code> if there are no rows in the result set
* @exception SQLException if a database access error
* occurs, this method is called on a closed result set
* or the result set type is <code>TYPE_FORWARD_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean last() throws SQLException {
checkClosed();
checkNotForwardOnly();
if (isOnInsertRow || isRowUpdated) {
throw JDBCUtil.sqlExceptionSQL(ErrorCode.X_24513);
}
return navigator.last();
}
Retrieves the current row number. The first row is number 1, the
second number 2, and so on.
(JDBC4 Clarification:)
Note:Support for the getRow
method
is optional for ResultSet
s with a result
set type of TYPE_FORWARD_ONLY
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the current row number; 0
if there is no current row Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the current row number. The first row is number 1, the
* second number 2, and so on.
* <p>
* (JDBC4 Clarification:) <p>
* <strong>Note:</strong>Support for the <code>getRow</code> method
* is optional for <code>ResultSet</code>s with a result
* set type of <code>TYPE_FORWARD_ONLY</code>
* <!-- end generic documentation -->
*
* @return the current row number; <code>0</code> if there is no current row
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public int getRow() throws SQLException {
checkClosed();
if (navigator.isAfterLast()) {
return 0;
}
return navigator.getRowNumber() + 1;
}
Moves the cursor to the given row number in
this ResultSet
object.
If the row number is positive, the cursor moves to
the given row number with respect to the
beginning of the result set. The first row is row 1, the second
is row 2, and so on.
If the given row number is negative, the cursor moves to
an absolute row position with respect to
the end of the result set. For example, calling the method
absolute(-1)
positions the
cursor on the last row; calling the method absolute(-2)
moves the cursor to the next-to-last row, and so on.
An attempt to position the cursor beyond the first/last row in
the result set leaves the cursor before the first row or after
the last row.
Note: Calling absolute(1)
is the same
as calling first()
. Calling absolute(-1)
is the same as calling last()
.
Params: - row – the number of the row to which the cursor should move.
A positive number indicates the row number counting from the
beginning of the result set; a negative number indicates the
row number counting from the end of the result set
Throws: - SQLException – if a database access error
occurs, this method is called on a closed result set
or the result set type is
TYPE_FORWARD_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: true
if the cursor is moved to a position in this
ResultSet
object;
false
if the cursor is before the first row or after the
last rowSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor to the given row number in
* this <code>ResultSet</code> object.
*
* <p>If the row number is positive, the cursor moves to
* the given row number with respect to the
* beginning of the result set. The first row is row 1, the second
* is row 2, and so on.
*
* <p>If the given row number is negative, the cursor moves to
* an absolute row position with respect to
* the end of the result set. For example, calling the method
* <code>absolute(-1)</code> positions the
* cursor on the last row; calling the method <code>absolute(-2)</code>
* moves the cursor to the next-to-last row, and so on.
*
* <p>An attempt to position the cursor beyond the first/last row in
* the result set leaves the cursor before the first row or after
* the last row.
*
* <p><B>Note:</B> Calling <code>absolute(1)</code> is the same
* as calling <code>first()</code>. Calling <code>absolute(-1)</code>
* is the same as calling <code>last()</code>.
* <!-- end generic documentation -->
*
* @param row the number of the row to which the cursor should move.
* A positive number indicates the row number counting from the
* beginning of the result set; a negative number indicates the
* row number counting from the end of the result set
* @return <code>true</code> if the cursor is moved to a position in this
* <code>ResultSet</code> object;
* <code>false</code> if the cursor is before the first row or after the
* last row
* @exception SQLException if a database access error
* occurs, this method is called on a closed result set
* or the result set type is <code>TYPE_FORWARD_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean absolute(int row) throws SQLException {
checkClosed();
checkNotForwardOnly();
if (isOnInsertRow || isRowUpdated) {
throw JDBCUtil.sqlExceptionSQL(ErrorCode.X_24513);
}
if (row > 0) {
row--;
} else if (row == 0) {
return navigator.beforeFirst();
} else {
row += navigator.getSize();
if (row < 0) {
navigator.beforeFirst();
return false;
}
}
return navigator.absolute(row);
}
Moves the cursor a relative number of rows, either positive or negative.
Attempting to move beyond the first/last row in the
result set positions the cursor before/after the
the first/last row. Calling relative(0)
is valid, but does
not change the cursor position.
Note: Calling the method relative(1)
is identical to calling the method next()
and
calling the method relative(-1)
is identical
to calling the method previous()
.
Params: - rows – an
int
specifying the number of rows to
move from the current row; a positive number moves the cursor
forward; a negative number moves the cursor backward
Throws: - SQLException – if a database access error occurs, this method
is called on a closed result set,
there is no current row, or the result set type is
TYPE_FORWARD_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: true
if the cursor is on a row;
false
otherwiseSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor a relative number of rows, either positive or negative.
* Attempting to move beyond the first/last row in the
* result set positions the cursor before/after the
* the first/last row. Calling <code>relative(0)</code> is valid, but does
* not change the cursor position.
*
* <p>Note: Calling the method <code>relative(1)</code>
* is identical to calling the method <code>next()</code> and
* calling the method <code>relative(-1)</code> is identical
* to calling the method <code>previous()</code>.
* <!-- end generic documentation -->
*
* @param rows an <code>int</code> specifying the number of rows to
* move from the current row; a positive number moves the cursor
* forward; a negative number moves the cursor backward
* @return <code>true</code> if the cursor is on a row;
* <code>false</code> otherwise
* @exception SQLException if a database access error occurs, this method
* is called on a closed result set,
* there is no current row, or the result set type is
* <code>TYPE_FORWARD_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean relative(int rows) throws SQLException {
checkClosed();
checkNotForwardOnly();
if (isOnInsertRow || isRowUpdated) {
throw JDBCUtil.sqlExceptionSQL(ErrorCode.X_24513);
}
return navigator.relative(rows);
}
Moves the cursor to the previous row in this
ResultSet
object.
(JDBC4 clarification:)
When a call to the previous
method returns false
,
the cursor is positioned before the first row. Any invocation of a
ResultSet
method which requires a current row will result in a
SQLException
being thrown.
(JDBC4 clarification:)
If an input stream is open for the current row, a call to the method
previous
will implicitly close it. A ResultSet
object's warning change is cleared when a new row is read.
Throws: - SQLException – if a database access error
occurs; this method is called on a closed result set
or the result set type is
TYPE_FORWARD_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: (JDBC4 clarification:) true
if the cursor is now positioned on a valid row;
false
if the cursor is positioned before the first row Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor to the previous row in this
* <code>ResultSet</code> object.
* <p>
* (JDBC4 clarification:)
* When a call to the <code>previous</code> method returns <code>false</code>,
* the cursor is positioned before the first row. Any invocation of a
* <code>ResultSet</code> method which requires a current row will result in a
* <code>SQLException</code> being thrown.
* <p>
* (JDBC4 clarification:)
* If an input stream is open for the current row, a call to the method
* <code>previous</code> will implicitly close it. A <code>ResultSet</code>
* object's warning change is cleared when a new row is read.
* <p>
* <!-- end generic documentation -->
*
* @return (JDBC4 clarification:) <code>true</code> if the cursor is now positioned on a valid row;
* <code>false</code> if the cursor is positioned before the first row
* @exception SQLException if a database access error
* occurs; this method is called on a closed result set
* or the result set type is <code>TYPE_FORWARD_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public boolean previous() throws SQLException {
checkClosed();
checkNotForwardOnly();
if (isOnInsertRow || isRowUpdated) {
throw JDBCUtil.sqlExceptionSQL(ErrorCode.X_24513);
}
rootWarning = null;
return navigator.previous();
}
//---------------------------------------------------------------------
// Properties
//---------------------------------------------------------------------
Gives a hint as to the direction in which the rows in this
ResultSet
object will be processed.
The initial value is determined by the
Statement
object
that produced this ResultSet
object.
The fetch direction may be changed at any time.
HSQLDB-Specific Information:
HSQLDB does not need this hint. However, as mandated by the JDBC standard,
an SQLException is thrown if the result set type is TYPE_FORWARD_ONLY
and a fetch direction other than FETCH_FORWARD is requested.
Params: - direction – an
int
specifying the suggested
fetch direction; one of ResultSet.FETCH_FORWARD
,
ResultSet.FETCH_REVERSE
, or
ResultSet.FETCH_UNKNOWN
Throws: - SQLException – if a database access error occurs; this
method is called on a closed result set or
the result set type is
TYPE_FORWARD_ONLY
and the fetch
direction is not FETCH_FORWARD
See Also: Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Gives a hint as to the direction in which the rows in this
* <code>ResultSet</code> object will be processed.
* The initial value is determined by the
* <code>Statement</code> object
* that produced this <code>ResultSet</code> object.
* The fetch direction may be changed at any time.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not need this hint. However, as mandated by the JDBC standard,
* an SQLException is thrown if the result set type is TYPE_FORWARD_ONLY
* and a fetch direction other than FETCH_FORWARD is requested. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param direction an <code>int</code> specifying the suggested
* fetch direction; one of <code>ResultSet.FETCH_FORWARD</code>,
* <code>ResultSet.FETCH_REVERSE</code>, or
* <code>ResultSet.FETCH_UNKNOWN</code>
* @exception SQLException if a database access error occurs; this
* method is called on a closed result set or
* the result set type is <code>TYPE_FORWARD_ONLY</code> and the fetch
* direction is not <code>FETCH_FORWARD</code>
* @since JDK 1.2
* @see JDBCStatement#setFetchDirection
* @see #getFetchDirection
*/
public void setFetchDirection(int direction) throws SQLException {
checkClosed();
switch (direction) {
case ResultSet.FETCH_FORWARD : {
break;
}
case ResultSet.FETCH_REVERSE : {
checkNotForwardOnly();
break;
}
case ResultSet.FETCH_UNKNOWN : {
checkNotForwardOnly();
break;
}
default : {
throw JDBCUtil.notSupported();
}
}
}
Retrieves the fetch direction for this
ResultSet
object.
HSQLDB-Specific Information:
HSQLDB does not depend on fetch direction and always returns
FETCH_FORWARD
, but the value has no real meaning.
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
See Also: Returns: the current fetch direction for this ResultSet
object Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the fetch direction for this
* <code>ResultSet</code> object.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not depend on fetch direction and always returns
* <code>FETCH_FORWARD</code>, but the value has no real meaning. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @return the current fetch direction for this <code>ResultSet</code> object
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
* @see #setFetchDirection
*/
public int getFetchDirection() throws SQLException {
checkClosed();
return ResultSet.FETCH_FORWARD;
}
Gives the JDBC driver a hint as to the number of rows that should
be fetched from the database when more rows are needed for this
ResultSet
object.
If the fetch size specified is zero, the JDBC driver
ignores the value and is free to make its own best guess as to what
the fetch size should be. The default value is set by the
Statement
object
that created the result set. The fetch size may be changed at any time.
HSQLDB-Specific Information:
HSQLDB may not build and return a result set as a
whole. Therefore the supplied, non-zero, fetch size value is used for
some ResultSet objects.
Params: - rows – the number of rows to fetch
Throws: - SQLException – if a database access error occurs; this method (JDBC4 Clarification:) is called on a closed result set or the (JDBC4 clarification:) condition
rows >= 0
is not satisfied
See Also: Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Gives the JDBC driver a hint as to the number of rows that should
* be fetched from the database when more rows are needed for this
* <code>ResultSet</code> object.
* If the fetch size specified is zero, the JDBC driver
* ignores the value and is free to make its own best guess as to what
* the fetch size should be. The default value is set by the
* <code>Statement</code> object
* that created the result set. The fetch size may be changed at any time.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB may not build and return a result set as a
* whole. Therefore the supplied, non-zero, fetch size value is used for
* some ResultSet objects.
* </div>
* <!-- end release-specific documentation -->
*
* @param rows the number of rows to fetch
* @exception SQLException if a database access error occurs; this method
* (JDBC4 Clarification:)
* is called on a closed result set or the
* (JDBC4 clarification:)
* condition {@code rows >= 0} is not satisfied
* @since JDK 1.2
* @see #getFetchSize
* @see JDBCStatement#setFetchSize
* @see JDBCStatement#getFetchSize
*/
public void setFetchSize(int rows) throws SQLException {
if (rows < 0) {
throw JDBCUtil.outOfRangeArgument();
}
}
Retrieves the fetch size for this
ResultSet
object.
HSQLDB-Specific Information:
HSQLDB may not build and return a result set as a
whole. The actual fetch size for this result set is returned.
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
See Also: Returns: the current fetch size for this ResultSet
object Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the fetch size for this
* <code>ResultSet</code> object.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB may not build and return a result set as a
* whole. The actual fetch size for this result set is returned.
* </div>
* <!-- end release-specific documentation -->
*
* @return the current fetch size for this <code>ResultSet</code> object
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
* @see #setFetchSize
* @see JDBCStatement#getFetchSize
* @see JDBCStatement#setFetchSize
*/
public int getFetchSize() throws SQLException {
checkClosed();
return fetchSize;
}
Retrieves the type of this ResultSet
object.
The type is determined by the Statement
object
that created the result set.
HSQLDB-Specific Information:
HSQLDB accurately
reports the actual runtime scrollability of this result set instance.
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,
or ResultSet.TYPE_SCROLL_SENSITIVE
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the type of this <code>ResultSet</code> object.
* The type is determined by the <code>Statement</code> object
* that created the result set.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB accurately
* reports the actual runtime scrollability of this result set instance.
* </div>
* <!-- end release-specific documentation -->
*
* @return <code>ResultSet.TYPE_FORWARD_ONLY</code>,
* <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>,
* or <code>ResultSet.TYPE_SCROLL_SENSITIVE</code>
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public int getType() throws SQLException {
checkClosed();
return ResultProperties.getJDBCScrollability(rsProperties);
}
Retrieves the concurrency mode of this ResultSet
object.
The concurrency used is determined by the
Statement
object that created the result set.
HSQLDB-Specific Information:
HSQLDB supports updatable result sets and accurately reports the actual
runtime concurrency of this result set instance.
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: the concurrency type, either
ResultSet.CONCUR_READ_ONLY
or ResultSet.CONCUR_UPDATABLE
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the concurrency mode of this <code>ResultSet</code> object.
* The concurrency used is determined by the
* <code>Statement</code> object that created the result set.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports updatable result sets and accurately reports the actual
* runtime concurrency of this result set instance.
* </div>
* <!-- end release-specific documentation -->
*
* @return the concurrency type, either
* <code>ResultSet.CONCUR_READ_ONLY</code>
* or <code>ResultSet.CONCUR_UPDATABLE</code>
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public int getConcurrency() throws SQLException {
checkClosed();
return ResultProperties.getJDBCConcurrency(rsProperties);
}
//---------------------------------------------------------------------
// Updates
//---------------------------------------------------------------------
Retrieves whether the current row has been updated. The value returned
depends on whether or not the result set can detect updates.
HSQLDB-Specific Information:
HSQLDB supports updatable result sets and accurately reports the actual
value.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
See Also: Returns: true
if the current row is detected to
have been visibly updated by the owner or another; false
otherwiseSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves whether the current row has been updated. The value returned
* depends on whether or not the result set can detect updates.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports updatable result sets and accurately reports the actual
* value.
* </div>
* <!-- end release-specific documentation -->
*
* @return <code>true</code> if the current row is detected to
* have been visibly updated by the owner or another; <code>false</code> otherwise
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @see JDBCDatabaseMetaData#updatesAreDetected
* @since JDK 1.2
*/
public boolean rowUpdated() throws SQLException {
checkClosed();
return isRowUpdated;
}
Retrieves whether the current row has had an insertion.
The value returned depends on whether or not this
ResultSet
object can detect visible inserts.
HSQLDB-Specific Information:
HSQLDB supports updatable result sets and accurately reports the actual
value.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
See Also: Returns: true
if the current row is detected to
have been inserted; false
otherwiseSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves whether the current row has had an insertion.
* The value returned depends on whether or not this
* <code>ResultSet</code> object can detect visible inserts.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports updatable result sets and accurately reports the actual
* value.
* </div>
* <!-- end release-specific documentation -->
*
* @return <code>true</code> if the current row is detected to
* have been inserted; <code>false</code> otherwise
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @see JDBCDatabaseMetaData#insertsAreDetected
* @since JDK 1.2
*/
public boolean rowInserted() throws SQLException {
checkClosed();
return false;
}
Retrieves whether a row has been deleted. A deleted row may leave
a visible "hole" in a result set. This method can be used to
detect holes in a result set. The value returned depends on whether
or not this ResultSet
object can detect deletions.
(JDBC4 Clarification:)
Note: Support for the rowDeleted
method is optional with a result set
concurrency of CONCUR_READ_ONLY
HSQLDB-Specific Information:
HSQLDB supports updatable result sets and accurately reports the actual
value.
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
See Also: Returns: true
if the current row is detected to
have been deleted by the owner or another; false
otherwiseSince: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves whether a row has been deleted. A deleted row may leave
* a visible "hole" in a result set. This method can be used to
* detect holes in a result set. The value returned depends on whether
* or not this <code>ResultSet</code> object can detect deletions.
* <p>
* (JDBC4 Clarification:) <p>
* <strong>Note:</strong> Support for the <code>rowDeleted</code> method is optional with a result set
* concurrency of <code>CONCUR_READ_ONLY</code>
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports updatable result sets and accurately reports the actual
* value.
* </div>
* <!-- end release-specific documentation -->
* @return <code>true</code> if the current row is detected to
* have been deleted by the owner or another; <code>false</code> otherwise
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @see JDBCDatabaseMetaData#deletesAreDetected
* @since JDK 1.2
*/
public boolean rowDeleted() throws SQLException {
checkClosed();
return false;
}
(JDBC4 clarification:)
Updates the designated column with a null
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* (JDBC4 clarification:)
* Updates the designated column with a <code>null</code> value.
*
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code>
* or <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateNull(int columnIndex) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, null);
}
Updates the designated column with a boolean
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>boolean</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateBoolean(int columnIndex, boolean x) throws SQLException {
Boolean value = x ? Boolean.TRUE
: Boolean.FALSE;
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, value);
}
Updates the designated column with a byte
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>byte</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateByte(int columnIndex, byte x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setIntParameter(columnIndex, x);
}
Updates the designated column with a short
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>short</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateShort(int columnIndex, short x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setIntParameter(columnIndex, x);
}
Updates the designated column with an int
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with an <code>int</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateInt(int columnIndex, int x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setIntParameter(columnIndex, x);
}
Updates the designated column with a long
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>long</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateLong(int columnIndex, long x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setLongParameter(columnIndex, x);
}
Updates the designated column with a float
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>float</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateFloat(int columnIndex, float x) throws SQLException {
Double value = Double.valueOf(x);
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, value);
}
Updates the designated column with a double
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>double</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateDouble(int columnIndex, double x) throws SQLException {
Double value = Double.valueOf(x);
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, value);
}
Updates the designated column with a java.math.BigDecimal
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.math.BigDecimal</code>
* value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateBigDecimal(int columnIndex,
BigDecimal x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, x);
}
Updates the designated column with a String
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>String</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateString(int columnIndex, String x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, x);
}
Updates the designated column with a byte
array value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>byte</code> array value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateBytes(int columnIndex, byte[] x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, x);
}
Updates the designated column with a java.sql.Date
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Date</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateDate(int columnIndex, Date x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, x);
}
Updates the designated column with a java.sql.Time
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Time</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateTime(int columnIndex, Time x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, x);
}
Updates the designated column with a java.sql.Timestamp
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Timestamp</code>
* value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateTimestamp(int columnIndex,
Timestamp x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, x);
}
(JDBC4 clarification:)
Updates the designated column with an ascii stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* (JDBC4 clarification:)
* Updates the designated column with an ascii stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateAsciiStream(int columnIndex, java.io.InputStream x,
int length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setAsciiStream(columnIndex, x, length);
}
(JDBC4 clarification:)
Updates the designated column with a binary stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* (JDBC4 clarification:)
* Updates the designated column with a binary stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateBinaryStream(int columnIndex, java.io.InputStream x,
int length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setBinaryStream(columnIndex, x, length);
}
(JDBC4 clarification:)
Updates the designated column with a character stream value, which will have
the specified number of (CHECKME: characters?) bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* (JDBC4 clarification:)
* Updates the designated column with a character stream value, which will have
* the specified number of (CHECKME: characters?) bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateCharacterStream(int columnIndex, java.io.Reader x,
int length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setCharacterStream(columnIndex, x, length);
}
Updates the designated column with an Object
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
(JDBC clarification:)
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
Reader
then the reader must contain the number of characters specified
by scaleOrLength. If these conditions are not true the driver will generate a
SQLException
when the statement is executed.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- scaleOrLength – for an object of
java.math.BigDecimal
,
this is the number of digits after the decimal point. For
Java Object types InputStream
and Reader
,
this is the length
of the data in the stream or reader. For all other types,
this value will be ignored.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with an <code>Object</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <p>
* (JDBC clarification:)
* If the second argument is an <code>InputStream</code> then the stream must contain
* the number of bytes specified by scaleOrLength. If the second argument is a
* <code>Reader</code> then the reader must contain the number of characters specified
* by scaleOrLength. If these conditions are not true the driver will generate a
* <code>SQLException</code> when the statement is executed.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param scaleOrLength for an object of <code>java.math.BigDecimal</code> ,
* this is the number of digits after the decimal point. For
* Java Object types <code>InputStream</code> and <code>Reader</code>,
* this is the length
* of the data in the stream or reader. For all other types,
* this value will be ignored.
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateObject(int columnIndex, Object x,
int scaleOrLength) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setObject(columnIndex, x, 0, scaleOrLength);
}
Updates the designated column with an Object
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with an <code>Object</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateObject(int columnIndex, Object x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, x);
}
Updates the designated column with a null
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>null</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateNull(String columnLabel) throws SQLException {
updateNull(findColumn(columnLabel));
}
Updates the designated column with a boolean
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>boolean</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateBoolean(String columnLabel,
boolean x) throws SQLException {
updateBoolean(findColumn(columnLabel), x);
}
Updates the designated column with a byte
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>byte</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateByte(String columnLabel, byte x) throws SQLException {
updateByte(findColumn(columnLabel), x);
}
Updates the designated column with a short
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>short</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateShort(String columnLabel, short x) throws SQLException {
updateShort(findColumn(columnLabel), x);
}
Updates the designated column with an int
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with an <code>int</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateInt(String columnLabel, int x) throws SQLException {
updateInt(findColumn(columnLabel), x);
}
Updates the designated column with a long
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>long</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateLong(String columnLabel, long x) throws SQLException {
updateLong(findColumn(columnLabel), x);
}
Updates the designated column with a float
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>float </code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateFloat(String columnLabel, float x) throws SQLException {
updateFloat(findColumn(columnLabel), x);
}
Updates the designated column with a double
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>double</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateDouble(String columnLabel,
double x) throws SQLException {
updateDouble(findColumn(columnLabel), x);
}
Updates the designated column with a java.sql.BigDecimal
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.BigDecimal</code>
* value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateBigDecimal(String columnLabel,
BigDecimal x) throws SQLException {
updateBigDecimal(findColumn(columnLabel), x);
}
Updates the designated column with a String
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>String</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateString(String columnLabel,
String x) throws SQLException {
updateString(findColumn(columnLabel), x);
}
Updates the designated column with a byte array value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a byte array value.
*
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code>
* or <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateBytes(String columnLabel, byte[] x) throws SQLException {
updateBytes(findColumn(columnLabel), x);
}
Updates the designated column with a java.sql.Date
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Date</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateDate(String columnLabel, Date x) throws SQLException {
updateDate(findColumn(columnLabel), x);
}
Updates the designated column with a java.sql.Time
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Time</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateTime(String columnLabel, Time x) throws SQLException {
updateTime(findColumn(columnLabel), x);
}
Updates the designated column with a java.sql.Timestamp
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Timestamp</code>
* value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateTimestamp(String columnLabel,
Timestamp x) throws SQLException {
updateTimestamp(findColumn(columnLabel), x);
}
(JDBC4 clarification:)
Updates the designated column with an ascii stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* (JDBC4 clarification:)
* Updates the designated column with an ascii stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateAsciiStream(String columnLabel, java.io.InputStream x,
int length) throws SQLException {
updateAsciiStream(findColumn(columnLabel), x, length);
}
(JDBC4 clarification:)
Updates the designated column with a binary stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* (JDBC4 clarification:)
* Updates the designated column with a binary stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateBinaryStream(String columnLabel, java.io.InputStream x,
int length) throws SQLException {
updateBinaryStream(findColumn(columnLabel), x, length);
}
(JDBC4 clarification)
Updates the designated column with a character stream value, which will have
the specified number of (CHECKME: characters?) bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- reader – the
java.io.Reader
object containing
the new column value - length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* (JDBC4 clarification)
* Updates the designated column with a character stream value, which will have
* the specified number of (CHECKME: characters?) bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param reader the <code>java.io.Reader</code> object containing
* the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateCharacterStream(String columnLabel,
java.io.Reader reader,
int length) throws SQLException {
updateCharacterStream(findColumn(columnLabel), reader, length);
}
Updates the designated column with an Object
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
(JDBC4 Clarification:)
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
Reader
then the reader must contain the number of characters specified
by scaleOrLength. If these conditions are not true the driver will generate a
SQLException
when the statement is executed.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
- scaleOrLength – for an object of
java.math.BigDecimal
,
this is the number of digits after the decimal point. For
Java Object types InputStream
and Reader
,
this is the length
of the data in the stream or reader. For all other types,
this value will be ignored.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with an <code>Object</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <p>
* (JDBC4 Clarification:)
* If the second argument is an <code>InputStream</code> then the stream must contain
* the number of bytes specified by scaleOrLength. If the second argument is a
* <code>Reader</code> then the reader must contain the number of characters specified
* by scaleOrLength. If these conditions are not true the driver will generate a
* <code>SQLException</code> when the statement is executed.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @param scaleOrLength for an object of <code>java.math.BigDecimal</code> ,
* this is the number of digits after the decimal point. For
* Java Object types <code>InputStream</code> and <code>Reader</code>,
* this is the length
* of the data in the stream or reader. For all other types,
* this value will be ignored.
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateObject(String columnLabel, Object x,
int scaleOrLength) throws SQLException {
updateObject(findColumn(columnLabel), x, scaleOrLength);
}
Updates the designated column with an Object
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the designated column with an <code>Object</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateObject(String columnLabel,
Object x) throws SQLException {
updateObject(findColumn(columnLabel), x);
}
Inserts the contents of the insert row into this
ResultSet
object and into the database.
The cursor must be on the insert row when this method is called.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
,
this method is called on a closed result set,
if this method is called when the cursor is not on the insert row,
or if not all of non-nullable columns in
the insert row have been given a non-null value - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Inserts the contents of the insert row into this
* <code>ResultSet</code> object and into the database.
* The cursor must be on the insert row when this method is called.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>,
* this method is called on a closed result set,
* if this method is called when the cursor is not on the insert row,
* or if not all of non-nullable columns in
* the insert row have been given a non-null value
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void insertRow() throws SQLException {
performInsert();
}
Updates the underlying database with the new contents of the
current row of this ResultSet
object.
This method cannot be called when the cursor is on the insert row.
HSQLDB-Specific Information:
HSQLDB supports this feature.
After updating any values in the current row, it is not possible to
move the cursor position without calling this method, or alternatively
calling cancelRowUpdates() to abandon the row update.
Throws: - SQLException – if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
;
this method is called on a closed result set or
if this method is called when the cursor is on the insert row - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Updates the underlying database with the new contents of the
* current row of this <code>ResultSet</code> object.
* This method cannot be called when the cursor is on the insert row.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
*
* After updating any values in the current row, it is not possible to
* move the cursor position without calling this method, or alternatively
* calling cancelRowUpdates() to abandon the row update.
* </div>
* <!-- end release-specific documentation -->
*
* @exception SQLException if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>;
* this method is called on a closed result set or
* if this method is called when the cursor is on the insert row
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void updateRow() throws SQLException {
performUpdate();
}
Deletes the current row from this ResultSet
object
and from the underlying database. This method cannot be called when
the cursor is on the insert row.
HSQLDB-Specific Information:
HSQLDB supports this feature.
After a successful call to this method, the row is deleted.
Throws: - SQLException – if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
;
this method is called on a closed result set
or if this method is called when the cursor is on the insert row - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Deletes the current row from this <code>ResultSet</code> object
* and from the underlying database. This method cannot be called when
* the cursor is on the insert row.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
*
* After a successful call to this method, the row is deleted.
* </div>
* <!-- end release-specific documentation -->
*
* @exception SQLException if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>;
* this method is called on a closed result set
* or if this method is called when the cursor is on the insert row
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void deleteRow() throws SQLException {
performDelete();
}
Refreshes the current row with its most recent value in
the database. This method cannot be called when
the cursor is on the insert row.
The refreshRow
method provides a way for an
application to
explicitly tell the JDBC driver to refetch a row(s) from the
database. An application may want to call refreshRow
when
caching or prefetching is being done by the JDBC driver to
fetch the latest value of a row from the database. The JDBC driver
may actually refresh multiple rows at once if the fetch size is
greater than one.
All values are refetched subject to the transaction isolation
level and cursor sensitivity. If refreshRow
is called after
calling an updater method, but before calling
the method updateRow
, then the
updates made to the row are lost. Calling the method
refreshRow
frequently will likely slow performance.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Throws: - SQLException – if a database access error
occurs; this method is called on a closed result set;
the result set type is
TYPE_FORWARD_ONLY
or if this
method is called when the cursor is on the insert row - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method or this method is not supported for the specified result
set type and result set concurrency.
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Refreshes the current row with its most recent value in
* the database. This method cannot be called when
* the cursor is on the insert row.
*
* <P>The <code>refreshRow</code> method provides a way for an
* application to
* explicitly tell the JDBC driver to refetch a row(s) from the
* database. An application may want to call <code>refreshRow</code> when
* caching or prefetching is being done by the JDBC driver to
* fetch the latest value of a row from the database. The JDBC driver
* may actually refresh multiple rows at once if the fetch size is
* greater than one.
*
* <P> All values are refetched subject to the transaction isolation
* level and cursor sensitivity. If <code>refreshRow</code> is called after
* calling an updater method, but before calling
* the method <code>updateRow</code>, then the
* updates made to the row are lost. Calling the method
* <code>refreshRow</code> frequently will likely slow performance.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @exception SQLException if a database access error
* occurs; this method is called on a closed result set;
* the result set type is <code>TYPE_FORWARD_ONLY</code> or if this
* method is called when the cursor is on the insert row
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method or this method is not supported for the specified result
* set type and result set concurrency.
* @since JDK 1.2
*/
public void refreshRow() throws SQLException {
clearUpdates();
}
Cancels the updates made to the current row in this
ResultSet
object.
This method may be called after calling an
updater method(s) and before calling
the method updateRow
to roll back
the updates made to a row. If no updates have been made or
updateRow
has already been called, this method has no
effect.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Throws: - SQLException – if a database access error
occurs; this method is called on a closed result set;
the result set concurrency is
CONCUR_READ_ONLY
or if this method is called when the cursor is
on the insert row
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Cancels the updates made to the current row in this
* <code>ResultSet</code> object.
* This method may be called after calling an
* updater method(s) and before calling
* the method <code>updateRow</code> to roll back
* the updates made to a row. If no updates have been made or
* <code>updateRow</code> has already been called, this method has no
* effect.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @exception SQLException if a database access error
* occurs; this method is called on a closed result set;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or if this method is called when the cursor is
* on the insert row
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void cancelRowUpdates() throws SQLException {
clearUpdates();
}
Moves the cursor to the insert row. The current cursor position is
remembered while the cursor is positioned on the insert row.
The insert row is a special row associated with an updatable
result set. It is essentially a buffer where a new row may
be constructed by calling the updater methods prior to
inserting the row into the result set.
Only the updater, getter,
and insertRow
methods may be
called when the cursor is on the insert row. All of the columns in
a result set must be given a value each time this method is
called before calling insertRow
.
An updater method must be called before a
getter method can be called on a column value.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Throws: - SQLException – if a database access error occurs; this
method is called on a closed result set
or the result set concurrency is
CONCUR_READ_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor to the insert row. The current cursor position is
* remembered while the cursor is positioned on the insert row.
*
* The insert row is a special row associated with an updatable
* result set. It is essentially a buffer where a new row may
* be constructed by calling the updater methods prior to
* inserting the row into the result set.
*
* Only the updater, getter,
* and <code>insertRow</code> methods may be
* called when the cursor is on the insert row. All of the columns in
* a result set must be given a value each time this method is
* called before calling <code>insertRow</code>.
* An updater method must be called before a
* getter method can be called on a column value.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @exception SQLException if a database access error occurs; this
* method is called on a closed result set
* or the result set concurrency is <code>CONCUR_READ_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void moveToInsertRow() throws SQLException {
startInsert();
}
Moves the cursor to the remembered cursor position, usually the
current row. This method has no effect if the cursor is not on
the insert row.
HSQLDB-Specific Information:
HSQLDB supports this feature.
Throws: - SQLException – if a database access error occurs, this
method is called on a closed result set
or the result set concurrency is
CONCUR_READ_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Moves the cursor to the remembered cursor position, usually the
* current row. This method has no effect if the cursor is not on
* the insert row.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. <p>
* </div>
* <!-- end release-specific documentation -->
* @exception SQLException if a database access error occurs, this
* method is called on a closed result set
* or the result set concurrency is <code>CONCUR_READ_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public void moveToCurrentRow() throws SQLException {
endInsert();
}
Retrieves the Statement
object that produced this
ResultSet
object.
If the result set was generated some other way, such as by a
DatabaseMetaData
method, this method may return
null
.
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: the Statement
object that produced
this ResultSet
object or null
if the result set was produced some other way Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the <code>Statement</code> object that produced this
* <code>ResultSet</code> object.
* If the result set was generated some other way, such as by a
* <code>DatabaseMetaData</code> method, this method may return
* <code>null</code>.
* <!-- end generic documentation -->
*
* @return the <code>Statement</code> object that produced
* this <code>ResultSet</code> object or <code>null</code>
* if the result set was produced some other way
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public Statement getStatement() throws SQLException {
checkClosed();
return (Statement) statement;
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as an Object
in the Java programming language.
If the value is an SQL NULL
,
the driver returns a Java null
.
This method uses the given Map
object
for the custom mapping of the
SQL structured or distinct type that is being retrieved.
HSQLDB-Specific Information:
HSQLDB supports this feature, but ignores the map.
Params: - columnIndex – the first column is 1, the second is 2, ...
- map – a
java.util.Map
object that contains the mapping
from SQL type names to classes in the Java programming language
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: an Object
in the Java programming language
representing the SQL value Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as an <code>Object</code>
* in the Java programming language.
* If the value is an SQL <code>NULL</code>,
* the driver returns a Java <code>null</code>.
* This method uses the given <code>Map</code> object
* for the custom mapping of the
* SQL structured or distinct type that is being retrieved.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature, but ignores the map. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param map a <code>java.util.Map</code> object that contains the mapping
* from SQL type names to classes in the Java programming language
* @return an <code>Object</code> in the Java programming language
* representing the SQL value
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Object getObject(int columnIndex, Map map) throws SQLException {
return getObject(columnIndex);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a Ref
object
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB does not support this feature; this method always
throws an SQLException
stating that the operation is not
supported.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a Ref
object representing an SQL REF
value Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>Ref</code> object
* in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support this feature; this method always
* throws an <code>SQLException</code> stating that the operation is not
* supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a <code>Ref</code> object representing an SQL <code>REF</code>
* value
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Ref getRef(int columnIndex) throws SQLException {
throw JDBCUtil.notSupported();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a Blob
object
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB 2.0 supports this feature for objects of type BLOB and BINARY.
The Blob returned for BINARY objects is a memory object. The Blob
return for BLOB objects is not held entirely in memory. Its contents are
fetched from the database when its getXXX() methods are called.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a Blob
object representing the SQL
BLOB
value in the specified column Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>Blob</code> object
* in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 2.0 supports this feature for objects of type BLOB and BINARY.
* The Blob returned for BINARY objects is a memory object. The Blob
* return for BLOB objects is not held entirely in memory. Its contents are
* fetched from the database when its getXXX() methods are called. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a <code>Blob</code> object representing the SQL
* <code>BLOB</code> value in the specified column
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Blob getBlob(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
Object o = getColumnInType(columnIndex, sourceType);
if (o == null) {
return null;
}
if (o instanceof BlobDataID) {
if (memoryLobs) {
long length = ((BlobDataID) o).length(session);
if (length > Integer.MAX_VALUE) {
throw JDBCUtil.sqlException(ErrorCode.X_22001);
}
byte[] bytes = ((BlobDataID) o).getBytes(session, 0,
(int) length);
JDBCBlob b = new JDBCBlob(bytes);
return b;
}
JDBCBlobClient blob = new JDBCBlobClient(session, (BlobDataID) o);
if (isUpdatable) {
if (resultMetaData.colIndexes[columnIndex - 1] > 0
&& resultMetaData.columns[columnIndex - 1]
.isWriteable()) {
blob.setWritable(this, columnIndex - 1);
}
}
return blob;
} else if (o instanceof Blob) {
return (Blob) o;
} else if (o instanceof BinaryData) {
byte[] b = getBytes(columnIndex);
return new JDBCBlob(b);
}
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a Clob
object
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB 2.0 supports this feature for objects of type CLOB and
the variations of CHAR.
The Clob returned for CHAR objects is a memory object. The Clob
return for CLOB objects is not held entirely in memory. Its contents are
fetched from the database when its getXXX() methods are called.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a Clob
object representing the SQL
CLOB
value in the specified column Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>Clob</code> object
* in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 2.0 supports this feature for objects of type CLOB and
* the variations of CHAR.
* The Clob returned for CHAR objects is a memory object. The Clob
* return for CLOB objects is not held entirely in memory. Its contents are
* fetched from the database when its getXXX() methods are called. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a <code>Clob</code> object representing the SQL
* <code>CLOB</code> value in the specified column
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Clob getClob(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
Object o = getColumnInType(columnIndex, sourceType);
if (o == null) {
return null;
}
if (o instanceof ClobDataID) {
if (memoryLobs) {
long length = ((ClobDataID) o).length(session);
if (length > Integer.MAX_VALUE) {
throw JDBCUtil.sqlException(ErrorCode.X_22001);
}
String s = ((ClobDataID) o).getSubString(session, 0,
(int) length);
JDBCClob c = new JDBCClob(s);
return c;
}
JDBCClobClient clob = new JDBCClobClient(session, (ClobDataID) o);
if (isUpdatable) {
if (resultMetaData.colIndexes[columnIndex - 1] > 0
&& resultMetaData.columns[columnIndex - 1]
.isWriteable()) {
clob.setWritable(this, columnIndex - 1);
}
}
return clob;
} else if (o instanceof Clob) {
return (Clob) o;
} else if (o instanceof String) {
return new JDBCClob((String) o);
}
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as an Array
object
in the Java programming language.
HSQLDB-Specific Information:
From version 2.0, HSQLDB supports array types.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
Returns: an Array
object representing the SQL
ARRAY
value in the specified column Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as an <code>Array</code> object
* in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* From version 2.0, HSQLDB supports array types.
*
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return an <code>Array</code> object representing the SQL
* <code>ARRAY</code> value in the specified column
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Array getArray(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type type = resultMetaData.columnTypes[columnIndex - 1];
Object[] data = (Object[]) getCurrent()[columnIndex - 1];
if (!type.isArrayType()) {
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
if (trackNull(data)) {
return null;
}
return new JDBCArray(data, type.collectionBaseType(), type,
connection);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as an Object
in the Java programming language.
If the value is an SQL NULL
,
the driver returns a Java null
.
This method uses the specified Map
object for
custom mapping if appropriate.
HSQLDB-Specific Information:
HSQLDB supports this feature. But the Map parameter is ignored.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- map – a
java.util.Map
object that contains the mapping
from SQL type names to classes in the Java programming language
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
Returns: an Object
representing the SQL value in the
specified column Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as an <code>Object</code>
* in the Java programming language.
* If the value is an SQL <code>NULL</code>,
* the driver returns a Java <code>null</code>.
* This method uses the specified <code>Map</code> object for
* custom mapping if appropriate.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB supports this feature. But the Map parameter is ignored.<p>
*
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param map a <code>java.util.Map</code> object that contains the mapping
* from SQL type names to classes in the Java programming language
* @return an <code>Object</code> representing the SQL value in the
* specified column
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Object getObject(String columnLabel, Map map) throws SQLException {
return getObject(findColumn(columnLabel), map);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a Ref
object
in the Java programming language.
HSQLDB-Specific Information:
Including 2.0, HSQLDB does not support reference types; this method
always throws an SQLException
stating that the operation
is not supported.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
Returns: a Ref
object representing the SQL REF
value in the specified column Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>Ref</code> object
* in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* Including 2.0, HSQLDB does not support reference types; this method
* always throws an <code>SQLException</code> stating that the operation
* is not supported.
* </div>
* <!-- end release-specific documentation -->
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return a <code>Ref</code> object representing the SQL <code>REF</code>
* value in the specified column
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Ref getRef(String columnLabel) throws SQLException {
return getRef(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a Blob
object
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB 2.0 supports this feature for objects of type BLOB and BINARY.
The Blob returned for BINARY objects is a memory object. The Blob
return for BLOB objects is not held entirely in memory. Its contents are
fetched from the database when its getXXX() methods are called.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a Blob
object representing the SQL BLOB
value in the specified column Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>Blob</code> object
* in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 2.0 supports this feature for objects of type BLOB and BINARY.
* The Blob returned for BINARY objects is a memory object. The Blob
* return for BLOB objects is not held entirely in memory. Its contents are
* fetched from the database when its getXXX() methods are called. <p>
*
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return a <code>Blob</code> object representing the SQL <code>BLOB</code>
* value in the specified column
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Blob getBlob(String columnLabel) throws SQLException {
return getBlob(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a Clob
object
in the Java programming language.
HSQLDB-Specific Information:
HSQLDB 2.0 supports this feature for objects of type CLOB and
the variations of CHAR.
The Clob returned for CHAR objects is a memory object. The Clob
return for CLOB objects is not held entirely in memory. Its contents are
fetched from the database when its getXXX() methods are called.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
Returns: a Clob
object representing the SQL CLOB
value in the specified column Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>Clob</code> object
* in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 2.0 supports this feature for objects of type CLOB and
* the variations of CHAR.
* The Clob returned for CHAR objects is a memory object. The Clob
* return for CLOB objects is not held entirely in memory. Its contents are
* fetched from the database when its getXXX() methods are called. <p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return a <code>Clob</code> object representing the SQL <code>CLOB</code>
* value in the specified column
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Clob getClob(String columnLabel) throws SQLException {
return getClob(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as an Array
object
in the Java programming language.
HSQLDB-Specific Information:
From version 2.0, HSQLDB supports array types.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: an Array
object representing the SQL ARRAY
value in
the specified column Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as an <code>Array</code> object
* in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* From version 2.0, HSQLDB supports array types.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @return an <code>Array</code> object representing the SQL <code>ARRAY</code> value in
* the specified column
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2
*/
public Array getArray(String columnLabel) throws SQLException {
return getArray(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a java.sql.Date
object
in the Java programming language.
This method uses the given calendar to construct an appropriate millisecond
value for the date if the underlying database does not store
timezone information.
Params: - columnIndex – the first column is 1, the second is 2, ...
- cal – the
java.util.Calendar
object
to use in constructing the date
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: the column value as a java.sql.Date
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming language Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>java.sql.Date</code> object
* in the Java programming language.
* This method uses the given calendar to construct an appropriate millisecond
* value for the date if the underlying database does not store
* timezone information.
* <!-- end generic documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param cal the <code>java.util.Calendar</code> object
* to use in constructing the date
* @return the column value as a <code>java.sql.Date</code> object;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public Date getDate(int columnIndex, Calendar cal) throws SQLException {
TimestampData t = (TimestampData) getColumnInType(columnIndex,
Type.SQL_DATE);
if (t == null) {
return null;
}
long millis = t.getSeconds() * 1000;
if (cal != null) {
millis = HsqlDateTime.convertMillisToCalendar(cal, millis);
}
return new Date(millis);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a java.sql.Date
object
in the Java programming language.
This method uses the given calendar to construct an appropriate millisecond
value for the date if the underlying database does not store
timezone information.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- cal – the
java.util.Calendar
object
to use in constructing the date
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: the column value as a java.sql.Date
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming language Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>java.sql.Date</code> object
* in the Java programming language.
* This method uses the given calendar to construct an appropriate millisecond
* value for the date if the underlying database does not store
* timezone information.
* <!-- end generic documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param cal the <code>java.util.Calendar</code> object
* to use in constructing the date
* @return the column value as a <code>java.sql.Date</code> object;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public Date getDate(String columnLabel, Calendar cal) throws SQLException {
return getDate(findColumn(columnLabel), cal);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a java.sql.Time
object in the Java programming language.
This method uses the given calendar to construct an appropriate millisecond
value for the time if the underlying database does not store
timezone information.
HSQLDB-Specific Information:
The JDBC specification for this method is vague. HSQLDB interprets the
specification as follows:
- If the SQL type of the column is WITH TIME ZONE, then the UTC value
of the returned java.sql.Time object is the UTC of the SQL value without
modification. In other words, the Calendar object is not used.
- If the SQL type of the column is WITHOUT TIME ZONE, then the UTC
value of the returned java.sql.Time is correct for the given Calendar
object.
- If the cal argument is null, it it ignored and the method returns
the same Object as the method without the Calendar parameter.
Params: - columnIndex – the first column is 1, the second is 2, ...
- cal – the
java.util.Calendar
object
to use in constructing the time
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: the column value as a java.sql.Time
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming language Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>java.sql.Time</code>
* object in the Java programming language.
* This method uses the given calendar to construct an appropriate millisecond
* value for the time if the underlying database does not store
* timezone information.
* <!-- end generic documentation -->
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* The JDBC specification for this method is vague. HSQLDB interprets the
* specification as follows:
*
* <ol>
* <li>If the SQL type of the column is WITH TIME ZONE, then the UTC value
* of the returned java.sql.Time object is the UTC of the SQL value without
* modification. In other words, the Calendar object is not used.</li>
* <li>If the SQL type of the column is WITHOUT TIME ZONE, then the UTC
* value of the returned java.sql.Time is correct for the given Calendar
* object.</li>
* <li>If the cal argument is null, it it ignored and the method returns
* the same Object as the method without the Calendar parameter.</li>
* </ol>
* </div>
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param cal the <code>java.util.Calendar</code> object
* to use in constructing the time
* @return the column value as a <code>java.sql.Time</code> object;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public Time getTime(int columnIndex, Calendar cal) throws SQLException {
TimeData t = (TimeData) getColumnInType(columnIndex, Type.SQL_TIME);
if (t == null) {
return null;
}
long millis = DateTimeType.normaliseTime(t.getSeconds()) * 1000L;
if (!resultMetaData.columnTypes[--columnIndex]
.isDateTimeTypeWithZone()) {
Calendar calendar = cal == null ? session.getCalendar()
: cal;
millis = HsqlDateTime.convertMillisToCalendar(calendar, millis);
millis = HsqlDateTime.getNormalisedTime(millis);
}
return new Time(millis);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a java.sql.Time
object
in the Java programming language.
This method uses the given calendar to construct an appropriate millisecond
value for the time if the underlying database does not store
timezone information.
HSQLDB-Specific Information:
The JDBC specification for this method is vague. HSQLDB interprets the
specification as follows:
- If the SQL type of the column is WITH TIME ZONE, then the UTC value
of the returned java.sql.Time object is the UTC of the SQL value without
modification. In other words, the Calendar object is not used.
- If the SQL type of the column is WITHOUT TIME ZONE, then the UTC
value of the returned java.sql.Time is correct for the given Calendar
object.
- If the cal argument is null, it it ignored and the method returns
the same Object as the method without the Calendar parameter.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- cal – the
java.util.Calendar
object
to use in constructing the time
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: the column value as a java.sql.Time
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming language Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>java.sql.Time</code> object
* in the Java programming language.
* This method uses the given calendar to construct an appropriate millisecond
* value for the time if the underlying database does not store
* timezone information.
* <!-- end generic documentation -->
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* The JDBC specification for this method is vague. HSQLDB interprets the
* specification as follows:
*
* <ol>
* <li>If the SQL type of the column is WITH TIME ZONE, then the UTC value
* of the returned java.sql.Time object is the UTC of the SQL value without
* modification. In other words, the Calendar object is not used.</li>
* <li>If the SQL type of the column is WITHOUT TIME ZONE, then the UTC
* value of the returned java.sql.Time is correct for the given Calendar
* object.</li>
* <li>If the cal argument is null, it it ignored and the method returns
* the same Object as the method without the Calendar parameter.</li>
* </ol>
* </div>
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param cal the <code>java.util.Calendar</code> object
* to use in constructing the time
* @return the column value as a <code>java.sql.Time</code> object;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public Time getTime(String columnLabel, Calendar cal) throws SQLException {
return getTime(findColumn(columnLabel), cal);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a java.sql.Timestamp
object
in the Java programming language.
This method uses the given calendar to construct an appropriate millisecond
value for the timestamp if the underlying database does not store
timezone information.
HSQLDB-Specific Information:
The JDBC specification for this method is vague. HSQLDB interprets the
specification as follows:
- If the SQL type of the column is WITH TIME ZONE, then the UTC value
of the returned java.sql.Timestamp object is the UTC of the SQL value
without modification. In other words, the Calendar object is not used.
- If the SQL type of the column is WITHOUT TIME ZONE, then the
UTC value of the returned java.sql.Timestamp will represent the correct
timestamp for the time zone (including daylight saving time) of the given
Calendar object.
- In this case, if the cal argument is null, then the default Calendar
of the JVM is used, which results in the same Object as one returned by the
getTimestamp() methods without the Calendar parameter.
Params: - columnIndex – the first column is 1, the second is 2, ...
- cal – the
java.util.Calendar
object
to use in constructing the timestamp
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: the column value as a java.sql.Timestamp
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming language Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>java.sql.Timestamp</code> object
* in the Java programming language.
* This method uses the given calendar to construct an appropriate millisecond
* value for the timestamp if the underlying database does not store
* timezone information.
* <!-- end generic documentation -->
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* The JDBC specification for this method is vague. HSQLDB interprets the
* specification as follows:
*
* <ol>
* <li>If the SQL type of the column is WITH TIME ZONE, then the UTC value
* of the returned java.sql.Timestamp object is the UTC of the SQL value
* without modification. In other words, the Calendar object is not used.
* </li>
* <li>If the SQL type of the column is WITHOUT TIME ZONE, then the
* UTC value of the returned java.sql.Timestamp will represent the correct
* timestamp for the time zone (including daylight saving time) of the given
* Calendar object. </li>
* <li>In this case, if the cal argument is null, then the default Calendar
* of the JVM is used, which results in the same Object as one returned by the
* getTimestamp() methods without the Calendar parameter.</li>
* </ol>
* </div>
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param cal the <code>java.util.Calendar</code> object
* to use in constructing the timestamp
* @return the column value as a <code>java.sql.Timestamp</code> object;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public Timestamp getTimestamp(int columnIndex,
Calendar cal) throws SQLException {
TimestampData t = (TimestampData) getColumnInType(columnIndex,
Type.SQL_TIMESTAMP);
if (t == null) {
return null;
}
long millis = t.getSeconds() * 1000;
if (!resultMetaData.columnTypes[--columnIndex]
.isDateTimeTypeWithZone()) {
Calendar calendar = cal == null ? session.getCalendar()
: cal;
if (cal != null) {
millis = HsqlDateTime.convertMillisToCalendar(calendar,
millis);
}
}
Timestamp ts = new Timestamp(millis);
ts.setNanos(t.getNanos());
return ts;
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a java.sql.Timestamp
object
in the Java programming language.
This method uses the given calendar to construct an appropriate millisecond
value for the timestamp if the underlying database does not store
timezone information.
HSQLDB-Specific Information:
The JDBC specification for this method is vague. HSQLDB interprets the
specification as follows:
- If the SQL type of the column is WITH TIME ZONE, then the UTC value
of the returned java.sql.Timestamp object is the UTC of the SQL value
without modification. In other words, the Calendar object is not used.
- If the SQL type of the column is WITHOUT TIME ZONE, then the UTC
value of the returned java.sql.Timestamp is correct for the given
Calendar object.
- If the cal argument is null, it it ignored and the method returns
the same Object as the method without the Calendar parameter.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- cal – the
java.util.Calendar
object
to use in constructing the date
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: the column value as a java.sql.Timestamp
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming language Since: JDK 1.2
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>java.sql.Timestamp</code> object
* in the Java programming language.
* This method uses the given calendar to construct an appropriate millisecond
* value for the timestamp if the underlying database does not store
* timezone information.
* <!-- end generic documentation -->
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* The JDBC specification for this method is vague. HSQLDB interprets the
* specification as follows:
*
* <ol>
* <li>If the SQL type of the column is WITH TIME ZONE, then the UTC value
* of the returned java.sql.Timestamp object is the UTC of the SQL value
* without modification. In other words, the Calendar object is not used.
* </li>
* <li>If the SQL type of the column is WITHOUT TIME ZONE, then the UTC
* value of the returned java.sql.Timestamp is correct for the given
* Calendar object.</li>
* <li>If the cal argument is null, it it ignored and the method returns
* the same Object as the method without the Calendar parameter.</li>
* </ol>
* </div>
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param cal the <code>java.util.Calendar</code> object
* to use in constructing the date
* @return the column value as a <code>java.sql.Timestamp</code> object;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.2
*/
public Timestamp getTimestamp(String columnLabel,
Calendar cal) throws SQLException {
return getTimestamp(findColumn(columnLabel), cal);
}
//-------------------------- JDBC 3.0 ----------------------------------------
Retrieves the value of the designated column in the current row
of this ResultSet
object as a java.net.URL
object in the Java programming language.
HSQLDB-Specific Information:
HSQLDB does not support the datalink type; this method
always throws an SQLException
stating that the operation is
not supported.
Params: - columnIndex – the index of the column 1 is the first, 2 is the second,...
Throws: - SQLException – if a database access error occurs; this method
is called on a closed result set or if a URL is malformed
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the column value as a java.net.URL
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming language Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>java.net.URL</code>
* object in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support the datalink type; this method
* always throws an <code>SQLException</code> stating that the operation is
* not supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the index of the column 1 is the first, 2 is the second,...
* @return the column value as a <code>java.net.URL</code> object;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs; this method
* is called on a closed result set or if a URL is malformed
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public java.net.URL getURL(int columnIndex) throws SQLException {
throw JDBCUtil.notSupported();
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a java.net.URL
object in the Java programming language.
HSQLDB-Specific Information:
HSQLDB does not support the datalink type; this method
always throws an SQLException
stating that the operation is
not supported.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
Throws: - SQLException – if a database access error occur; this method
is called on a closed result set or if a URL is malformed
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the column value as a java.net.URL
object;
if the value is SQL NULL
,
the value returned is null
in the Java programming language Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>java.net.URL</code>
* object in the Java programming language.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support the datalink type; this method
* always throws an <code>SQLException</code> stating that the operation is
* not supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @return the column value as a <code>java.net.URL</code> object;
* if the value is SQL <code>NULL</code>,
* the value returned is <code>null</code> in the Java programming language
* @exception SQLException if a database access error occur; this method
* is called on a closed result set or if a URL is malformed
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public java.net.URL getURL(String columnLabel) throws SQLException {
throw JDBCUtil.notSupported();
}
Updates the designated column with a java.sql.Ref
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB does not support reference types; this method
always throws an SQLException
stating that the operation is
not supported.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Ref</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support reference types; this method
* always throws an <code>SQLException</code> stating that the operation is
* not supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public void updateRef(int columnIndex,
java.sql.Ref x) throws SQLException {
throw JDBCUtil.notSupported();
}
Updates the designated column with a java.sql.Ref
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB does not support reference types; this method
always throws an SQLException
stating that the operation is
not supported.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Ref</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support reference types; this method
* always throws an <code>SQLException</code> stating that the operation is
* not supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public void updateRef(String columnLabel,
java.sql.Ref x) throws SQLException {
throw JDBCUtil.notSupported();
}
Updates the designated column with a java.sql.Blob
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB 2.0 supports this feature for columns of type BLOB.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Blob</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 2.0 supports this feature for columns of type BLOB.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public void updateBlob(int columnIndex,
java.sql.Blob x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setBlobParameter(columnIndex, x);
}
Updates the designated column with a java.sql.Blob
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB 2.0 supports this feature for columns of type BLOB.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Blob</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 2.0 supports this feature for columns of type BLOB.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public void updateBlob(String columnLabel,
java.sql.Blob x) throws SQLException {
int columnIndex = findColumn(columnLabel);
updateBlob(columnIndex, x);
}
Updates the designated column with a java.sql.Clob
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB 2.0 supports this feature for columns of type CLOB.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Clob</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 2.0 supports this feature for columns of type CLOB.<p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public void updateClob(int columnIndex,
java.sql.Clob x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setClobParameter(columnIndex, x);
}
Updates the designated column with a java.sql.Clob
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB 2.0 supports this feature for columns of type CLOB.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Clob</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 2.0 supports this feature for columns of type CLOB.<p>
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public void updateClob(String columnLabel,
java.sql.Clob x) throws SQLException {
int columnIndex = findColumn(columnLabel);
updateClob(columnIndex, x);
}
Updates the designated column with a java.sql.Array
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB does not support array types; this method always
throws an SQLException
stating that the operation is not
supported.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Array</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support array types; this method always
* throws an <code>SQLException</code> stating that the operation is not
* supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public void updateArray(int columnIndex,
java.sql.Array x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setParameter(columnIndex, x);
}
Updates the designated column with a java.sql.Array
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
HSQLDB-Specific Information:
HSQLDB does not support array types; this method always
throws an SQLException
stating that the operation is not
supported.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- x – the new column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.4, HSQLDB 1.7.0
/**
* <!-- start generic documentation -->
* Updates the designated column with a <code>java.sql.Array</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support array types; this method always
* throws an <code>SQLException</code> stating that the operation is not
* supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param x the new column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.4, HSQLDB 1.7.0
*/
public void updateArray(String columnLabel,
java.sql.Array x) throws SQLException {
int columnIndex = findColumn(columnLabel);
updateArray(columnIndex, x);
}
//------------------------- JDBC 4.0 -----------------------------------
Retrieves the value of the designated column in the current row of this
ResultSet
object as a java.sql.RowId
object in the Java
programming language.
Params: - columnIndex – the first column is 1, the second 2, ...
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the column value; if the value is a SQL NULL
the
value returned is null
Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row of this
* <code>ResultSet</code> object as a <code>java.sql.RowId</code> object in the Java
* programming language.
*
* @param columnIndex the first column is 1, the second 2, ...
* @return the column value; if the value is a SQL <code>NULL</code> the
* value returned is <code>null</code>
* @throws SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public RowId getRowId(int columnIndex) throws SQLException {
throw JDBCUtil.notSupported();
}
Retrieves the value of the designated column in the current row of this
ResultSet
object as a java.sql.RowId
object in the Java
programming language.
HSQLDB-Specific Information:
HSQLDB does not support the RowId type; this method always
throws an SQLException
stating that the operation is not
supported.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the column value ; if the value is a SQL NULL
the
value returned is null
Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row of this
* <code>ResultSet</code> object as a <code>java.sql.RowId</code> object in the Java
* programming language.
*
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support the RowId type; this method always
* throws an <code>SQLException</code> stating that the operation is not
* supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @return the column value ; if the value is a SQL <code>NULL</code> the
* value returned is <code>null</code>
* @throws SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public RowId getRowId(String columnLabel) throws SQLException {
throw JDBCUtil.notSupported();
}
Updates the designated column with a RowId
value. The updater
methods are used to update column values in the current row or the insert
row. The updater methods do not update the underlying database; instead
the updateRow
or insertRow
methods are called
to update the database.
HSQLDB-Specific Information:
HSQLDB does not support the RowId type; this method always
throws an SQLException
stating that the operation is not
supported.
Params: - columnIndex – the first column is 1, the second 2, ...
- x – the column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a <code>RowId</code> value. The updater
* methods are used to update column values in the current row or the insert
* row. The updater methods do not update the underlying database; instead
* the <code>updateRow</code> or <code>insertRow</code> methods are called
* to update the database.
*
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support the RowId type; this method always
* throws an <code>SQLException</code> stating that the operation is not
* supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnIndex the first column is 1, the second 2, ...
* @param x the column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateRowId(int columnIndex, RowId x) throws SQLException {
throw JDBCUtil.notSupported();
}
Updates the designated column with a RowId
value. The updater
methods are used to update column values in the current row or the insert
row. The updater methods do not update the underlying database; instead
the updateRow
or insertRow
methods are called
to update the database.
HSQLDB-Specific Information:
HSQLDB does not support the RowId type; this method always
throws an SQLException
stating that the operation is not
supported.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- x – the column value
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a <code>RowId</code> value. The updater
* methods are used to update column values in the current row or the insert
* row. The updater methods do not update the underlying database; instead
* the <code>updateRow</code> or <code>insertRow</code> methods are called
* to update the database.
*
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB does not support the RowId type; this method always
* throws an <code>SQLException</code> stating that the operation is not
* supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param x the column value
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateRowId(String columnLabel, RowId x) throws SQLException {
throw JDBCUtil.notSupported();
}
Retrieves the holdability of this ResultSet
object
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
Returns: either ResultSet.HOLD_CURSORS_OVER_COMMIT
or ResultSet.CLOSE_CURSORS_AT_COMMIT
Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the holdability of this <code>ResultSet</code> object
* @return either <code>ResultSet.HOLD_CURSORS_OVER_COMMIT</code> or <code>ResultSet.CLOSE_CURSORS_AT_COMMIT</code>
* @throws SQLException if a database access error occurs
* or this method is called on a closed result set
* @since JDK 1.6, HSQLDB 2.0
*/
public int getHoldability() throws SQLException {
checkClosed();
return ResultProperties.getJDBCHoldability(rsProperties);
}
Retrieves whether this ResultSet
object has been closed.
A ResultSet
is closed if the
method close has been called on it, or if it is automatically closed.
Throws: - SQLException – if a database access error occurs
Returns: true if this ResultSet
object is closed; false if it is still open Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves whether this <code>ResultSet</code> object has been closed.
* A <code>ResultSet</code> is closed if the
* method close has been called on it, or if it is automatically closed.
*
* @return true if this <code>ResultSet</code> object is closed; false if it is still open
* @throws SQLException if a database access error occurs
* @since JDK 1.6, HSQLDB 2.0
*/
public boolean isClosed() throws SQLException {
return navigator == null;
}
Updates the designated column with a String
value.
It is intended for use when updating NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnIndex – the first column is 1, the second 2, ...
- nString – the value for the column to be updated
Throws: - SQLException – if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set,
the result set concurrency is
CONCUR_READ_ONLY
or if a database access error occurs - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a <code>String</code> value.
* It is intended for use when updating <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second 2, ...
* @param nString the value for the column to be updated
* @throws SQLException if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or if a database access error occurs
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateNString(int columnIndex,
String nString) throws SQLException {
updateString(columnIndex, nString);
}
Updates the designated column with a String
value.
It is intended for use when updating NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- nString – the value for the column to be updated
Throws: - SQLException – if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set;
the result set concurrency is
CONCUR_READ_ONLY
or if a database access error occurs - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a <code>String</code> value.
* It is intended for use when updating <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param nString the value for the column to be updated
* @throws SQLException if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set;
* the result set concurrency is <CODE>CONCUR_READ_ONLY</code>
* or if a database access error occurs
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateNString(String columnLabel,
String nString) throws SQLException {
updateString(columnLabel, nString);
}
Updates the designated column with a java.sql.NClob
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnIndex – the first column is 1, the second 2, ...
- nClob – the value for the column to be updated
Throws: - SQLException – if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set,
if a database access error occurs or
the result set concurrency is
CONCUR_READ_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a <code>java.sql.NClob</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second 2, ...
* @param nClob the value for the column to be updated
* @throws SQLException if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set,
* if a database access error occurs or
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateNClob(int columnIndex, NClob nClob) throws SQLException {
updateClob(columnIndex, nClob);
}
Updates the designated column with a java.sql.NClob
value.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- nClob – the value for the column to be updated
Throws: - SQLException – if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set;
if a database access error occurs or
the result set concurrency is
CONCUR_READ_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a <code>java.sql.NClob</code> value.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param nClob the value for the column to be updated
* @throws SQLException if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set;
* if a database access error occurs or
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateNClob(String columnLabel,
NClob nClob) throws SQLException {
updateClob(columnLabel, nClob);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a NClob
object
in the Java programming language.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set
or if a database access error occurs
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a NClob
object representing the SQL
NCLOB
value in the specified column Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>NClob</code> object
* in the Java programming language.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a <code>NClob</code> object representing the SQL
* <code>NCLOB</code> value in the specified column
* @exception SQLException if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set
* or if a database access error occurs
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public NClob getNClob(int columnIndex) throws SQLException {
String s = getString(columnIndex);
return s == null ? null
: new JDBCNClob(s);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a NClob
object
in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
Throws: - SQLException – if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set
or if a database access error occurs
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a NClob
object representing the SQL NCLOB
value in the specified column Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a <code>NClob</code> object
* in the Java programming language.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @return a <code>NClob</code> object representing the SQL <code>NCLOB</code>
* value in the specified column
* @exception SQLException if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set
* or if a database access error occurs
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public NClob getNClob(String columnLabel) throws SQLException {
return getNClob(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row of
this ResultSet
as a
java.sql.SQLXML
object in the Java programming language.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a SQLXML
object that maps an SQL XML
value Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row of
* this <code>ResultSet</code> as a
* <code>java.sql.SQLXML</code> object in the Java programming language.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value
* @throws SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public SQLXML getSQLXML(int columnIndex) throws SQLException {
checkColumn(columnIndex);
SQLXML sqlxml;
int type = resultMetaData.columnTypes[columnIndex - 1].typeCode;
switch (type) {
case Types.SQL_XML : {
Object object = getObject(columnIndex);
if (object == null) {
sqlxml = null;
} else if (object instanceof SQLXML) {
sqlxml = (SQLXML) object;
} else {
throw JDBCUtil.notSupported();
}
break;
}
case Types.SQL_CLOB : {
Clob clob = getClob(columnIndex);
if (clob == null) {
sqlxml = null;
} else {
sqlxml = new JDBCSQLXML(clob.getCharacterStream());
}
break;
}
case Types.SQL_CHAR :
case Types.SQL_VARCHAR : {
java.io.Reader reader = getCharacterStream(columnIndex);
if (reader == null) {
sqlxml = null;
} else {
sqlxml = new JDBCSQLXML(reader);
}
break;
}
case Types.SQL_NCHAR :
case Types.SQL_NVARCHAR : {
java.io.Reader nreader = getNCharacterStream(columnIndex);
if (nreader == null) {
sqlxml = null;
} else {
sqlxml = new JDBCSQLXML(nreader);
}
break;
}
case Types.SQL_BLOB : {
Blob blob = getBlob(columnIndex);
if (blob == null) {
sqlxml = null;
} else {
sqlxml = new JDBCSQLXML(blob.getBinaryStream());
}
break;
}
case Types.SQL_BINARY :
case Types.SQL_VARBINARY : {
java.io.InputStream inputStream = getBinaryStream(columnIndex);
if (inputStream == null) {
sqlxml = null;
} else {
sqlxml = new JDBCSQLXML(inputStream);
}
break;
}
case Types.OTHER :
case Types.JAVA_OBJECT : {
Object data = getObject(columnIndex);
if (data == null) {
sqlxml = null;
} else if (data instanceof SQLXML) {
sqlxml = (SQLXML) data;
} else if (data instanceof String) {
sqlxml = new JDBCSQLXML((String) data);
} else if (data instanceof byte[]) {
sqlxml = new JDBCSQLXML((byte[]) data);
} else if (data instanceof Blob) {
Blob blob = (Blob) data;
sqlxml = new JDBCSQLXML(blob.getBinaryStream());
} else if (data instanceof Clob) {
Clob clob = (Clob) data;
sqlxml = new JDBCSQLXML(clob.getCharacterStream());
} else {
throw JDBCUtil.notSupported();
}
break;
}
default : {
throw JDBCUtil.notSupported();
}
}
return sqlxml;
}
Retrieves the value of the designated column in the current row of
this ResultSet
as a
java.sql.SQLXML
object in the Java programming language.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a SQLXML
object that maps an SQL XML
value Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row of
* this <code>ResultSet</code> as a
* <code>java.sql.SQLXML</code> object in the Java programming language.
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @return a <code>SQLXML</code> object that maps an <code>SQL XML</code> value
* @throws SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public SQLXML getSQLXML(String columnLabel) throws SQLException {
return getSQLXML(findColumn(columnLabel));
}
Updates the designated column with a java.sql.SQLXML
value.
The updater
methods are used to update column values in the current row or the insert
row. The updater methods do not update the underlying database; instead
the updateRow
or insertRow
methods are called
to update the database.
Params: - columnIndex – the first column is 1, the second 2, ...
- xmlObject – the value for the column to be updated
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,
if there is an error processing the XML value or
the result set concurrency is CONCUR_READ_ONLY
. The getCause
method
of the exception may provide a more detailed exception, for example, if the
stream does not contain valid XML. - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a <code>java.sql.SQLXML</code> value.
* The updater
* methods are used to update column values in the current row or the insert
* row. The updater methods do not update the underlying database; instead
* the <code>updateRow</code> or <code>insertRow</code> methods are called
* to update the database.
* <p>
*
* @param columnIndex the first column is 1, the second 2, ...
* @param xmlObject the value for the column to be updated
* @throws SQLException if a database access error occurs, this method
* is called on a closed result set,
* the <code>java.xml.transform.Result</code>,
* <code>Writer</code> or <code>OutputStream</code> has not been closed
* for the <code>SQLXML</code> object,
* if there is an error processing the XML value or
* the result set concurrency is <code>CONCUR_READ_ONLY</code>. The <code>getCause</code> method
* of the exception may provide a more detailed exception, for example, if the
* stream does not contain valid XML.
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateSQLXML(int columnIndex,
SQLXML xmlObject) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setSQLXML(columnIndex, xmlObject);
}
Updates the designated column with a java.sql.SQLXML
value.
The updater
methods are used to update column values in the current row or the insert
row. The updater methods do not update the underlying database; instead
the updateRow
or insertRow
methods are called
to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- xmlObject – the column 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,
if there is an error processing the XML value or
the result set concurrency is CONCUR_READ_ONLY
. The getCause
method
of the exception may provide a more detailed exception, for example, if the
stream does not contain valid XML. - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a <code>java.sql.SQLXML</code> value.
* The updater
* methods are used to update column values in the current row or the insert
* row. The updater methods do not update the underlying database; instead
* the <code>updateRow</code> or <code>insertRow</code> methods are called
* to update the database.
* <p>
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param xmlObject the column value
* @throws SQLException if a database access error occurs, this method
* is called on a closed result set,
* the <code>java.xml.transform.Result</code>,
* <code>Writer</code> or <code>OutputStream</code> has not been closed
* for the <code>SQLXML</code> object,
* if there is an error processing the XML value or
* the result set concurrency is <code>CONCUR_READ_ONLY</code>. The <code>getCause</code> method
* of the exception may provide a more detailed exception, for example, if the
* stream does not contain valid XML.
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateSQLXML(String columnLabel,
SQLXML xmlObject) throws SQLException {
updateSQLXML(findColumn(columnLabel), xmlObject);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a String
in the Java programming language.
It is intended for use when
accessing NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>String</code> in the Java programming language.
* It is intended for use when
* accessing <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public String getNString(int columnIndex) throws SQLException {
return getString(columnIndex);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as
a String
in the Java programming language.
It is intended for use when
accessing NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: the column value; if the value is SQL NULL
, the
value returned is null
Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as
* a <code>String</code> in the Java programming language.
* It is intended for use when
* accessing <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @return the column value; if the value is SQL <code>NULL</code>, the
* value returned is <code>null</code>
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public String getNString(String columnLabel) throws SQLException {
return getString(findColumn(columnLabel));
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a
java.io.Reader
object.
It is intended for use when
accessing NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
Params: - columnIndex – the first column is 1, the second is 2, ...
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a java.io.Reader
object that contains the column
value; if the value is SQL NULL
, the value returned is
null
in the Java programming language. Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a
* <code>java.io.Reader</code> object.
* It is intended for use when
* accessing <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
*
* @return a <code>java.io.Reader</code> object that contains the column
* value; if the value is SQL <code>NULL</code>, the value returned is
* <code>null</code> in the Java programming language.
* @param columnIndex the first column is 1, the second is 2, ...
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public java.io.Reader getNCharacterStream(
int columnIndex) throws SQLException {
return getCharacterStream(columnIndex);
}
Retrieves the value of the designated column in the current row
of this ResultSet
object as a
java.io.Reader
object.
It is intended for use when
accessing NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
Throws: - SQLException – if a database access error occurs
or this method is called on a closed result set
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: a java.io.Reader
object that contains the column
value; if the value is SQL NULL
, the value returned is
null
in the Java programming language Since: JDK 1.6, HSQLDB 2.0
/**
* Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object as a
* <code>java.io.Reader</code> object.
* It is intended for use when
* accessing <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @return a <code>java.io.Reader</code> object that contains the column
* value; if the value is SQL <code>NULL</code>, the value returned is
* <code>null</code> in the Java programming language
* @exception SQLException if a database access error occurs
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public java.io.Reader getNCharacterStream(
String columnLabel) throws SQLException {
return getCharacterStream(findColumn(columnLabel));
}
Updates the designated column with a character stream value, which will have
the specified number of bytes. The
driver does the necessary conversion from Java character format to
the national character set in the database.
It is intended for use when
updating NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a character stream value, which will have
* the specified number of bytes. The
* driver does the necessary conversion from Java character format to
* the national character set in the database.
* It is intended for use when
* updating <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
*
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateNCharacterStream(int columnIndex, java.io.Reader x,
long length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setCharacterStream(columnIndex, x, length);
}
Updates the designated column with a character stream value, which will have
the specified number of bytes. The
driver does the necessary conversion from Java character format to
the national character set in the database.
It is intended for use when
updating NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- reader – the
java.io.Reader
object containing
the new column value - length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a character stream value, which will have
* the specified number of bytes. The
* driver does the necessary conversion from Java character format to
* the national character set in the database.
* It is intended for use when
* updating <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
*
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param reader the <code>java.io.Reader</code> object containing
* the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateNCharacterStream(String columnLabel,
java.io.Reader reader,
long length) throws SQLException {
updateCharacterStream(columnLabel, reader, length);
}
// --------------------------- Added: Mustang Build 86 -------------------------
Updates the designated column with an ascii stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with an ascii stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateAsciiStream(int columnIndex, java.io.InputStream x,
long length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setAsciiStream(columnIndex, x, length);
}
Updates the designated column with a binary stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a binary stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateBinaryStream(int columnIndex, java.io.InputStream x,
long length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setBinaryStream(columnIndex, x, length);
}
Updates the designated column with a character stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a character stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateCharacterStream(int columnIndex, java.io.Reader x,
long length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setCharacterStream(columnIndex, x, length);
}
Updates the designated column with an ascii stream value, which will have
the specified number of bytes..
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with an ascii stream value, which will have
* the specified number of bytes..
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateAsciiStream(String columnLabel, java.io.InputStream x,
long length) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setAsciiStream(columnIndex, x, length);
}
Updates the designated column with a binary stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- x – the new column value
- length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a binary stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param x the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateBinaryStream(String columnLabel, java.io.InputStream x,
long length) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setBinaryStream(columnIndex, x, length);
}
Updates the designated column with a character stream value, which will have
the specified number of bytes.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- reader – the
java.io.Reader
object containing
the new column value - length – the length of the stream
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column with a character stream value, which will have
* the specified number of bytes.
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param reader the <code>java.io.Reader</code> object containing
* the new column value
* @param length the length of the stream
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateCharacterStream(String columnLabel,
java.io.Reader reader,
long length) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setCharacterStream(columnIndex, reader, length);
}
Updates the designated column using the given input stream, which
will have the specified number of bytes.
When a very large ASCII value is input to a LONGVARCHAR
parameter, it may be more practical to send it via a
java.io.InputStream
. Data will be read from the stream
as needed until end-of-file is reached. The JDBC driver will
do any necessary conversion from ASCII to the database char format.
Note: This stream object can either be a standard
Java stream object or your own subclass that implements the
standard interface.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnIndex – the first column is 1, the second is 2, ...
- inputStream – An object that contains the data to set the parameter
value to.
- length – the number of bytes in the parameter data.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column using the given input stream, which
* will have the specified number of bytes.
* When a very large ASCII value is input to a <code>LONGVARCHAR</code>
* parameter, it may be more practical to send it via a
* <code>java.io.InputStream</code>. Data will be read from the stream
* as needed until end-of-file is reached. The JDBC driver will
* do any necessary conversion from ASCII to the database char format.
*
* <P><B>Note:</B> This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param inputStream An object that contains the data to set the parameter
* value to.
* @param length the number of bytes in the parameter data.
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateBlob(int columnIndex, InputStream inputStream,
long length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setBlob(columnIndex, inputStream, length);
}
Updates the designated column using the given input stream, which
will have the specified number of bytes.
When a very large ASCII value is input to a LONGVARCHAR
parameter, it may be more practical to send it via a
java.io.InputStream
. Data will be read from the stream
as needed until end-of-file is reached. The JDBC driver will
do any necessary conversion from ASCII to the database char format.
Note: This stream object can either be a standard
Java stream object or your own subclass that implements the
standard interface.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- inputStream – An object that contains the data to set the parameter
value to.
- length – the number of bytes in the parameter data.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column using the given input stream, which
* will have the specified number of bytes.
* When a very large ASCII value is input to a <code>LONGVARCHAR</code>
* parameter, it may be more practical to send it via a
* <code>java.io.InputStream</code>. Data will be read from the stream
* as needed until end-of-file is reached. The JDBC driver will
* do any necessary conversion from ASCII to the database char format.
*
* <P><B>Note:</B> This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param inputStream An object that contains the data to set the parameter
* value to.
* @param length the number of bytes in the parameter data.
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateBlob(String columnLabel, InputStream inputStream,
long length) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setBlob(columnIndex, inputStream, length);
}
Updates the designated column using the given Reader
object, which is the given number of characters long.
When a very large UNICODE value is input to a LONGVARCHAR
parameter, it may be more practical to send it via a
java.io.Reader
object. The data will be read from the stream
as needed until end-of-file is reached. The JDBC driver will
do any necessary conversion from UNICODE to the database char format.
Note: This stream object can either be a standard
Java stream object or your own subclass that implements the
standard interface.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnIndex – the first column is 1, the second is 2, ...
- reader – An object that contains the data to set the parameter value to.
- length – the number of characters in the parameter data.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column using the given <code>Reader</code>
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
* parameter, it may be more practical to send it via a
* <code>java.io.Reader</code> object. The data will be read from the stream
* as needed until end-of-file is reached. The JDBC driver will
* do any necessary conversion from UNICODE to the database char format.
*
* <P><B>Note:</B> This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param reader An object that contains the data to set the parameter value to.
* @param length the number of characters in the parameter data.
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateClob(int columnIndex, Reader reader,
long length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setClob(columnIndex, reader, length);
}
Updates the designated column using the given Reader
object, which is the given number of characters long.
When a very large UNICODE value is input to a LONGVARCHAR
parameter, it may be more practical to send it via a
java.io.Reader
object. The data will be read from the stream
as needed until end-of-file is reached. The JDBC driver will
do any necessary conversion from UNICODE to the database char format.
Note: This stream object can either be a standard
Java stream object or your own subclass that implements the
standard interface.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- reader – An object that contains the data to set the parameter value to.
- length – the number of characters in the parameter data.
Throws: - SQLException – if a database access error occurs,
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column using the given <code>Reader</code>
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
* parameter, it may be more practical to send it via a
* <code>java.io.Reader</code> object. The data will be read from the stream
* as needed until end-of-file is reached. The JDBC driver will
* do any necessary conversion from UNICODE to the database char format.
*
* <P><B>Note:</B> This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param reader An object that contains the data to set the parameter value to.
* @param length the number of characters in the parameter data.
* @exception SQLException if a database access error occurs,
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateClob(String columnLabel, Reader reader,
long length) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setClob(columnIndex, reader, length);
}
Updates the designated column using the given Reader
object, which is the given number of characters long.
When a very large UNICODE value is input to a LONGVARCHAR
parameter, it may be more practical to send it via a
java.io.Reader
object. The data will be read from the stream
as needed until end-of-file is reached. The JDBC driver will
do any necessary conversion from UNICODE to the database char format.
Note: This stream object can either be a standard
Java stream object or your own subclass that implements the
standard interface.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
@param columnIndex the first column is 1, the second 2, ...
@param reader An object that contains the data to set the parameter value to.
@param length the number of characters in the parameter data.
@throws SQLException if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set,
if a database access error occurs or
the result set concurrency is CONCUR_READ_ONLY
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
@since JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column using the given <code>Reader</code>
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
* parameter, it may be more practical to send it via a
* <code>java.io.Reader</code> object. The data will be read from the stream
* as needed until end-of-file is reached. The JDBC driver will
* do any necessary conversion from UNICODE to the database char format.
*
* <P><B>Note:</B> This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnIndex the first column is 1, the second 2, ...
* @param reader An object that contains the data to set the parameter value to.
* @param length the number of characters in the parameter data.
* @throws SQLException if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set,
* if a database access error occurs or
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateNClob(int columnIndex, Reader reader,
long length) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setClob(columnIndex, reader, length);
}
Updates the designated column using the given Reader
object, which is the given number of characters long.
When a very large UNICODE value is input to a LONGVARCHAR
parameter, it may be more practical to send it via a
java.io.Reader
object. The data will be read from the stream
as needed until end-of-file is reached. The JDBC driver will
do any necessary conversion from UNICODE to the database char format.
Note: This stream object can either be a standard
Java stream object or your own subclass that implements the
standard interface.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is the
name of the column
- reader – An object that contains the data to set the parameter value to.
- length – the number of characters in the parameter data.
Throws: - SQLException – if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set;
if a database access error occurs or
the result set concurrency is
CONCUR_READ_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: JDK 1.6, HSQLDB 2.0
/**
* Updates the designated column using the given <code>Reader</code>
* object, which is the given number of characters long.
* When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
* parameter, it may be more practical to send it via a
* <code>java.io.Reader</code> object. The data will be read from the stream
* as needed until end-of-file is reached. The JDBC driver will
* do any necessary conversion from UNICODE to the database char format.
*
* <P><B>Note:</B> This stream object can either be a standard
* Java stream object or your own subclass that implements the
* standard interface.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is the
* name of the column
* @param reader An object that contains the data to set the parameter value to.
* @param length the number of characters in the parameter data.
* @throws SQLException if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set;
* if a database access error occurs or
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.6, HSQLDB 2.0
*/
public void updateNClob(String columnLabel, Reader reader,
long length) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setClob(columnIndex, reader, length);
}
Updates the designated column with a character stream value.
The data will be read from the stream
as needed until end-of-stream is reached. The
driver does the necessary conversion from Java character format to
the national character set in the database.
It is intended for use when
updating NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateNCharacterStream
which takes a length parameter.
Params: - columnIndex – the first column is 1, the second is 2, ...
- reader – the new column value
Throws: - SQLException – if the columnIndex is not valid;
if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column with a character stream value.
* The data will be read from the stream
* as needed until end-of-stream is reached. The
* driver does the necessary conversion from Java character format to
* the national character set in the database.
* It is intended for use when
* updating <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateNCharacterStream</code> which takes a length parameter.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param reader the new column value
* @exception SQLException if the columnIndex is not valid;
* if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateNCharacterStream(
int columnIndex, java.io.Reader reader) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setCharacterStream(columnIndex, reader);
}
Updates the designated column with a character stream value.
The data will be read from the stream
as needed until end-of-stream is reached. The
driver does the necessary conversion from Java character format to
the national character set in the database.
It is intended for use when
updating NCHAR
,NVARCHAR
and LONGNVARCHAR
columns.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateNCharacterStream
which takes a length parameter.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- reader – the
java.io.Reader
object containing
the new column value
Throws: - SQLException – if the columnLabel is not valid;
if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column with a character stream value.
* The data will be read from the stream
* as needed until end-of-stream is reached. The
* driver does the necessary conversion from Java character format to
* the national character set in the database.
* It is intended for use when
* updating <code>NCHAR</code>,<code>NVARCHAR</code>
* and <code>LONGNVARCHAR</code> columns.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateNCharacterStream</code> which takes a length parameter.
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param reader the <code>java.io.Reader</code> object containing
* the new column value
* @exception SQLException if the columnLabel is not valid;
* if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code> or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateNCharacterStream(
String columnLabel, java.io.Reader reader) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setCharacterStream(columnIndex, reader);
}
Updates the designated column with an ascii stream value.
The data will be read from the stream
as needed until end-of-stream is reached.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateAsciiStream
which takes a length parameter.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if the columnIndex is not valid;
if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column with an ascii stream value.
* The data will be read from the stream
* as needed until end-of-stream is reached.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateAsciiStream</code> which takes a length parameter.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if the columnIndex is not valid;
* if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateAsciiStream(int columnIndex,
java.io.InputStream x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setAsciiStream(columnIndex, x);
}
Updates the designated column with a binary stream value.
The data will be read from the stream
as needed until end-of-stream is reached.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateBinaryStream
which takes a length parameter.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if the columnIndex is not valid;
if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column with a binary stream value.
* The data will be read from the stream
* as needed until end-of-stream is reached.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateBinaryStream</code> which takes a length parameter.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if the columnIndex is not valid;
* if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateBinaryStream(int columnIndex,
java.io.InputStream x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setBinaryStream(columnIndex, x);
}
Updates the designated column with a character stream value.
The data will be read from the stream
as needed until end-of-stream is reached.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateCharacterStream
which takes a length parameter.
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
Throws: - SQLException – if the columnIndex is not valid;
if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column with a character stream value.
* The data will be read from the stream
* as needed until end-of-stream is reached.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateCharacterStream</code> which takes a length parameter.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @exception SQLException if the columnIndex is not valid;
* if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateCharacterStream(int columnIndex,
java.io.Reader x) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setCharacterStream(columnIndex, x);
}
Updates the designated column with an ascii stream value.
The data will be read from the stream
as needed until end-of-stream is reached.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateAsciiStream
which takes a length parameter.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if the columnLabel is not valid;
if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column with an ascii stream value.
* The data will be read from the stream
* as needed until end-of-stream is reached.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateAsciiStream</code> which takes a length parameter.
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if the columnLabel is not valid;
* if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateAsciiStream(String columnLabel,
java.io.InputStream x) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setAsciiStream(columnIndex, x);
}
Updates the designated column with a binary stream value.
The data will be read from the stream
as needed until end-of-stream is reached.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateBinaryStream
which takes a length parameter.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- x – the new column value
Throws: - SQLException – if the columnLabel is not valid;
if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column with a binary stream value.
* The data will be read from the stream
* as needed until end-of-stream is reached.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateBinaryStream</code> which takes a length parameter.
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param x the new column value
* @exception SQLException if the columnLabel is not valid;
* if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateBinaryStream(String columnLabel,
java.io.InputStream x) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setBinaryStream(columnIndex, x);
}
Updates the designated column with a character stream value.
The data will be read from the stream
as needed until end-of-stream is reached.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateCharacterStream
which takes a length parameter.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- reader – the
java.io.Reader
object containing
the new column value
Throws: - SQLException – if the columnLabel is not valid; if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column with a character stream value.
* The data will be read from the stream
* as needed until end-of-stream is reached.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateCharacterStream</code> which takes a length parameter.
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param reader the <code>java.io.Reader</code> object containing
* the new column value
* @exception SQLException if the columnLabel is not valid; if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateCharacterStream(
String columnLabel, java.io.Reader reader) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setCharacterStream(columnIndex, reader);
}
Updates the designated column using the given input stream. The data will be read from the stream
as needed until end-of-stream is reached.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateBlob
which takes a length parameter.
Params: - columnIndex – the first column is 1, the second is 2, ...
- inputStream – An object that contains the data to set the parameter
value to.
Throws: - SQLException – if the columnIndex is not valid; if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column using the given input stream. The data will be read from the stream
* as needed until end-of-stream is reached.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateBlob</code> which takes a length parameter.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param inputStream An object that contains the data to set the parameter
* value to.
* @exception SQLException if the columnIndex is not valid; if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateBlob(int columnIndex,
InputStream inputStream) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setBlob(columnIndex, inputStream);
}
Updates the designated column using the given input stream. The data will be read from the stream
as needed until end-of-stream is reached.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateBlob
which takes a length parameter.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- inputStream – An object that contains the data to set the parameter
value to.
Throws: - SQLException – if the columnLabel is not valid; if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column using the given input stream. The data will be read from the stream
* as needed until end-of-stream is reached.
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateBlob</code> which takes a length parameter.
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param inputStream An object that contains the data to set the parameter
* value to.
* @exception SQLException if the columnLabel is not valid; if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateBlob(String columnLabel,
InputStream inputStream) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setBlob(columnIndex, inputStream);
}
Updates the designated column using the given Reader
object.
The data will be read from the stream
as needed until end-of-stream is reached. The JDBC driver will
do any necessary conversion from UNICODE to the database char format.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateClob
which takes a length parameter.
Params: - columnIndex – the first column is 1, the second is 2, ...
- reader – An object that contains the data to set the parameter value to.
Throws: - SQLException – if the columnIndex is not valid;
if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column using the given <code>Reader</code>
* object.
* The data will be read from the stream
* as needed until end-of-stream is reached. The JDBC driver will
* do any necessary conversion from UNICODE to the database char format.
*
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateClob</code> which takes a length parameter.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param reader An object that contains the data to set the parameter value to.
* @exception SQLException if the columnIndex is not valid;
* if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateClob(int columnIndex,
Reader reader) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setClob(columnIndex, reader);
}
Updates the designated column using the given Reader
object.
The data will be read from the stream
as needed until end-of-stream is reached. The JDBC driver will
do any necessary conversion from UNICODE to the database char format.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateClob
which takes a length parameter.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- reader – An object that contains the data to set the parameter value to.
Throws: - SQLException – if the columnLabel is not valid; if a database access error occurs;
the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column using the given <code>Reader</code>
* object.
* The data will be read from the stream
* as needed until end-of-stream is reached. The JDBC driver will
* do any necessary conversion from UNICODE to the database char format.
*
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateClob</code> which takes a length parameter.
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param reader An object that contains the data to set the parameter value to.
* @exception SQLException if the columnLabel is not valid; if a database access error occurs;
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateClob(String columnLabel,
Reader reader) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setClob(columnIndex, reader);
}
Updates the designated column using the given Reader
The data will be read from the stream
as needed until end-of-stream is reached. The JDBC driver will
do any necessary conversion from UNICODE to the database char format.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateNClob
which takes a length parameter.
@param columnIndex the first column is 1, the second 2, ...
@param reader An object that contains the data to set the parameter value to.
@throws SQLException if the columnIndex is not valid;
if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set,
if a database access error occurs or
the result set concurrency is CONCUR_READ_ONLY
@exception SQLFeatureNotSupportedException if the JDBC driver does not support
this method
@since 1.6
/**
* Updates the designated column using the given <code>Reader</code>
*
* The data will be read from the stream
* as needed until end-of-stream is reached. The JDBC driver will
* do any necessary conversion from UNICODE to the database char format.
*
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateNClob</code> which takes a length parameter.
*
* @param columnIndex the first column is 1, the second 2, ...
* @param reader An object that contains the data to set the parameter value to.
* @throws SQLException if the columnIndex is not valid;
* if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set,
* if a database access error occurs or
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateNClob(int columnIndex,
Reader reader) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setClob(columnIndex, reader);
}
Updates the designated column using the given Reader
object.
The data will be read from the stream
as needed until end-of-stream is reached. The JDBC driver will
do any necessary conversion from UNICODE to the database char format.
The updater methods are used to update column values in the
current row or the insert row. The updater methods do not
update the underlying database; instead the updateRow
or
insertRow
methods are called to update the database.
Note: Consult your JDBC driver documentation to determine if
it might be more efficient to use a version of
updateNClob
which takes a length parameter.
Params: - columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
- reader – An object that contains the data to set the parameter value to.
Throws: - SQLException – if the columnLabel is not valid; if the driver does not support national
character sets; if the driver can detect that a data conversion
error could occur; this method is called on a closed result set;
if a database access error occurs or
the result set concurrency is
CONCUR_READ_ONLY
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Since: 1.6
/**
* Updates the designated column using the given <code>Reader</code>
* object.
* The data will be read from the stream
* as needed until end-of-stream is reached. The JDBC driver will
* do any necessary conversion from UNICODE to the database char format.
*
* <p>
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the <code>updateRow</code> or
* <code>insertRow</code> methods are called to update the database.
*
* <P><B>Note:</B> Consult your JDBC driver documentation to determine if
* it might be more efficient to use a version of
* <code>updateNClob</code> which takes a length parameter.
*
* @param columnLabel the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column
* @param reader An object that contains the data to set the parameter value to.
* @throws SQLException if the columnLabel is not valid; if the driver does not support national
* character sets; if the driver can detect that a data conversion
* error could occur; this method is called on a closed result set;
* if a database access error occurs or
* the result set concurrency is <code>CONCUR_READ_ONLY</code>
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since 1.6
*/
public void updateNClob(String columnLabel,
Reader reader) throws SQLException {
int columnIndex = findColumn(columnLabel);
startUpdate(columnIndex);
preparedStatement.setClob(columnIndex, reader);
}
// --------------------- java.sql.Wrapper implementation -------------------
Returns an object that implements the given interface to allow access to
non-standard methods, or standard methods not exposed by the proxy.
If the receiver implements the interface then the result is the receiver
or a proxy for the receiver. If the receiver is a wrapper
and the wrapped object implements the interface then the result is the
wrapped object or a proxy for the wrapped object. Otherwise return the
the result of calling unwrap
recursively on the wrapped object
or a proxy for that result. If the receiver is not a
wrapper and does not implement the interface, then an SQLException
is thrown.
Params: - iface – A Class defining an interface that the result must implement.
Throws: - SQLException – If no object found that implements the interface
Returns: an object that implements the interface. May be a proxy for the actual implementing object. Since: JDK 1.6, HSQLDB 2.0
/**
* Returns an object that implements the given interface to allow access to
* non-standard methods, or standard methods not exposed by the proxy.
*
* If the receiver implements the interface then the result is the receiver
* or a proxy for the receiver. If the receiver is a wrapper
* and the wrapped object implements the interface then the result is the
* wrapped object or a proxy for the wrapped object. Otherwise return the
* the result of calling <code>unwrap</code> recursively on the wrapped object
* or a proxy for that result. If the receiver is not a
* wrapper and does not implement the interface, then an <code>SQLException</code> is thrown.
*
* @param iface A Class defining an interface that the result must implement.
* @return an object that implements the interface. May be a proxy for the actual implementing object.
* @throws java.sql.SQLException If no object found that implements the interface
* @since JDK 1.6, HSQLDB 2.0
*/
@SuppressWarnings("unchecked")
public <T>T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException {
if (isWrapperFor(iface)) {
return (T) this;
}
throw JDBCUtil.invalidArgument("iface: " + iface);
}
Returns true if this either implements the interface argument or is directly or indirectly a wrapper
for an object that does. Returns false otherwise. If this implements the interface then return true,
else if this is a wrapper then return the result of recursively calling isWrapperFor
on the wrapped
object. If this does not implement the interface and is not a wrapper, return false.
This method should be implemented as a low-cost operation compared to unwrap
so that
callers can use this method to avoid expensive unwrap
calls that may fail. If this method
returns true then calling unwrap
with the same argument should succeed.
Params: - iface – a Class defining an interface.
Throws: - SQLException – if an error occurs while determining whether this is a wrapper
for an object with the given interface.
Returns: true if this implements the interface or directly or indirectly wraps an object that does. Since: JDK 1.6, HSQLDB 2.0
/**
* Returns true if this either implements the interface argument or is directly or indirectly a wrapper
* for an object that does. Returns false otherwise. If this implements the interface then return true,
* else if this is a wrapper then return the result of recursively calling <code>isWrapperFor</code> on the wrapped
* object. If this does not implement the interface and is not a wrapper, return false.
* This method should be implemented as a low-cost operation compared to <code>unwrap</code> so that
* callers can use this method to avoid expensive <code>unwrap</code> calls that may fail. If this method
* returns true then calling <code>unwrap</code> with the same argument should succeed.
*
* @param iface a Class defining an interface.
* @return true if this implements the interface or directly or indirectly wraps an object that does.
* @throws java.sql.SQLException if an error occurs while determining whether this is a wrapper
* for an object with the given interface.
* @since JDK 1.6, HSQLDB 2.0
*/
public boolean isWrapperFor(
java.lang.Class<?> iface) throws java.sql.SQLException {
return (iface != null && iface.isAssignableFrom(this.getClass()));
}
//------------------------- JDBC 4.1 -----------------------------------
Retrieves the value of the designated column in the current row
of this ResultSet
object and will convert from the
SQL type of the column to the requested Java data type, if the
conversion is supported. If the conversion is not
supported or null is specified for the type, a
SQLException
is thrown.
At a minimum, an implementation must support the conversions defined in Appendix B, Table B-3 and conversion of appropriate user defined SQL types to a Java type which implements SQLData
, or Struct
. Additional conversions may be supported and are vendor defined.
Params: - columnIndex – the first column is 1, the second is 2, ...
- type – Class representing the Java data type to convert the designated
column to.
Throws: - SQLException – if conversion is not supported, type is null or
another error occurs. The getCause() method of the
exception may provide a more detailed exception, for example, if
a conversion error occurs
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: an instance of type
holding the column value Since: JDK 1.7 M11 2010/09/10 (b123), HSQLDB 2.0.1
/**
* <p>Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object and will convert from the
* SQL type of the column to the requested Java data type, if the
* conversion is supported. If the conversion is not
* supported or null is specified for the type, a
* <code>SQLException</code> is thrown.
* <p>
* At a minimum, an implementation must support the conversions defined in
* Appendix B, Table B-3 and conversion of appropriate user defined SQL
* types to a Java type which implements {@code SQLData}, or {@code Struct}.
* Additional conversions may be supported and are vendor defined.
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param type Class representing the Java data type to convert the designated
* column to.
* @return an instance of {@code type} holding the column value
* @throws SQLException if conversion is not supported, type is null or
* another error occurs. The getCause() method of the
* exception may provide a more detailed exception, for example, if
* a conversion error occurs
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.7 M11 2010/09/10 (b123), HSQLDB 2.0.1
*/
//#ifdef JAVA8
public <T>T getObject(int columnIndex, Class<T> type) throws SQLException {
if (type == null) {
throw JDBCUtil.nullArgument();
}
Type hsqlType = Types.getParameterSQLType(type);
if(hsqlType == null) {
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
Object source = getColumnValue(columnIndex);
if (wasNullValue) {
return null;
}
Object o = null;
switch(type.getName()){
case "int":
case "java.lang.Integer":
o = getInt(columnIndex);
break;
case "double":
case "java.lang.Double":
o = getDouble(columnIndex);
break;
case "boolean":
case "java.lang.Boolean":
o = getBoolean(columnIndex);
break;
case "byte":
case "java.lang.Byte":
o = getByte(columnIndex);
break;
case "short":
case "java.lang.Short":
o = getShort(columnIndex);
break;
case "long":
case "java.lang.Long":
o = getLong(columnIndex);
break;
case "[B":
o = getBytes(columnIndex);
break;
case "java.lang.Object":
o = getObject(columnIndex);
break;
case "java.math.BigDecimal":
o = getBigDecimal(columnIndex);
break;
case "java.sql.Blob":
o = getBlob(columnIndex);
break;
case "java.sql.Clob":
o = getClob(columnIndex);
break;
case "java.lang.String":
case "java.lang.CharSequence":
o = getString(columnIndex);
break;
case "java.sql.Date": {
o = getDate(columnIndex);
break;
}
case "java.sql.Time": {
o = getTime(columnIndex);
break;
}
case "java.sql.Timestamp": {
o = getTimestamp(columnIndex);
break;
}
case "java.util.UUID":
source = getColumnInType(columnIndex, hsqlType);
o = Type.SQL_GUID.convertSQLToJava(session, source);
break;
case "java.time.LocalDate": {
source = getColumnInType(columnIndex, hsqlType);
TimestampData v = (TimestampData) source;
long millis = v.getMillis();
Calendar cal = session.getCalendarGMT();
cal.setTimeInMillis(millis);
o = LocalDate.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH));
break;
}
case "java.time.LocalTime": {
source = getColumnInType(columnIndex, hsqlType);
TimeData v = (TimeData) source;
o = LocalTime.ofNanoOfDay(v.getSeconds() * 1000000000L + v.getNanos());
break;
}
case "java.time.LocalDateTime": {
source = getColumnInType(columnIndex, hsqlType);
TimestampData v = (TimestampData) source;
o = LocalDateTime.ofEpochSecond(v.getSeconds(), v.getNanos(), ZoneOffset.UTC);
break;
}
case "java.time.OffsetTime": {
o = getTimeWithZone(columnIndex);
break;
}
case "java.time.OffsetDateTime": {
o = getTimestampWithZone(columnIndex);
break;
}
case "java.time.Duration": {
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
if (!sourceType.isIntervalDaySecondType()) {
break;
}
source = getColumnValue(columnIndex);
IntervalSecondData v = (IntervalSecondData) source;
o = Duration.ofSeconds(v.getSeconds(), v.getNanos());
break;
}
case "java.time.Period": {
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
if (!sourceType.isIntervalYearMonthType()) {
break;
}
source = getColumnValue(columnIndex);
IntervalMonthData v = (IntervalMonthData) source;
int months = v.getMonths();
if (sourceType.typeCode == Types.SQL_INTERVAL_MONTH) {
o = Period.ofMonths(months);
} else {
o = Period.of(months / 12, months % 12, 0);
}
break;
}
case "java.sql.Array": {
o = getArray(columnIndex);
break;
}
}
if (o == null) {
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
return (T) o;
}
//#else
/*
public <T>T getObject(int columnIndex, Class<T> type) throws SQLException {
throw JDBCUtil.notSupported();
}
*/
//#endif JAVA8
Retrieves the value of the designated column in the current row
of this ResultSet
object and will convert from the
SQL type of the column to the requested Java data type, if the
conversion is supported. If the conversion is not
supported or null is specified for the type, a
SQLException
is thrown.
At a minimum, an implementation must support the conversions defined in Appendix B, Table B-3 and conversion of appropriate user defined SQL types to a Java type which implements SQLData
, or Struct
. Additional conversions may be supported and are vendor defined.
Params: - columnLabel – the label for the column specified with the SQL AS clause.
If the SQL AS clause was not specified, then the label is the name
of the column
- type – Class representing the Java data type to convert the designated
column to.
Throws: - SQLException – if conversion is not supported, type is null or
another error occurs. The getCause() method of the
exception may provide a more detailed exception, for example, if
a conversion error occurs
- SQLFeatureNotSupportedException – if the JDBC driver does not support
this method
Returns: an instance of type
holding the column value Since: JDK 1.7 M11 2010/09/10 (b123), HSQLDB 2.0.1
/**
* <p>Retrieves the value of the designated column in the current row
* of this <code>ResultSet</code> object and will convert from the
* SQL type of the column to the requested Java data type, if the
* conversion is supported. If the conversion is not
* supported or null is specified for the type, a
* <code>SQLException</code> is thrown.
* <p>
* At a minimum, an implementation must support the conversions defined in
* Appendix B, Table B-3 and conversion of appropriate user defined SQL
* types to a Java type which implements {@code SQLData}, or {@code Struct}.
* Additional conversions may be supported and are vendor defined.
*
* @param columnLabel the label for the column specified with the SQL AS clause.
* If the SQL AS clause was not specified, then the label is the name
* of the column
* @param type Class representing the Java data type to convert the designated
* column to.
* @return an instance of {@code type} holding the column value
* @throws SQLException if conversion is not supported, type is null or
* another error occurs. The getCause() method of the
* exception may provide a more detailed exception, for example, if
* a conversion error occurs
* @throws SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.7 M11 2010/09/10 (b123), HSQLDB 2.0.1
*/
public <T>T getObject(String columnLabel,
Class<T> type) throws SQLException {
return getObject(findColumn(columnLabel), type);
}
//------------------------- JDBC 4.2 -----------------------------------
Updates the designated column with an Object
value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow
or insertRow
methods are called to update the database. 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 Reader
then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a SQLException
when the statement is executed.
The default implementation will throw SQLFeatureNotSupportedException
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- targetSqlType – the SQL type to be sent to the database
- scaleOrLength – for an object of
java.math.BigDecimal
, this is the number of digits after the decimal point. For Java Object types InputStream
and Reader
, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
Throws: - SQLException – if the columnIndex is not valid; if a database access error occurs; the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not
support this method; if the JDBC driver does not support the specified targetSqlType
See Also: Since: 1.8
/**
* Updates the designated column with an {@code Object} value.
*
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the {@code updateRow} or
* {@code insertRow} methods are called to update the database.
*<p>
* If the second argument is an {@code InputStream} then the stream must contain
* the number of bytes specified by scaleOrLength. If the second argument is a
* {@code Reader} then the reader must contain the number of characters specified
* by scaleOrLength. If these conditions are not true the driver will generate a
* {@code SQLException} when the statement is executed.
*<p>
* The default implementation will throw {@code SQLFeatureNotSupportedException}
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param targetSqlType the SQL type to be sent to the database
* @param scaleOrLength for an object of {@code java.math.BigDecimal} ,
* this is the number of digits after the decimal point. For
* Java Object types {@code InputStream} and {@code Reader},
* this is the length
* of the data in the stream or reader. For all other types,
* this value will be ignored.
* @exception SQLException if the columnIndex is not valid;
* if a database access error occurs;
* the result set concurrency is {@code CONCUR_READ_ONLY}
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not
* support this method; if the JDBC driver does not support the specified targetSqlType
* @see JDBCType
* @see SQLType
* @since 1.8
*/
//#ifdef JAVA8
public void updateObject(int columnIndex, Object x,
SQLType targetSqlType, int scaleOrLength) throws SQLException {
startUpdate(columnIndex);
preparedStatement.setObject(columnIndex, x, targetSqlType, scaleOrLength);
}
//#endif JAVA8
Updates the designated column with an Object
value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow
or insertRow
methods are called to update the database. If the second argument is an InputStream
then the stream must contain number of bytes specified by scaleOrLength. If the second argument is a Reader
then the reader must contain the number of characters specified by scaleOrLength. If these conditions are not true the driver will generate a SQLException
when the statement is executed.
The default implementation will throw SQLFeatureNotSupportedException
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is
the name of the column
- x – the new column value
- targetSqlType – the SQL type to be sent to the database
- scaleOrLength – for an object of
java.math.BigDecimal
, this is the number of digits after the decimal point. For Java Object types InputStream
and Reader
, this is the length of the data in the stream or reader. For all other types, this value will be ignored.
Throws: - SQLException – if the columnLabel is not valid; if a database access error occurs; the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not
support this method; if the JDBC driver does not support the specified targetSqlType
See Also: Since: 1.8
/**
* Updates the designated column with an {@code Object} value.
*
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the {@code updateRow} or
* {@code insertRow} methods are called to update the database.
*<p>
* If the second argument is an {@code InputStream} then the stream must
* contain number of bytes specified by scaleOrLength. If the second
* argument is a {@code Reader} then the reader must contain the number
* of characters specified by scaleOrLength. If these conditions are not
* true the driver will generate a
* {@code SQLException} when the statement is executed.
*<p>
* The default implementation will throw {@code SQLFeatureNotSupportedException}
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is
* the name of the column
* @param x the new column value
* @param targetSqlType the SQL type to be sent to the database
* @param scaleOrLength for an object of {@code java.math.BigDecimal} ,
* this is the number of digits after the decimal point. For
* Java Object types {@code InputStream} and {@code Reader},
* this is the length
* of the data in the stream or reader. For all other types,
* this value will be ignored.
* @exception SQLException if the columnLabel is not valid;
* if a database access error occurs;
* the result set concurrency is {@code CONCUR_READ_ONLY}
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not
* support this method; if the JDBC driver does not support the specified targetSqlType
* @see JDBCType
* @see SQLType
* @since 1.8
*/
//#ifdef JAVA8
public void updateObject(String columnLabel, Object x,
SQLType targetSqlType, int scaleOrLength) throws SQLException {
updateObject(findColumn(columnLabel), x, targetSqlType, scaleOrLength);
}
//#endif JAVA8
Updates the designated column with an Object
value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow
or insertRow
methods are called to update the database. The default implementation will throw SQLFeatureNotSupportedException
Params: - columnIndex – the first column is 1, the second is 2, ...
- x – the new column value
- targetSqlType – the SQL type to be sent to the database
Throws: - SQLException – if the columnIndex is not valid; if a database access error occurs; the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not
support this method; if the JDBC driver does not support the specified targetSqlType
See Also: Since: 1.8
/**
* Updates the designated column with an {@code Object} value.
*
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the {@code updateRow} or
* {@code insertRow} methods are called to update the database.
*<p>
* The default implementation will throw {@code SQLFeatureNotSupportedException}
*
* @param columnIndex the first column is 1, the second is 2, ...
* @param x the new column value
* @param targetSqlType the SQL type to be sent to the database
* @exception SQLException if the columnIndex is not valid;
* if a database access error occurs;
* the result set concurrency is {@code CONCUR_READ_ONLY}
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not
* support this method; if the JDBC driver does not support the specified targetSqlType
* @see JDBCType
* @see SQLType
* @since 1.8
*/
//#ifdef JAVA8
public void updateObject(int columnIndex, Object x, SQLType targetSqlType)
throws SQLException {
preparedStatement.setObject(columnIndex, x, targetSqlType);
}
//#endif JAVA8
Updates the designated column with an Object
value. The updater methods are used to update column values in the current row or the insert row. The updater methods do not update the underlying database; instead the updateRow
or insertRow
methods are called to update the database. The default implementation will throw SQLFeatureNotSupportedException
Params: - columnLabel – the label for the column specified with the SQL AS
clause. If the SQL AS clause was not specified, then the label is
the name of the column
- x – the new column value
- targetSqlType – the SQL type to be sent to the database
Throws: - SQLException – if the columnLabel is not valid; if a database access error occurs; the result set concurrency is
CONCUR_READ_ONLY
or this method is called on a closed result set - SQLFeatureNotSupportedException – if the JDBC driver does not
support this method; if the JDBC driver does not support the specified targetSqlType
See Also: Since: 1.8
/**
* Updates the designated column with an {@code Object} value.
*
* The updater methods are used to update column values in the
* current row or the insert row. The updater methods do not
* update the underlying database; instead the {@code updateRow} or
* {@code insertRow} methods are called to update the database.
*<p>
* The default implementation will throw {@code SQLFeatureNotSupportedException}
*
* @param columnLabel the label for the column specified with the SQL AS
* clause. If the SQL AS clause was not specified, then the label is
* the name of the column
* @param x the new column value
* @param targetSqlType the SQL type to be sent to the database
* @exception SQLException if the columnLabel is not valid;
* if a database access error occurs;
* the result set concurrency is {@code CONCUR_READ_ONLY}
* or this method is called on a closed result set
* @exception SQLFeatureNotSupportedException if the JDBC driver does not
* support this method; if the JDBC driver does not support the specified targetSqlType
* @see JDBCType
* @see SQLType
* @since 1.8
*/
//#ifdef JAVA8
public void updateObject(String columnLabel, Object x,
SQLType targetSqlType) throws SQLException {
updateObject(findColumn(columnLabel), x, targetSqlType);
}
//#endif JAVA8
//#ifdef JAVA8
private Object getTimestampWithZone(int columnIndex) throws SQLException {
TimestampData v = (TimestampData) getColumnInType(columnIndex, Type.SQL_TIMESTAMP_WITH_TIME_ZONE);
if (v == null) {
return null;
}
ZoneOffset z = ZoneOffset.ofTotalSeconds(v.getZone());
LocalDateTime ldt = LocalDateTime.ofEpochSecond(v.getSeconds(), v.getNanos(), z);
return OffsetDateTime.of(ldt, z);
}
private Object getTimeWithZone(int columnIndex) throws SQLException {
TimeData v = (TimeData) getColumnInType(columnIndex, Type.SQL_TIME_WITH_TIME_ZONE);
if (v == null) {
return null;
}
long s = (v.getSeconds() + v.getZone());
if (s < 0) {
s += 3600 * 24;
}
s %= 3600 * 24;
ZoneOffset z = ZoneOffset.ofTotalSeconds(v.getZone());
LocalTime lt = LocalTime.ofNanoOfDay(s * 1000000000L + v.getNanos());
return OffsetTime.of(lt, z);
}
//#else
/*
private Object getTimestampWithZone(int columnIndex) throws SQLException {
TimestampData v = (TimestampData) getColumnInType(columnIndex, Type.SQL_TIMESTAMP_WITH_TIME_ZONE);
if (v == null) {
return null;
}
return Type.SQL_TIMESTAMP.convertSQLToJava(session, v);
}
private Object getTimeWithZone(int columnIndex) throws SQLException {
TimeData v = (TimeData) getColumnInType(columnIndex, Type.SQL_TIME_WITH_TIME_ZONE);
if (v == null) {
return null;
}
return Type.SQL_TIME.convertSQLToJava(session, v);
}
*/
//#endif JAVA8
//------------------------ Internal Implementation -----------------------------
The internal representation. /** The internal representation. */
private RowSetNavigator navigator;
The internal representation. /** The internal representation. */
protected ResultMetaData resultMetaData;
Translation of INTERVAL types
/**
* Translation of INTERVAL types
*/
private boolean translateTTIType;
How many columns does this ResultSet have? /** How many columns does this ResultSet have? */
private int columnCount;
Did the last getXXX method encounter a null value? /** Did the last getXXX method encounter a null value? */
private boolean wasNullValue;
The ResultSetMetaData object for this ResultSet /** The ResultSetMetaData object for this ResultSet */
private ResultSetMetaData resultSetMetaData;
Accelerates findColumn; Map /** Accelerates findColumn; Map<columnName, columnIndex> */
private IntValueHashMap columnMap;
The first warning in the chain. Null if there are no warnings. /** The first warning in the chain. Null if there are no warnings. */
private SQLWarning rootWarning;
If true, retrieves a lob as an in-memory object - this breaks updatability/** If true, retrieves a lob as an in-memory object - this breaks updatability*/
private boolean memoryLobs;
// -------------------------- Package Attributes ----------------------------
The Statement that generated this result. Null if the result is
from DatabaseMetaData
/**
* The Statement that generated this result. Null if the result is
* from DatabaseMetaData<p>
*/
JDBCStatementBase statement;
Session or ClientConnection
/**
* Session or ClientConnection
*/
SessionInterface session;
JDBCConnection for this. /** JDBCConnection for this. */
JDBCConnection connection;
The scrollability / scroll sensitivity type of this result.
/**
* The scrollability / scroll sensitivity type of this result.
*/
boolean isScrollable;
The updatability of this result. /** The updatability of this result. */
boolean isUpdatable;
The insertability of this result. /** The insertability of this result. */
boolean isInsertable;
int rsProperties;
int fetchSize;
Statement is closed when its result set is closed /** Statement is closed when its result set is closed */
boolean autoClose;
The underlying result. /** The underlying result. */
public Result result;
//-------------------------- Private Methods -------------------------------
Fetches the current row of the result set.
Throws: - SQLException – when result set is closed; result set is empty;
result set is before first; result set is after last; no row data is
available.
Returns: Object[]
/**
* Fetches the current row of the result set.
*
* @throws SQLException when result set is closed; result set is empty;
* result set is before first; result set is after last; no row data is
* available.
* @return Object[]
*/
protected Object[] getCurrent() throws SQLException {
final RowSetNavigator lnavigator = this.navigator;
if (lnavigator == null) {
throw JDBCUtil.sqlException(ErrorCode.X_24501);
} else if (lnavigator.isEmpty()) {
throw JDBCUtil.sqlException(ErrorCode.X_24504, ErrorCode.M_RS_EMPTY);
} else if (lnavigator.isBeforeFirst()) {
throw JDBCUtil.sqlException(ErrorCode.X_24504,
ErrorCode.M_RS_BEFORE_FIRST);
} else if (lnavigator.isAfterLast()) {
throw JDBCUtil.sqlException(ErrorCode.X_24504,
ErrorCode.M_RS_AFTER_LAST);
}
Object[] data = lnavigator.getCurrent();
if (data == null) {
throw JDBCUtil.sqlException(ErrorCode.X_24501);
}
return data;
}
Internal closed state check.
Throws: - SQLException – when this result set is closed
/**
* Internal closed state check.
*
* @throws SQLException when this result set is closed
*/
private void checkClosed() throws SQLException {
if (navigator == null) {
throw JDBCUtil.sqlException(ErrorCode.X_24501);
}
}
Internal column index validity check.
Params: - columnIndex – to check
Throws: - SQLException – when this ResultSet has no such column
/**
* Internal column index validity check.
*
* @param columnIndex to check
* @throws SQLException when this ResultSet has no such column
*/
protected void checkColumn(int columnIndex) throws SQLException {
if (navigator == null) {
throw JDBCUtil.sqlException(ErrorCode.X_24501);
}
if (columnIndex < 1 || columnIndex > columnCount) {
throw JDBCUtil.sqlException(ErrorCode.JDBC_COLUMN_NOT_FOUND,
String.valueOf(columnIndex));
}
}
Internal wasNull tracker.
Params: - o – the Object to track
Returns: boolean
/**
* Internal wasNull tracker.
*
* @param o the Object to track
* @return boolean
*/
protected boolean trackNull(Object o) {
return (wasNullValue = (o == null));
}
Internal get value.
/**
* Internal get value.
*/
protected Object getColumnValue(int columnIndex) throws SQLException {
Object[] rowData = getCurrent();
Object value;
checkColumn(columnIndex);
value = rowData[columnIndex - 1];
trackNull(value);
return value;
}
Internal value converter.
All trivially successful getXXX methods eventually go through this
method, converting if necessary from the source type to the
requested type.
Conversion to the JDBC representation, if different, is handled by the
calling methods.
Params: - columnIndex – of the column value for which to perform the
conversion
- targetType – the org.hsqldb.types.Type object for targetType
Throws: - SQLException – when there is no rowData, the column index is
invalid, or the conversion cannot be performed
Returns: an Object of the requested targetType, representing the value of the
specified column
/**
* Internal value converter. <p>
*
* All trivially successful getXXX methods eventually go through this
* method, converting if necessary from the source type to the
* requested type. <p>
*
* Conversion to the JDBC representation, if different, is handled by the
* calling methods.
*
* @param columnIndex of the column value for which to perform the
* conversion
* @param targetType the org.hsqldb.types.Type object for targetType
* @return an Object of the requested targetType, representing the value of the
* specified column
* @throws SQLException when there is no rowData, the column index is
* invalid, or the conversion cannot be performed
*/
protected Object getColumnInType(int columnIndex,
Type targetType) throws SQLException {
Object value = getColumnValue(columnIndex);
Type sourceType;
if (value == null) {
return null;
}
sourceType = resultMetaData.columnTypes[columnIndex - 1];
if (translateTTIType && targetType.isIntervalType()) {
targetType = ((IntervalType) targetType).getCharacterType();
}
if (sourceType.typeCode != targetType.typeCode) {
try {
value = targetType.convertToTypeJDBC(session, value,
sourceType);
} catch (Exception e) {
String stringValue = (value instanceof Number
|| value
instanceof String) ? value.toString()
: "instance of " + value.getClass().getName();
String msg = "from SQL type " + sourceType.getNameString()
+ " to " + targetType.getJDBCClassName()
+ ", value: " + stringValue;
throw JDBCUtil.sqlException(ErrorCode.X_42561, msg);
}
}
return value;
}
private void checkNotForwardOnly() throws SQLException {
if (!isScrollable) {
throw JDBCUtil.notSupported();
}
}
//-------------------------- Updates --------------------------------------
JDBCPreparedStatement preparedStatement;
boolean isRowUpdated;
boolean isOnInsertRow;
-2 after moveToInsertRow()
-1 before any updateXXX()
row number after any updateXXX()
-1 after updateRow(), clearUpdate() or moveToCurrentRow();
/**
* -2 after moveToInsertRow()
* -1 before any updateXXX()
* row number after any updateXXX()
* -1 after updateRow(), clearUpdate() or moveToCurrentRow();
*/
int currentUpdateRowNumber;
private void checkUpdatable() throws SQLException {
checkClosed();
if (!isUpdatable) {
throw JDBCUtil.notUpdatableColumn();
}
}
private void checkUpdatable(int columnIndex) throws SQLException {
checkClosed();
checkColumn(columnIndex);
if (!isUpdatable) {
throw JDBCUtil.notUpdatableColumn();
}
if (resultMetaData.colIndexes[--columnIndex] == -1) {
throw JDBCUtil.notUpdatableColumn();
}
if (!resultMetaData.columns[columnIndex].isWriteable()) {
throw JDBCUtil.notUpdatableColumn();
}
}
void startUpdate(int columnIndex) throws SQLException {
checkUpdatable(columnIndex);
if (currentUpdateRowNumber != navigator.getRowNumber()) {
preparedStatement.clearParameters();
}
currentUpdateRowNumber = navigator.getRowNumber();
isRowUpdated = true;
}
private void clearUpdates() throws SQLException {
checkUpdatable();
preparedStatement.clearParameters();
isRowUpdated = false;
}
private void startInsert() throws SQLException {
checkUpdatable();
// check insertable
isOnInsertRow = true;
}
private void endInsert() throws SQLException {
checkUpdatable();
preparedStatement.clearParameters();
isOnInsertRow = false;
}
private void performUpdate() throws SQLException {
preparedStatement.parameterValues[columnCount] =
getCurrent()[columnCount];
for (int i = 0; i < columnCount; i++) {
boolean set = preparedStatement.parameterSet[i] != null;
preparedStatement.resultOut.metaData.columnTypes[i] = set
? preparedStatement.parameterTypes[i]
: Type.SQL_ALL_TYPES;
}
preparedStatement.resultOut.setActionType(
ResultConstants.UPDATE_CURSOR);
preparedStatement.fetchResult();
preparedStatement.clearParameters();
rootWarning = preparedStatement.getWarnings();
preparedStatement.clearWarnings();
isRowUpdated = false;
}
private void performInsert() throws SQLException {
checkUpdatable();
for (int i = 0; i < columnCount; i++) {
boolean set = preparedStatement.parameterSet[i] != null;
if (!set) {
throw JDBCUtil.sqlException(ErrorCode.X_24515);
}
preparedStatement.resultOut.metaData.columnTypes[i] =
preparedStatement.parameterTypes[i];
}
preparedStatement.resultOut.setActionType(
ResultConstants.INSERT_CURSOR);
preparedStatement.fetchResult();
preparedStatement.clearParameters();
rootWarning = preparedStatement.getWarnings();
preparedStatement.clearWarnings();
}
private void performDelete() throws SQLException {
checkUpdatable();
preparedStatement.parameterValues[columnCount] =
getCurrent()[columnCount];
preparedStatement.resultOut.metaData.columnTypes[columnCount] =
resultMetaData.columnTypes[columnCount];
preparedStatement.resultOut.setActionType(
ResultConstants.DELETE_CURSOR);
preparedStatement.fetchResult();
preparedStatement.clearParameters();
rootWarning = preparedStatement.getWarnings();
preparedStatement.clearWarnings();
}
//-------------------------- Other Methods --------------------------------
// HSQLDB Specific
RowSetNavigator getNavigator() {
return navigator;
}
void setNavigator(RowSetNavigator navigator) {
this.navigator = navigator;
}
//------------------------------ Constructors -------------------------------
Constructs a new JDBCResultSet
object using the specified
navigator and org.hsqldb.result.ResultMetaData
.
Params: - conn – JDBCConnection
- s – the statement
- r – the internal result form that the new
JDBCResultSet
represents - metaData – the connection properties
/**
* Constructs a new <code>JDBCResultSet</code> object using the specified
* navigator and <code>org.hsqldb.result.ResultMetaData</code>.
* <p>
*
* @param conn JDBCConnection
* @param s the statement
* @param r the internal result form that the new
* <code>JDBCResultSet</code> represents
* @param metaData the connection properties
*/
public JDBCResultSet(JDBCConnection conn, JDBCStatementBase s, Result r,
ResultMetaData metaData) {
this(conn, r, metaData);
this.statement = s;
isScrollable = ResultProperties.isScrollable(rsProperties);
if (ResultProperties.isUpdatable(rsProperties)) {
isUpdatable = true;
isInsertable = true;
for (int i = 0; i < metaData.colIndexes.length; i++) {
if (metaData.colIndexes[i] < 0) {
isInsertable = false;
break;
}
}
preparedStatement = new JDBCPreparedStatement(s.connection, result);
}
}
public JDBCResultSet(JDBCConnection conn, Result r,
ResultMetaData metaData) {
this.session = conn == null ? null
: conn.sessionProxy;
this.result = r;
this.connection = conn;
rsProperties = r.rsProperties;
navigator = r.getNavigator();
resultMetaData = metaData;
columnCount = resultMetaData.getColumnCount();
if (conn != null) {
translateTTIType = conn.isTranslateTTIType;
if (conn.connProperties != null) {
memoryLobs = conn.connProperties.isPropertyTrue(
HsqlDatabaseProperties.url_memory_lobs, false);
}
}
}
Factory method returns a new JDBCResultSet
object for
use with user defined functions that return a ResultSet object.
See org.hsqldb.jdbc.JDBCArrayBasic
for usage example.
Params: - r – the internal result form that the new
JDBCResultSet
represents - metaData – the connection properties
Returns: ResultSet
/**
* Factory method returns a new <code>JDBCResultSet</code> object for
* use with user defined functions that return a ResultSet object.
* See <code>org.hsqldb.jdbc.JDBCArrayBasic</code> for usage example.
* <p>
*
* @param r the internal result form that the new
* <code>JDBCResultSet</code> represents
* @param metaData the connection properties
* @return ResultSet
*/
public static JDBCResultSet newJDBCResultSet(Result r,
ResultMetaData metaData) {
return new JDBCResultSetBasic(r, metaData);
}
public static JDBCResultSet newEmptyResultSet() {
ResultMetaData md = ResultMetaData.newResultMetaData(1);
ColumnBase column =
new ColumnBase(null, null, null, "C1");
column.setType(Type.SQL_INTEGER);
md.columnTypes[0] = Type.SQL_INTEGER;
md.columns[0] = column;
Result r = Result.newSingleColumnResult(md);
return newJDBCResultSet(r, md);
}
static class JDBCResultSetBasic extends JDBCResultSet {
JDBCResultSetBasic(Result r, ResultMetaData metaData) {
super(null, r, metaData);
}
protected Object getColumnInType(int columnIndex,
Type targetType) throws SQLException {
Object[] rowData = getCurrent();
Type sourceType;
Object value;
checkColumn(columnIndex);
sourceType = resultMetaData.columnTypes[--columnIndex];
value = rowData[columnIndex];
if (trackNull(value)) {
return null;
}
if (sourceType.typeCode != targetType.typeCode) {
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
return value;
}
public Date getDate(int columnIndex) throws SQLException {
return (Date) getColumnInType(columnIndex, Type.SQL_DATE);
}
public Time getTime(int columnIndex) throws SQLException {
return (Time) getColumnInType(columnIndex, Type.SQL_DATE);
}
public Timestamp getTimestamp(int columnIndex) throws SQLException {
return (Timestamp) getColumnInType(columnIndex, Type.SQL_DATE);
}
public java.io.InputStream getBinaryStream(
int columnIndex) throws SQLException {
throw JDBCUtil.notSupported();
}
public java.io.Reader getCharacterStream(
int columnIndex) throws SQLException {
throw JDBCUtil.notSupported();
}
public Blob getBlob(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
Object o = getColumnInType(columnIndex, sourceType);
if (o == null) {
return null;
}
if (o instanceof Blob) {
return (Blob) o;
} else if (o instanceof byte[]) {
return new JDBCBlob((byte[]) o);
}
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
public Clob getClob(int columnIndex) throws SQLException {
checkColumn(columnIndex);
Type sourceType = resultMetaData.columnTypes[columnIndex - 1];
Object o = getColumnInType(columnIndex, sourceType);
if (o == null) {
return null;
}
if (o instanceof Clob) {
return (Clob) o;
} else if (o instanceof String) {
return new JDBCClob((String) o);
}
throw JDBCUtil.sqlException(ErrorCode.X_42561);
}
public Time getTime(int columnIndex,
Calendar cal) throws SQLException {
throw JDBCUtil.notSupported();
}
public Timestamp getTimestamp(int columnIndex,
Calendar cal) throws SQLException {
throw JDBCUtil.notSupported();
}
}
}