addBatch
public void addBatch()
throws SQLException
Adds a set of parameters to this PreparedStatement
object's batch of commands.
clearBatch
public void clearBatch()
throws SQLException
Makes the set of commands in the current batch empty. This method is
optional.
- clearBatch in interface AbstractStatement
clearParameters
public void clearParameters()
throws SQLException
Clears the current parameter values immediately.
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
.
execute
public boolean execute()
throws SQLException
Executes any kind of SQL statement. Some prepared statements return
multiple results; the execute
method handles these complex
statements as well as the simpler form of statements handled by the
methods executeQuery
and executeUpdate
.
executeBatch
public int[] executeBatch()
throws SQLException
Submits a batch of commands to the database for execution and if all
commands execute successfully, returns an array of update counts. The
int
elements of the array that is returned are ordered to
correspond to the commands in the batch, which are ordered according to
the order in which they were added to the batch. The elements in the
array returned by the method
executeBatch
may be one of
the following:
- A number greater than or equal to zero -- indicates that the command
was processed successfully and is an update count giving the number of
rows in the database that were affected by the command's execution
- A value of
-2
-- indicates that the command was
processed successfully but that the number of rows affected is unknown
If one of the commands in a batch update fails to execute properly, this
method throws a BatchUpdateException
, and a JDBC driver
may or may not continue to process the remaining commands in the batch.
However, the driver's behavior must be consistent with a particular DBMS,
either always continuing to process commands or never continuing to
process commands. If the driver continues processing after a failure, the
array returned by the method
BatchUpdateException.getUpdateCounts
will contain as many
elements as there are commands in the batch, and at least one of the
elements will be the following:
- A value of
-3
-- indicates that the command failed to
execute successfully and occurs only if a driver continues to process
commands after a command fails
A driver is not required to implement this method. The possible
implementations and return values have been modified in the Java 2 SDK,
Standard Edition, version 1.3 to accommodate the option of continuing to
proccess commands in a batch update after a
BatchUpdateException
obejct has been thrown.
- executeBatch in interface AbstractStatement
- an array of update counts containing one element for each command
in the batch. The elements of the array are ordered according to
the order in which commands were added to the batch.
executeQuery
public ResultSet executeQuery()
throws SQLException
Executes the SQL query in this PreparedStatement
object
and returns the result set generated by the query.
- a
ResultSet
object that contains the data produced
by the query; never null
executeUpdate
public int executeUpdate()
throws SQLException
Executes the SQL INSERT, UPDATE or DELETE statement in this
PreparedStatement
object. In addition, SQL statements that
return nothing, such as SQL DDL statements, can be executed.
- either the row count for INSERT, UPDATE or DELETE statements; or
0 for SQL statements that return nothing
getField
protected org.firebirdsql.jdbc.field.FBField getField(int columnIndex)
throws SQLException
Factory method for the field access objects
getMetaData
public ResultSetMetaData getMetaData()
throws SQLException
Gets the number, types and properties of a ResultSet
object's columns.
- the description of a
ResultSet
object's columns
getStatementType
public int getStatementType()
throws FBSQLException
Get the statement type of this PreparedStatement.
The returned value will be one of the TYPE_*
constant
values.
- getStatementType in interface FirebirdPreparedStatement
- The identifier for the given statement's type
getXsqlvar
protected XSQLVAR getXsqlvar(int columnIndex)
Returns the XSQLVAR structure for the specified column.
internalExecute
protected boolean internalExecute(boolean sendOutParams)
throws SQLException
Execute this statement. Method checks whether all parameters are set,
flushes all "flushable" fields that might contain cached data and
executes the statement.
true
if the statement has more result sets.
setArray
public void setArray(int i,
Array x)
throws SQLException
Sets the designated parameter to the given Array
object.
Sets an Array parameter.
i
- the first parameter is 1, the second is 2, ...x
- an Array
object that maps an SQL
ARRAY
value
setAsciiStream
public void setAsciiStream(int parameterIndex,
InputStream x,
int length)
throws SQLException
Sets the designated parameter to the given input stream, which will have
the specified number of bytes. When a very large ASCII value is input to
a
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.
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 stream
setBigDecimal
public void setBigDecimal(int parameterIndex,
BigDecimal x)
throws SQLException
Sets the designated parameter to the given BigDecimal
parameterIndex
- The first parameter is 1, second is 2, ...x
- The BigDecimal to be set as a parameter
setBinaryStream
public void setBinaryStream(int parameterIndex,
InputStream inputStream,
int length)
throws SQLException
Sets the designated parameter to the given input stream, which will have
the specified number of bytes.
Note: This stream object can either be a standard Java stream
object or your own subclass that implements the standard interface.
parameterIndex
- the first parameter is 1, the second is 2, ...inputStream
- the Java input streamlength
- the number of bytes in the stream
setBlob
public void setBlob(int parameterIndex,
Blob blob)
throws SQLException
Sets the designated parameter to the given Blob
object.
parameterIndex
- the first parameter is 1, the second is 2, ...blob
- a Blob
object that maps an SQL
BLOB
value
setBoolean
public void setBoolean(int parameterIndex,
boolean x)
throws SQLException
Sets the designated parameter to the given boolean value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The boolean value to be set
setByte
public void setByte(int parameterIndex,
byte x)
throws SQLException
Sets the designated parameter to the given byte value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The byte value to be set
setBytes
public void setBytes(int parameterIndex,
byte[] x)
throws SQLException
Set the designated parameter to the given byte array.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The byte array to be set
setCharacterStream
public void setCharacterStream(int parameterIndex,
Reader reader,
int length)
throws SQLException
Sets the designated parameter to the given
Reader
object,
which is the given number of characters long. When a very large UNICODE
value is input to a
LONGVARCHAR
parameter, it may be more
practical to send it via a
java.io.Reader
object. The data
will be read from the stream as needed until end-of-file is reached. The
JDBC driver will do any necessary conversion from UNICODE to the database
char format.
Note: This stream object can either be a standard Java stream
object or your own subclass that implements the standard interface.
parameterIndex
- the first parameter is 1, the second is 2, ...reader
- the java reader which contains the UNICODE datalength
- the number of characters in the stream
setClob
public void setClob(int i,
Clob x)
throws SQLException
Sets the designated parameter to the given Clob
object.
i
- the first parameter is 1, the second is 2, ...x
- a Clob
object that maps an SQL
CLOB
value
setDate
public void setDate(int parameterIndex,
Date x)
throws SQLException
Sets the designated parameter to the given date value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The date value to be set
setDate
public void setDate(int parameterIndex,
Date x,
Calendar cal)
throws SQLException
Sets the designated parameter to the given java.sql.Date
value, using the given Calendar
object. The driver uses
the Calendar
object to construct an SQL DATE
value, which the driver then sends to the database. With a a
Calendar
object, the driver can calculate the date taking
into account a custom timezone. If no Calendar
object is
specified, the driver uses the default timezone, which is that of the
virtual machine running the application.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the date
setDouble
public void setDouble(int parameterIndex,
double x)
throws SQLException
Sets the designated parameter to the given double value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The double value to be set
setFloat
public void setFloat(int parameterIndex,
float x)
throws SQLException
Sets the designated parameter to the given floate value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The float value to be set
setInt
public void setInt(int parameterIndex,
int x)
throws SQLException
Sets the designated parameter to the given int value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The int value to be set
setLong
public void setLong(int parameterIndex,
long x)
throws SQLException
Sets the designated parameter to the given long value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The long value to be set
setNull
public void setNull(int parameterIndex,
int sqlType)
throws SQLException
Sets the designated parameter to SQL
NULL
.
Note: You must specify the parameter's SQL type.
parameterIndex
- the first parameter is 1, the second is 2, ...sqlType
- the SQL type code defined in java.sql.Types
setNull
public void setNull(int parameterIndex,
int sqlType,
String typeName)
throws SQLException
Sets the designated parameter to SQL
NULL
. This version
of the method
setNull
should be used for user-defined
types and REF type parameters. Examples of user-defined types include:
STRUCT, DISTINCT, JAVA_OBJECT, and named array types.
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.
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 REF
setObject
public void setObject(int parameterIndex,
Object x)
throws SQLException
Sets the value of the designated parameter with the given object.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the object containing the parameter value
setObject
public void setObject(int parameterIndex,
Object x,
int targetSqlType)
throws SQLException
Sets the value of the designated parameter with the given object. This
method is like the method setObject
above, except that it
assumes a scale of zero.
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
setObject
public void setObject(int parameterIndex,
Object x,
int targetSqlType,
int scale)
throws SQLException
Sets the value of the designated parameter with the given object. The
second argument must be an object type; for integral values, the
java.lang
equivalent objects should be used.
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.
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.
setRef
public void setRef(int i,
Ref x)
throws SQLException
Sets the designated parameter to the given
REF(<structured-type>)
value.
i
- the first parameter is 1, the second is 2, ...x
- an SQL REF
value
setShort
public void setShort(int parameterIndex,
short x)
throws SQLException
Sets the designated parameter to the given short value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The short value to be set
setString
public void setString(int parameterIndex,
String x)
throws SQLException
Sets the designated parameter to the given String value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The String value to be set
setStringForced
public void setStringForced(int parameterIndex,
String x)
throws SQLException
Sets the designated parameter to the given String value. This is a
workaround for the ambiguous "operation was cancelled" response from the
server for when an oversized string is set for a limited-size field. This
method sets the string parameter without checking size constraints.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The String value to be set
setTime
public void setTime(int parameterIndex,
Time x)
throws SQLException
Sets the designated parameter to the given Time value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The Time value to be set
setTime
public void setTime(int parameterIndex,
Time x,
Calendar cal)
throws SQLException
Sets the designated parameter to the given java.sql.Time
value, using the given Calendar
object. The driver uses
the Calendar
object to construct an SQL TIME
value, which the driver then sends to the database. With a a
Calendar
object, the driver can calculate the time taking
into account a custom timezone. If no Calendar
object is
specified, the driver uses the default timezone, which is that of the
virtual machine running the application.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the time
setTimestamp
public void setTimestamp(int parameterIndex,
Timestamp x)
throws SQLException
Sets the designated parameter to the given Timestamp value.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- The Timestamp value to be set
setTimestamp
public void setTimestamp(int parameterIndex,
Timestamp x,
Calendar cal)
throws SQLException
Sets the designated parameter to the given
java.sql.Timestamp
value, using the given
Calendar
object. The driver uses the Calendar
object to construct an SQL TIMESTAMP
value, which the
driver then sends to the database. With a a Calendar
object, the driver can calculate the timestamp taking into account a
custom timezone. If no Calendar
object is specified, the
driver uses the default timezone, which is that of the virtual machine
running the application.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the parameter valuecal
- the Calendar
object the driver will use to
construct the timestamp
setUnicodeStream
public void setUnicodeStream(int parameterIndex,
InputStream x,
int length)
throws SQLException
I really have no idea if there is anything else we should be doing here
Sets the designated parameter to the given input stream, which will have
the specified number of bytes. When a very large UNICODE value is input
to a
LONGVARCHAR
parameter, it may be more practical to
send it via a
java.io.InputStream
object. The data will be
read from the stream as needed until end-of-file is reached. The JDBC
driver will do any necessary conversion from UNICODE to the database char
format. The byte format of the Unicode stream must be Java UTF-8, as
defined in the Java Virtual Machine Specification.
Note: This stream object can either be a standard Java stream
object or your own subclass that implements the standard interface.
parameterIndex
- the first parameter is 1, the second is 2, ...x
- the java input stream which contains the UNICODE parameter
valuelength
- the number of bytes in the stream