public abstract class AbstractPreparedStatement extends FBStatement implements FirebirdPreparedStatement
PreparedStatement
interface. This class
contains all methods from the JDBC 2.0 specification.FBStatement.StatementResult
Modifier and Type | Field and Description |
---|---|
protected java.util.List<java.lang.Object> |
batchList |
protected boolean[] |
isParamSet |
static java.lang.String |
METHOD_NOT_SUPPORTED |
completed, connection, currentStatementResult, fbStatement, fetchSize, firstWarning, gdsHelper, isSingletonResult, jdbcVersionSupport, maxRows, specialResult, statementListener
TYPE_COMMIT, TYPE_DDL, TYPE_DELETE, TYPE_EXEC_PROCEDURE, TYPE_GET_SEGMENT, TYPE_INSERT, TYPE_PUT_SEGMENT, TYPE_ROLLBACK, TYPE_SELECT, TYPE_SELECT_FOR_UPDATE, TYPE_SET_GENERATOR, TYPE_START_TRANS, TYPE_UPDATE
Modifier | Constructor and Description |
---|---|
protected |
AbstractPreparedStatement(GDSHelper c,
int rsType,
int rsConcurrency,
int rsHoldability,
FBObjectListener.StatementListener statementListener,
FBObjectListener.BlobListener blobListener)
Create instance of this class for the specified result set type and
concurrency.
|
protected |
AbstractPreparedStatement(GDSHelper c,
java.lang.String sql,
int rsType,
int rsConcurrency,
int rsHoldability,
FBObjectListener.StatementListener statementListener,
FBObjectListener.BlobListener blobListener,
boolean metaDataQuery,
boolean standaloneStatement,
boolean generatedKeys)
Create instance of this class and prepare SQL statement.
|
Modifier and Type | Method and Description |
---|---|
void |
addBatch()
Adds a set of parameters to this
PreparedStatement
object's batch of commands. |
void |
addBatch(java.lang.String sql)
Adds an SQL command to the current batch of commmands for this
Statement object. |
void |
clearBatch()
Makes the set of commands in the current batch empty.
|
void |
clearParameters()
Clears the current parameter values immediately.
|
void |
completeStatement(CompletionReason reason) |
boolean |
execute()
Executes any kind of SQL statement.
|
boolean |
execute(java.lang.String sql)
Executes an SQL statement that may return multiple results.
|
boolean |
execute(java.lang.String sql,
int autoGeneratedKeys)
Executes the given SQL statement, which may return multiple results,
and signals the driver that any
auto-generated keys should be made available
for retrieval.
|
boolean |
execute(java.lang.String sql,
int[] columnIndexes)
Executes the given SQL statement, which may return multiple results,
and signals the driver that the
auto-generated keys indicated in the given array should be made available
for retrieval.
|
boolean |
execute(java.lang.String sql,
java.lang.String[] columnNames)
Executes the given SQL statement, which may return multiple results,
and signals the driver that the
auto-generated keys indicated in the given array should be made available
for retrieval.
|
protected java.util.List<java.lang.Long> |
executeBatchInternal() |
long |
executeLargeUpdate() |
java.sql.ResultSet |
executeQuery()
Executes the SQL query in this
PreparedStatement object
and returns the result set generated by the query. |
java.sql.ResultSet |
executeQuery(java.lang.String sql)
Executes an SQL statement that returns a single
ResultSet object. |
int |
executeUpdate()
Executes the SQL INSERT, UPDATE or DELETE statement in this
PreparedStatement object. |
int |
executeUpdate(java.lang.String sql)
Executes an SQL
INSERT , UPDATE or
DELETE statement. |
int |
executeUpdate(java.lang.String sql,
int autoGeneratedKeys)
Executes the given SQL statement and signals the driver with the
given flag about whether the
auto-generated keys produced by this
Statement object
should be made available for retrieval. |
int |
executeUpdate(java.lang.String sql,
int[] columnIndex)
Executes the given SQL statement and signals the driver that the
auto-generated keys indicated in the given array should be made available
for retrieval.
|
int |
executeUpdate(java.lang.String sql,
java.lang.String[] columnNames)
Executes the given SQL statement and signals the driver that the
auto-generated keys indicated in the given array should be made available
for retrieval.
|
java.lang.String |
getExecutionPlan()
Get the execution plan of this PreparedStatement
|
protected FBField |
getField(int columnIndex)
Factory method for the field access objects
|
FirebirdParameterMetaData |
getFirebirdParameterMetaData() |
java.sql.ResultSetMetaData |
getMetaData()
Retrieves a
ResultSetMetaData object that contains
information about the columns of the ResultSet object
that will be returned when this PreparedStatement object
is executed. |
protected FieldDescriptor |
getParameterDescriptor(int columnIndex)
Returns the
FieldDescriptor of the specified parameter. |
java.sql.ParameterMetaData |
getParameterMetaData() |
int |
getStatementType()
Get the statement type of this PreparedStatement.
|
protected boolean |
internalExecute(boolean sendOutParams)
Execute this statement.
|
protected boolean |
isGeneratedKeyQuery() |
protected void |
notifyStatementCompleted(boolean success) |
protected void |
prepareFixedStatement(java.lang.String sql)
Prepare fixed statement and initialize parameters.
|
void |
setArray(int i,
java.sql.Array x)
Sets the designated parameter to the given
Array object. |
void |
setAsciiStream(int parameterIndex,
java.io.InputStream x) |
void |
setAsciiStream(int parameterIndex,
java.io.InputStream x,
int length)
Sets the designated parameter to the given input stream, which will have
the specified number of bytes.
|
void |
setAsciiStream(int parameterIndex,
java.io.InputStream x,
long length) |
void |
setBigDecimal(int parameterIndex,
java.math.BigDecimal x)
Sets the designated parameter to the given BigDecimal
|
void |
setBinaryStream(int parameterIndex,
java.io.InputStream inputStream) |
void |
setBinaryStream(int parameterIndex,
java.io.InputStream inputStream,
int length) |
void |
setBinaryStream(int parameterIndex,
java.io.InputStream inputStream,
long length) |
void |
setBlob(int parameterIndex,
java.sql.Blob blob)
Sets the designated parameter to the given
Blob object. |
void |
setBlob(int parameterIndex,
java.io.InputStream inputStream) |
void |
setBlob(int parameterIndex,
java.io.InputStream inputStream,
long length) |
void |
setBoolean(int parameterIndex,
boolean x)
Sets the designated parameter to the given boolean value.
|
void |
setByte(int parameterIndex,
byte x)
Sets the designated parameter to the given byte value.
|
void |
setBytes(int parameterIndex,
byte[] x)
Set the designated parameter to the given byte array.
|
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader) |
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader,
int length) |
void |
setCharacterStream(int parameterIndex,
java.io.Reader reader,
long length) |
void |
setClob(int parameterIndex,
java.sql.Clob clob)
Sets the designated parameter to the given
Clob object. |
void |
setClob(int parameterIndex,
java.io.Reader reader) |
void |
setClob(int parameterIndex,
java.io.Reader reader,
long length) |
void |
setDate(int parameterIndex,
java.sql.Date x)
Sets the designated parameter to the given date value.
|
void |
setDate(int parameterIndex,
java.sql.Date x,
java.util.Calendar cal)
Sets the designated parameter to the given
java.sql.Date
value, using the given Calendar object. |
void |
setDouble(int parameterIndex,
double x)
Sets the designated parameter to the given double value.
|
void |
setFloat(int parameterIndex,
float x)
Sets the designated parameter to the given floate value.
|
void |
setInt(int parameterIndex,
int x)
Sets the designated parameter to the given int value.
|
void |
setLong(int parameterIndex,
long x)
Sets the designated parameter to the given long value.
|
void |
setNCharacterStream(int parameterIndex,
java.io.Reader value) |
void |
setNCharacterStream(int parameterIndex,
java.io.Reader value,
long length) |
void |
setNClob(int parameterIndex,
java.sql.NClob value) |
void |
setNClob(int parameterIndex,
java.io.Reader reader) |
void |
setNClob(int parameterIndex,
java.io.Reader reader,
long length) |
void |
setNString(int parameterIndex,
java.lang.String value) |
void |
setNull(int parameterIndex,
int sqlType)
Sets the designated parameter to SQL
NULL . |
void |
setNull(int parameterIndex,
int sqlType,
java.lang.String typeName)
Sets the designated parameter to SQL
NULL . |
void |
setObject(int parameterIndex,
java.lang.Object x)
Sets the value of the designated parameter with the given object.
|
void |
setObject(int parameterIndex,
java.lang.Object x,
int targetSqlType)
Sets the value of the designated parameter with the given object.
|
void |
setObject(int parameterIndex,
java.lang.Object x,
int targetSqlType,
int scale)
Sets the value of the designated parameter with the given object.
|
void |
setRef(int i,
java.sql.Ref x)
Sets the designated parameter to the given
REF(<structured-type>) value. |
void |
setRowId(int parameterIndex,
java.sql.RowId x) |
void |
setShort(int parameterIndex,
short x)
Sets the designated parameter to the given short value.
|
void |
setSQLXML(int parameterIndex,
java.sql.SQLXML xmlObject) |
void |
setString(int parameterIndex,
java.lang.String x)
Sets the designated parameter to the given String value.
|
void |
setStringForced(int parameterIndex,
java.lang.String x)
Sets the designated parameter to the given String value.
|
void |
setTime(int parameterIndex,
java.sql.Time x)
Sets the designated parameter to the given Time value.
|
void |
setTime(int parameterIndex,
java.sql.Time x,
java.util.Calendar cal)
Sets the designated parameter to the given
java.sql.Time
value, using the given Calendar object. |
void |
setTimestamp(int parameterIndex,
java.sql.Timestamp x)
Sets the designated parameter to the given Timestamp value.
|
void |
setTimestamp(int parameterIndex,
java.sql.Timestamp x,
java.util.Calendar cal)
Sets the designated parameter to the given
java.sql.Timestamp value, using the given
Calendar object. |
void |
setUnicodeStream(int parameterIndex,
java.io.InputStream x,
int length)
Deprecated.
|
void |
setURL(int parameterIndex,
java.net.URL url) |
addWarning, cancel, checkValidity, clearWarnings, close, closeOnCompletion, completeStatement, createStatementListener, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, equals, executeBatch, executeImpl, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, finalize, forgetResultSet, getConnection, getCurrentResultSet, getDeletedRowsCount, getFetchDirection, getFetchSize, getGeneratedKeys, getInsertedRowsCount, getLargeMaxRows, getLargeUpdateCount, getLastExecutionPlan, getLocalStatementId, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getSynchronizationObject, getUpdateCount, getUpdatedRowsCount, getWarnings, hashCode, hasOpenResultSet, internalExecute, isClosed, isCloseOnCompletion, isExecuteProcedureStatement, isPoolable, isSimpleIdentifier, isValid, isWrapperFor, nativeSQL, notifyStatementCompleted, notifyStatementStarted, notifyStatementStarted, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout, toArray, toLargeArray, unwrap
clone, getClass, notify, notifyAll, toString, wait, wait, wait
getCurrentResultSet, getDeletedRowsCount, getInsertedRowsCount, getLastExecutionPlan, getLocalStatementId, getUpdatedRowsCount, hasOpenResultSet, isClosed, isValid
cancel, clearWarnings, close, closeOnCompletion, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
public static final java.lang.String METHOD_NOT_SUPPORTED
protected boolean[] isParamSet
protected final java.util.List<java.lang.Object> batchList
protected AbstractPreparedStatement(GDSHelper c, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener) throws java.sql.SQLException
FBCallableStatement
since the statement is prepared right before the execution.c
- instance of GDSHelper
that will be used to perform all
database activities.rsType
- desired result set type.rsConcurrency
- desired result set concurrency.statementListener
- statement listener that will be notified about
the statement start, close and completion.java.sql.SQLException
- if something went wrong.protected AbstractPreparedStatement(GDSHelper c, java.lang.String sql, int rsType, int rsConcurrency, int rsHoldability, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener, boolean metaDataQuery, boolean standaloneStatement, boolean generatedKeys) throws java.sql.SQLException
c
- connection to be used.sql
- SQL statement to prepare.rsType
- type of result set to create.rsConcurrency
- result set concurrency.java.sql.SQLException
- if something went wrong.public void completeStatement(CompletionReason reason) throws java.sql.SQLException
completeStatement
in class FBStatement
java.sql.SQLException
protected void notifyStatementCompleted(boolean success) throws java.sql.SQLException
notifyStatementCompleted
in class FBStatement
java.sql.SQLException
public java.sql.ResultSet executeQuery() throws java.sql.SQLException
PreparedStatement
object
and returns the result set generated by the query.executeQuery
in interface java.sql.PreparedStatement
ResultSet
object that contains the data produced
by the query; never null
java.sql.SQLException
- if a database access error occurspublic int executeUpdate() throws java.sql.SQLException
PreparedStatement
object. In addition, SQL statements that
return nothing, such as SQL DDL statements, can be executed.executeUpdate
in interface java.sql.PreparedStatement
java.sql.SQLException
- if a database access error occurspublic FirebirdParameterMetaData getFirebirdParameterMetaData() throws java.sql.SQLException
java.sql.SQLException
public void setNull(int parameterIndex, int sqlType) throws java.sql.SQLException
NULL
.
Note: You must specify the parameter's SQL type.
setNull
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...sqlType
- the SQL type code defined in java.sql.Types
java.sql.SQLException
- if a database access error occurspublic void setBinaryStream(int parameterIndex, java.io.InputStream inputStream, int length) throws java.sql.SQLException
setBinaryStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBinaryStream(int parameterIndex, java.io.InputStream inputStream, long length) throws java.sql.SQLException
setBinaryStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBinaryStream(int parameterIndex, java.io.InputStream inputStream) throws java.sql.SQLException
setBinaryStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBytes(int parameterIndex, byte[] x) throws java.sql.SQLException
setBytes
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The byte array to be setjava.sql.SQLException
- if a database access occurspublic void setBoolean(int parameterIndex, boolean x) throws java.sql.SQLException
setBoolean
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The boolean value to be setjava.sql.SQLException
- if a database access occurspublic void setByte(int parameterIndex, byte x) throws java.sql.SQLException
setByte
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The byte value to be setjava.sql.SQLException
- if a database access occurspublic void setDate(int parameterIndex, java.sql.Date x) throws java.sql.SQLException
setDate
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The date value to be setjava.sql.SQLException
- if a database access occurspublic void setDouble(int parameterIndex, double x) throws java.sql.SQLException
setDouble
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The double value to be setjava.sql.SQLException
- if a database access occurspublic void setFloat(int parameterIndex, float x) throws java.sql.SQLException
setFloat
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The float value to be setjava.sql.SQLException
- if a database access occurspublic void setInt(int parameterIndex, int x) throws java.sql.SQLException
setInt
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The int value to be setjava.sql.SQLException
- if a database access occurspublic void setLong(int parameterIndex, long x) throws java.sql.SQLException
setLong
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The long value to be setjava.sql.SQLException
- if a database access occurspublic void setObject(int parameterIndex, java.lang.Object x) throws java.sql.SQLException
setObject
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the parameter valuejava.sql.SQLException
- if a database access error occurspublic void setShort(int parameterIndex, short x) throws java.sql.SQLException
setShort
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The short value to be setjava.sql.SQLException
- if a database access occurspublic void setString(int parameterIndex, java.lang.String x) throws java.sql.SQLException
setString
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The String value to be setjava.sql.SQLException
- if a database access occurspublic void setStringForced(int parameterIndex, java.lang.String x) throws java.sql.SQLException
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The String value to be setjava.sql.SQLException
- if a database access occurspublic void setTime(int parameterIndex, java.sql.Time x) throws java.sql.SQLException
setTime
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The Time value to be setjava.sql.SQLException
- if a database access occurspublic void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws java.sql.SQLException
setTimestamp
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The Timestamp value to be setjava.sql.SQLException
- if a database access occurspublic void setBigDecimal(int parameterIndex, java.math.BigDecimal x) throws java.sql.SQLException
setBigDecimal
in interface java.sql.PreparedStatement
parameterIndex
- The first parameter is 1, second is 2, ...x
- The BigDecimal to be set as a parameterjava.sql.SQLException
- if a database access error occursprotected FieldDescriptor getParameterDescriptor(int columnIndex)
FieldDescriptor
of the specified parameter.columnIndex
- 1-based index of the parameterprotected FBField getField(int columnIndex) throws java.sql.SQLException
java.sql.SQLException
public final void setAsciiStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
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.
setAsciiStream
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the Java input stream that contains the ASCII parameter valuelength
- the number of bytes in the streamjava.sql.SQLException
- if a database access error occurspublic final void setAsciiStream(int parameterIndex, java.io.InputStream x, long length) throws java.sql.SQLException
setAsciiStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public final void setAsciiStream(int parameterIndex, java.io.InputStream x) throws java.sql.SQLException
setAsciiStream
in interface java.sql.PreparedStatement
java.sql.SQLException
@Deprecated public void setUnicodeStream(int parameterIndex, java.io.InputStream x, int length) throws java.sql.SQLException
For old behavior use setBinaryStream(int, InputStream, int)
. For JDBC suggested behavior,
use setCharacterStream(int, Reader, int)
.
setUnicodeStream
in interface java.sql.PreparedStatement
java.sql.SQLFeatureNotSupportedException
- Alwaysjava.sql.SQLException
public void setURL(int parameterIndex, java.net.URL url) throws java.sql.SQLException
setURL
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNCharacterStream(int parameterIndex, java.io.Reader value, long length) throws java.sql.SQLException
Implementation note: This method behaves exactly the same as setCharacterStream(int, Reader, long)
.
setNCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNCharacterStream(int parameterIndex, java.io.Reader value) throws java.sql.SQLException
Implementation note: This method behaves exactly the same as setCharacterStream(int, Reader)
.
setNCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
Implementation note: This method behaves exactly the same as setClob(int, Reader, long)
.
setNClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
Implementation note: This method behaves exactly the same as setClob(int, Reader)
.
setNClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNString(int parameterIndex, java.lang.String value) throws java.sql.SQLException
Implementation note: This method behaves exactly the same as setString(int, String)
.
setNString
in interface java.sql.PreparedStatement
java.sql.SQLException
public void clearParameters() throws java.sql.SQLException
In general, parameter values remain in force for repeated use of a
statement. Setting a parameter value automatically clears its previous
value. However, in some cases it is useful to immediately release the
resources used by the current parameter values; this can be done by
calling the method clearParameters
.
clearParameters
in interface java.sql.PreparedStatement
java.sql.SQLException
- if a database access error occurspublic void setObject(int parameterIndex, java.lang.Object x, int targetSqlType, int scale) throws java.sql.SQLException
Sets the value of the designated parameter with the given object. The
second argument must be an object type; for integral values, the
java.lang
equivalent objects should be used.
The given Java object will be converted to the given targetSqlType before
being sent to the database.
If the object has a custom mapping (is of a class implementing the
interface SQLData
), the JDBC driver should call the
method SQLData.writeSQL
to write it to the SQL data
stream. If, on the other hand, the object is of a class implementing Ref,
Blob, Clob, Struct, or Array, the driver should pass it to the database
as a value of the corresponding SQL type.
Note that this method may be used to pass datatabase- specific abstract data types.
setObject
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the input parameter valuetargetSqlType
- the SQL type (as defined in java.sql.Types) to be sent to the
database. The scale argument may further qualify this type.scale
- for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types,
this is the number of digits after the decimal point. For all
other types, this value will be ignored.java.sql.SQLException
- if a database access error occursTypes
public void setObject(int parameterIndex, java.lang.Object x, int targetSqlType) throws java.sql.SQLException
setObject
above, except that it
assumes a scale of zero.setObject
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the input parameter valuetargetSqlType
- the SQL type (as defined in java.sql.Types) to be sent to the
databasejava.sql.SQLException
- if a database access error occurspublic boolean execute() throws java.sql.SQLException
execute
method handles these complex
statements as well as the simpler form of statements handled by the
methods executeQuery
and executeUpdate
.execute
in interface java.sql.PreparedStatement
java.sql.SQLException
- if a database access error occursStatement.execute(java.lang.String)
protected boolean internalExecute(boolean sendOutParams) throws java.sql.SQLException
sendOutParams
- Determines if the XSQLDA structure should be sent to the
databasetrue
if the statement has more result sets.java.sql.SQLException
protected boolean isGeneratedKeyQuery()
isGeneratedKeyQuery
in class FBStatement
true
when the current statement is expected to return generated keys, false
otherwise.public void addBatch() throws java.sql.SQLException
PreparedStatement
object's batch of commands.addBatch
in interface java.sql.PreparedStatement
java.sql.SQLException
- if a database access error occursStatement.addBatch(java.lang.String)
,
What Is in the JDBC 2.0 API
public void clearBatch() throws java.sql.SQLException
clearBatch
in interface java.sql.Statement
clearBatch
in class FBStatement
java.sql.SQLException
- if a database access error occurs or the driver does not
support batch statementsprotected java.util.List<java.lang.Long> executeBatchInternal() throws java.sql.SQLException
executeBatchInternal
in class FBStatement
java.sql.SQLException
public void setCharacterStream(int parameterIndex, java.io.Reader reader, int length) throws java.sql.SQLException
setCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setCharacterStream(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
setCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setCharacterStream(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
setCharacterStream
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setRef(int i, java.sql.Ref x) throws java.sql.SQLException
REF(<structured-type>)
value.setRef
in interface java.sql.PreparedStatement
i
- the first parameter is 1, the second is 2, ...x
- an SQL REF
valuejava.sql.SQLException
- if a database access error occurspublic void setBlob(int parameterIndex, java.sql.Blob blob) throws java.sql.SQLException
Blob
object.setBlob
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...blob
- a Blob
object that maps an SQL
BLOB
valuejava.sql.SQLException
- if a database access error occurspublic void setBlob(int parameterIndex, java.io.InputStream inputStream, long length) throws java.sql.SQLException
setBlob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setBlob(int parameterIndex, java.io.InputStream inputStream) throws java.sql.SQLException
setBlob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setClob(int parameterIndex, java.sql.Clob clob) throws java.sql.SQLException
Clob
object.setClob
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...clob
- a Clob
object that maps an SQL
CLOB
valuejava.sql.SQLException
- if a database access error occurspublic void setClob(int parameterIndex, java.io.Reader reader, long length) throws java.sql.SQLException
setClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setClob(int parameterIndex, java.io.Reader reader) throws java.sql.SQLException
setClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setArray(int i, java.sql.Array x) throws java.sql.SQLException
Array
object.
Sets an Array parameter.setArray
in interface java.sql.PreparedStatement
i
- the first parameter is 1, the second is 2, ...x
- an Array
object that maps an SQL
ARRAY
valuejava.sql.SQLException
- if a database access error occurspublic java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException
ResultSetMetaData
object that contains
information about the columns of the ResultSet
object
that will be returned when this PreparedStatement
object
is executed.
Because a PreparedStatement
object is precompiled, it is
possible to know about the ResultSet
object that it will
return without having to execute it. Consequently, it is possible
to invoke the method getMetaData
on a
PreparedStatement
object rather than waiting to execute
it and then invoking the ResultSet.getMetaData
method
on the ResultSet
object that is returned.
getMetaData
in interface java.sql.PreparedStatement
ResultSet
object's columns or
null
if the driver cannot return a
ResultSetMetaData
objectjava.sql.SQLException
- if a database access error occurs or
this method is called on a closed PreparedStatement
java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this methodpublic void setDate(int parameterIndex, java.sql.Date x, java.util.Calendar cal) throws java.sql.SQLException
java.sql.Date
value, using the given Calendar
object. The driver uses
the Calendar
object to construct an SQL DATE
value, which the driver then sends to the database. With a a
Calendar
object, the driver can calculate the date taking
into account a custom timezone. If no Calendar
object is
specified, the driver uses the default timezone, which is that of the
virtual machine running the application.setDate
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the datejava.sql.SQLException
- if a database access error occurspublic void setTime(int parameterIndex, java.sql.Time x, java.util.Calendar cal) throws java.sql.SQLException
java.sql.Time
value, using the given Calendar
object. The driver uses
the Calendar
object to construct an SQL TIME
value, which the driver then sends to the database. With a a
Calendar
object, the driver can calculate the time taking
into account a custom timezone. If no Calendar
object is
specified, the driver uses the default timezone, which is that of the
virtual machine running the application.setTime
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the timejava.sql.SQLException
- if a database access error occurspublic void setTimestamp(int parameterIndex, java.sql.Timestamp x, java.util.Calendar cal) throws java.sql.SQLException
java.sql.Timestamp
value, using the given
Calendar
object. The driver uses the Calendar
object to construct an SQL TIMESTAMP
value, which the
driver then sends to the database. With a a Calendar
object, the driver can calculate the timestamp taking into account a
custom timezone. If no Calendar
object is specified, the
driver uses the default timezone, which is that of the virtual machine
running the application.setTimestamp
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the timestampjava.sql.SQLException
- if a database access error occurspublic void setNull(int parameterIndex, int sqlType, java.lang.String typeName) throws java.sql.SQLException
NULL
. This version
of the method setNull
should be used for user-defined
types and REF type parameters. Examples of user-defined types include:
STRUCT, DISTINCT, JAVA_OBJECT, and named array types.
Note: To be portable, applications must give the SQL type code and the fully-qualified SQL type name when specifying a NULL user-defined or REF parameter. In the case of a user-defined type the name is the type name of the parameter itself. For a REF parameter, the name is the type name of the referenced type. If a JDBC driver does not need the type code or type name information, it may ignore it. Although it is intended for user-defined and Ref parameters, this method may be used to set a null parameter of any JDBC type. If the parameter does not have a user-defined or REF type, the given typeName is ignored.
setNull
in interface java.sql.PreparedStatement
parameterIndex
- the first parameter is 1, the second is 2, ...sqlType
- a value from java.sql.Types
typeName
- the fully-qualified name of an SQL user-defined type; ignored
if the parameter is not a user-defined type or REFjava.sql.SQLException
- if a database access error occursprotected void prepareFixedStatement(java.lang.String sql) throws java.sql.SQLException
prepareFixedStatement
in class FBStatement
java.sql.SQLException
public java.lang.String getExecutionPlan() throws java.sql.SQLException
getExecutionPlan
in interface FirebirdPreparedStatement
java.sql.SQLException
public int getStatementType() throws java.sql.SQLException
TYPE_*
constant
values.getStatementType
in interface FirebirdPreparedStatement
java.sql.SQLException
public java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException
getParameterMetaData
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setNClob(int parameterIndex, java.sql.NClob value) throws java.sql.SQLException
Implementation note: This method behaves exactly the same as setClob(int, Clob)
.
setNClob
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setRowId(int parameterIndex, java.sql.RowId x) throws java.sql.SQLException
setRowId
in interface java.sql.PreparedStatement
java.sql.SQLException
public void setSQLXML(int parameterIndex, java.sql.SQLXML xmlObject) throws java.sql.SQLException
setSQLXML
in interface java.sql.PreparedStatement
java.sql.SQLException
public java.sql.ResultSet executeQuery(java.lang.String sql) throws java.sql.SQLException
FBStatement
ResultSet
object.executeQuery
in interface java.sql.Statement
executeQuery
in class FBStatement
sql
- typically this is a static SQL SELECT
statementResultSet
object that contains the data produced by the
given query; never null
java.sql.SQLException
- if a database access error occurspublic int executeUpdate(java.lang.String sql) throws java.sql.SQLException
FBStatement
INSERT
, UPDATE
or
DELETE
statement. In addition,
SQL statements that return nothing, such as SQL DDL statements,
can be executed.executeUpdate
in interface java.sql.Statement
executeUpdate
in class FBStatement
sql
- an SQL INSERT
, UPDATE
or
DELETE
statement or an SQL statement that returns nothingINSERT
, UPDATE
or DELETE
statements, or 0 for SQL statements that return nothingjava.sql.SQLException
- if a database access error occurspublic boolean execute(java.lang.String sql) throws java.sql.SQLException
FBStatement
execute
,
getMoreResults
, getResultSet
,
and getUpdateCount
let you navigate through multiple results.
The execute
method executes an SQL statement and indicates the
form of the first result. You can then use the methods
getResultSet
or getUpdateCount
to retrieve the result, and getMoreResults
to
move to any subsequent result(s).execute
in interface java.sql.Statement
execute
in class FBStatement
sql
- any SQL statementtrue
if the next result is a ResultSet
object;
false
if it is an update count or there are no more resultsjava.sql.SQLException
- if a database access error occursFBStatement.getResultSet()
,
FBStatement.getUpdateCount()
,
FBStatement.getMoreResults()
public void addBatch(java.lang.String sql) throws java.sql.SQLException
FBStatement
Statement
object. This method is optional.addBatch
in interface java.sql.Statement
addBatch
in class FBStatement
sql
- typically this is a static SQL INSERT
or
UPDATE
statementjava.sql.SQLException
- if a database access error occurs, or the
driver does not support batch statementspublic int executeUpdate(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
FBStatement
Statement
object
should be made available for retrieval. The driver will ignore the
flag if the SQL statement
is not an INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).executeUpdate
in interface java.sql.Statement
executeUpdate
in class FBStatement
sql
- an SQL Data Manipulation Language (DML) statement, such as INSERT
, UPDATE
or
DELETE
; or an SQL statement that returns nothing,
such as a DDL statement.autoGeneratedKeys
- a flag indicating whether auto-generated keys
should be made available for retrieval;
one of the following constants:
Statement.RETURN_GENERATED_KEYS
Statement.NO_GENERATED_KEYS
java.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
, the given
SQL statement returns a ResultSet
object, or
the given constant is not one of those allowedjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this method with a constant of Statement.RETURN_GENERATED_KEYSpublic int executeUpdate(java.lang.String sql, int[] columnIndex) throws java.sql.SQLException
FBStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).executeUpdate
in interface java.sql.Statement
executeUpdate
in class FBStatement
sql
- an SQL Data Manipulation Language (DML) statement, such as INSERT
, UPDATE
or
DELETE
; or an SQL statement that returns nothing,
such as a DDL statement.columnIndex
- an array of column indexes indicating the columns
that should be returned from the inserted rowjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
, the SQL
statement returns a ResultSet
object, or the
second argument supplied to this method is not an int
array
whose elements are valid column indexesjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this methodpublic int executeUpdate(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
FBStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).executeUpdate
in interface java.sql.Statement
executeUpdate
in class FBStatement
sql
- an SQL Data Manipulation Language (DML) statement, such as INSERT
, UPDATE
or
DELETE
; or an SQL statement that returns nothing,
such as a DDL statement.columnNames
- an array of the names of the columns that should be
returned from the inserted rowINSERT
, UPDATE
,
or DELETE
statements, or 0 for SQL statements
that return nothingjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
, the SQL
statement returns a ResultSet
object, or the
second argument supplied to this method is not a String
array
whose elements are valid column namesjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this methodpublic boolean execute(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
FBStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).
In some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.
The execute
method executes an SQL statement and indicates the
form of the first result. You must then use the methods
getResultSet
or getUpdateCount
to retrieve the result, and getMoreResults
to
move to any subsequent result(s).
execute
in interface java.sql.Statement
execute
in class FBStatement
sql
- any SQL statementautoGeneratedKeys
- a constant indicating whether auto-generated
keys should be made available for retrieval using the method
getGeneratedKeys
; one of the following constants:
Statement.RETURN_GENERATED_KEYS
or
Statement.NO_GENERATED_KEYS
true
if the first result is a ResultSet
object; false
if it is an update count or there are
no resultsjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
or the second
parameter supplied to this method is not
Statement.RETURN_GENERATED_KEYS
or
Statement.NO_GENERATED_KEYS
.java.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support
this method with a constant of Statement.RETURN_GENERATED_KEYSFBStatement.getResultSet()
,
FBStatement.getUpdateCount()
,
FBStatement.getMoreResults()
,
FBStatement.getGeneratedKeys()
public boolean execute(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException
FBStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).
Under some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.
The execute
method executes an SQL statement and indicates the
form of the first result. You must then use the methods
getResultSet
or getUpdateCount
to retrieve the result, and getMoreResults
to
move to any subsequent result(s).
execute
in interface java.sql.Statement
execute
in class FBStatement
sql
- any SQL statementcolumnIndexes
- an array of the indexes of the columns in the
inserted row that should be made available for retrieval by a
call to the method getGeneratedKeys
true
if the first result is a ResultSet
object; false
if it is an update count or there
are no resultsjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
or the
elements in the int
array passed to this method
are not valid column indexesjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this methodFBStatement.getResultSet()
,
FBStatement.getUpdateCount()
,
FBStatement.getMoreResults()
public boolean execute(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
FBStatement
INSERT
statement, or an SQL statement able to return
auto-generated keys (the list of such statements is vendor-specific).
In some (uncommon) situations, a single SQL statement may return multiple result sets and/or update counts. Normally you can ignore this unless you are (1) executing a stored procedure that you know may return multiple results or (2) you are dynamically executing an unknown SQL string.
The execute
method executes an SQL statement and indicates the
form of the first result. You must then use the methods
getResultSet
or getUpdateCount
to retrieve the result, and getMoreResults
to
move to any subsequent result(s).
execute
in interface java.sql.Statement
execute
in class FBStatement
sql
- any SQL statementcolumnNames
- an array of the names of the columns in the inserted
row that should be made available for retrieval by a call to the
method getGeneratedKeys
true
if the next result is a ResultSet
object; false
if it is an update count or there
are no more resultsjava.sql.SQLException
- if a database access error occurs,
this method is called on a closed Statement
or the
elements of the String
array passed to this
method are not valid column namesjava.sql.SQLFeatureNotSupportedException
- if the JDBC driver does not support this methodFBStatement.getResultSet()
,
FBStatement.getUpdateCount()
,
FBStatement.getMoreResults()
,
FBStatement.getGeneratedKeys()
public long executeLargeUpdate() throws java.sql.SQLException
executeLargeUpdate
in interface java.sql.PreparedStatement
java.sql.SQLException
Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.