org.firebirdsql.jdbc
Class AbstractPreparedStatement

java.lang.Object
  extended byorg.firebirdsql.jdbc.AbstractStatement
      extended byorg.firebirdsql.jdbc.FBStatement
          extended byorg.firebirdsql.jdbc.AbstractPreparedStatement
All Implemented Interfaces:
FirebirdPreparedStatement, FirebirdStatement, java.sql.PreparedStatement, java.sql.Statement, Synchronizable
Direct Known Subclasses:
AbstractCallableStatement

public abstract class AbstractPreparedStatement
extends org.firebirdsql.jdbc.FBStatement
implements FirebirdPreparedStatement

Implementation of PreparedStatement interface. This class contains all methods from the JDBC 2.0 specification.

Author:
David Jencks, Roman Rokytskyy

Field Summary
protected  boolean[] isParamSet
           
 
Fields inherited from class org.firebirdsql.jdbc.AbstractStatement
c, fetchSize, firstWarning, fixedStmt, hasMoreResults, isResultSet, maxRows
 
Fields inherited from interface java.sql.Statement
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
 
Constructor Summary
protected AbstractPreparedStatement(AbstractConnection c, int rsType, int rsConcurrency)
           
protected AbstractPreparedStatement(AbstractConnection c, java.lang.String sql, int rsType, int rsConcurrency)
          Create instance of this class and prepare SQL statement.
 
Method Summary
 void addBatch()
          Adds a set of parameters to this PreparedStatement object's batch of commands.
 void clearBatch()
          Makes the set of commands in the current batch empty.
 void clearParameters()
          Clears the current parameter values immediately.
 boolean execute()
          Executes any kind of SQL statement.
 int[] executeBatch()
          Submits a batch of commands to the database for execution and if all commands execute successfully, returns an array of update counts.
 java.sql.ResultSet executeQuery()
          Executes the SQL query in this PreparedStatement object and returns the result set generated by the query.
 int executeUpdate()
          Executes the SQL INSERT, UPDATE or DELETE statement in this PreparedStatement object.
protected  org.firebirdsql.jdbc.field.FBField getField(int columnIndex)
          Factory method for the field access objects
 java.sql.ResultSetMetaData getMetaData()
          Gets the number, types and properties of a ResultSet object's columns.
protected  XSQLVAR getXsqlvar(int columnIndex)
          Returns the XSQLVAR structure for the specified column.
protected  boolean internalExecute(boolean sendOutParams)
           
protected  void prepareFixedStatement(java.lang.String sql, boolean describeBind)
          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, int length)
          Sets the designated parameter to the given input stream, which will have the specified number of bytes.
 void setBigDecimal(int parameterIndex, java.math.BigDecimal x)
           
 void setBinaryStream(int parameterIndex, java.io.InputStream inputStream, int length)
           
 void setBlob(int parameterIndex, java.sql.Blob blob)
          Sets the designated parameter to the given Blob object.
 void setBoolean(int parameterIndex, boolean x)
           
 void setByte(int parameterIndex, byte x)
           
 void setBytes(int parameterIndex, byte[] x)
           
 void setCharacterStream(int parameterIndex, java.io.Reader reader, int length)
          Sets the designated parameter to the given Reader object, which is the given number of characters long.
 void setClob(int i, java.sql.Clob x)
          Sets the designated parameter to the given Clob object.
 void setDate(int parameterIndex, java.sql.Date x)
           
 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)
           
 void setFloat(int parameterIndex, float x)
           
 void setInt(int parameterIndex, int x)
           
 void setLong(int parameterIndex, long x)
           
 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)
           
 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 setShort(int parameterIndex, short x)
           
 void setString(int parameterIndex, java.lang.String x)
           
 void setStringForced(int parameterIndex, java.lang.String x)
           
 void setTime(int parameterIndex, java.sql.Time x)
           
 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)
           
 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. I really have no idea if there is anything else we should be doing here
 
Methods inherited from class org.firebirdsql.jdbc.FBStatement
execute, execute, execute, executeUpdate, executeUpdate, executeUpdate, getGeneratedKeys, getMoreResults, getResultSetHoldability
 
Methods inherited from class org.firebirdsql.jdbc.AbstractStatement
addBatch, addWarning, cancel, clearWarnings, close, execute, executeQuery, executeUpdate, finalize, forgetResultSet, getConnection, getCurrentResultSet, getDeletedRowsCount, getFetchDirection, getFetchSize, getInsertedRowsCount, getMaxFieldSize, getMaxRows, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetType, getSynchronizationObject, getUpdateCount, getUpdatedRowsCount, getWarnings, hasOpenResultSet, internalExecute, isExecuteProcedureStatement, isValid, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setQueryTimeout, toArray
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.firebirdsql.jdbc.FirebirdStatement
getCurrentResultSet, getDeletedRowsCount, getInsertedRowsCount, getUpdatedRowsCount, hasOpenResultSet, isValid
 
Methods inherited from interface java.sql.Statement
addBatch, cancel, clearWarnings, close, execute, execute, execute, execute, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setQueryTimeout
 
Methods inherited from interface java.sql.PreparedStatement
getParameterMetaData, setURL
 

Field Detail

isParamSet

protected boolean[] isParamSet
Constructor Detail

AbstractPreparedStatement

protected AbstractPreparedStatement(AbstractConnection c,
                                    int rsType,
                                    int rsConcurrency)
                             throws java.sql.SQLException

AbstractPreparedStatement

protected AbstractPreparedStatement(AbstractConnection c,
                                    java.lang.String sql,
                                    int rsType,
                                    int rsConcurrency)
                             throws java.sql.SQLException
Create instance of this class and prepare SQL statement.

Parameters:
c - connection to be used.
sql - SQL statement to prepare.
rsType - type of result set to create.
rsConcurrency - result set concurrency.
Throws:
java.sql.SQLException - if something went wrong.
Method Detail

executeQuery

public java.sql.ResultSet executeQuery()
                                throws java.sql.SQLException
Executes the SQL query in this PreparedStatement object and returns the result set generated by the query.

Specified by:
executeQuery in interface java.sql.PreparedStatement
Returns:
a ResultSet object that contains the data produced by the query; never null
Throws:
java.sql.SQLException - if a database access error occurs

executeUpdate

public int executeUpdate()
                  throws java.sql.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.

Specified by:
executeUpdate in interface java.sql.PreparedStatement
Returns:
either the row count for INSERT, UPDATE or DELETE statements; or 0 for SQL statements that return nothing
Throws:
java.sql.SQLException - if a database access error occurs

setNull

public void setNull(int parameterIndex,
                    int sqlType)
             throws java.sql.SQLException
Sets the designated parameter to SQL NULL.

Note: You must specify the parameter's SQL type.

Specified by:
setNull in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
sqlType - the SQL type code defined in java.sql.Types
Throws:
java.sql.SQLException - if a database access error occurs

setBinaryStream

public void setBinaryStream(int parameterIndex,
                            java.io.InputStream inputStream,
                            int length)
                     throws java.sql.SQLException
Specified by:
setBinaryStream in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setBytes

public void setBytes(int parameterIndex,
                     byte[] x)
              throws java.sql.SQLException
Specified by:
setBytes in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setBoolean

public void setBoolean(int parameterIndex,
                       boolean x)
                throws java.sql.SQLException
Specified by:
setBoolean in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setByte

public void setByte(int parameterIndex,
                    byte x)
             throws java.sql.SQLException
Specified by:
setByte in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setDate

public void setDate(int parameterIndex,
                    java.sql.Date x)
             throws java.sql.SQLException
Specified by:
setDate in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setDouble

public void setDouble(int parameterIndex,
                      double x)
               throws java.sql.SQLException
Specified by:
setDouble in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setFloat

public void setFloat(int parameterIndex,
                     float x)
              throws java.sql.SQLException
Specified by:
setFloat in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setInt

public void setInt(int parameterIndex,
                   int x)
            throws java.sql.SQLException
Specified by:
setInt in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setLong

public void setLong(int parameterIndex,
                    long x)
             throws java.sql.SQLException
Specified by:
setLong in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setObject

public void setObject(int parameterIndex,
                      java.lang.Object x)
               throws java.sql.SQLException
Specified by:
setObject in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setShort

public void setShort(int parameterIndex,
                     short x)
              throws java.sql.SQLException
Specified by:
setShort in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setString

public void setString(int parameterIndex,
                      java.lang.String x)
               throws java.sql.SQLException
Specified by:
setString in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setStringForced

public void setStringForced(int parameterIndex,
                            java.lang.String x)
                     throws java.sql.SQLException
Throws:
java.sql.SQLException

setTime

public void setTime(int parameterIndex,
                    java.sql.Time x)
             throws java.sql.SQLException
Specified by:
setTime in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setTimestamp

public void setTimestamp(int parameterIndex,
                         java.sql.Timestamp x)
                  throws java.sql.SQLException
Specified by:
setTimestamp in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

setBigDecimal

public void setBigDecimal(int parameterIndex,
                          java.math.BigDecimal x)
                   throws java.sql.SQLException
Specified by:
setBigDecimal in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException

getXsqlvar

protected XSQLVAR getXsqlvar(int columnIndex)
Returns the XSQLVAR structure for the specified column.


getField

protected org.firebirdsql.jdbc.field.FBField getField(int columnIndex)
                                               throws java.sql.SQLException
Factory method for the field access objects

Throws:
java.sql.SQLException

setAsciiStream

public void setAsciiStream(int parameterIndex,
                           java.io.InputStream x,
                           int length)
                    throws java.sql.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.

Specified by:
setAsciiStream in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the Java input stream that contains the ASCII parameter value
length - the number of bytes in the stream
Throws:
java.sql.SQLException - if a database access error occurs

setUnicodeStream

public void setUnicodeStream(int parameterIndex,
                             java.io.InputStream x,
                             int length)
                      throws java.sql.SQLException
Deprecated. 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.

Specified by:
setUnicodeStream in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the java input stream which contains the UNICODE parameter value
length - the number of bytes in the stream
Throws:
java.sql.SQLException - if a database access error occurs

clearParameters

public void clearParameters()
                     throws java.sql.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.

Specified by:
clearParameters in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException - if a database access error occurs

setObject

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

Specified by:
setObject in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the object containing the input parameter value
targetSqlType - 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.
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
Types

setObject

public void setObject(int parameterIndex,
                      java.lang.Object x,
                      int targetSqlType)
               throws java.sql.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.

Specified by:
setObject in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the object containing the input parameter value
targetSqlType - the SQL type (as defined in java.sql.Types) to be sent to the database
Throws:
java.sql.SQLException - if a database access error occurs

execute

public boolean execute()
                throws java.sql.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.

Specified by:
execute in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException - if a database access error occurs
See Also:
Statement.execute(java.lang.String)

internalExecute

protected boolean internalExecute(boolean sendOutParams)
                           throws java.sql.SQLException
Throws:
java.sql.SQLException

addBatch

public void addBatch()
              throws java.sql.SQLException
Adds a set of parameters to this PreparedStatement object's batch of commands.

Specified by:
addBatch in interface java.sql.PreparedStatement
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
Statement.addBatch(java.lang.String), What Is in the JDBC 2.0 API

clearBatch

public void clearBatch()
                throws java.sql.SQLException
Makes the set of commands in the current batch empty. This method is optional.

Specified by:
clearBatch in interface java.sql.Statement
Overrides:
clearBatch in class AbstractStatement
Throws:
java.sql.SQLException - if a database access error occurs or the driver does not support batch statements
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

executeBatch

public int[] executeBatch()
                   throws java.sql.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:
  1. 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
  2. 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:

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

Specified by:
executeBatch in interface java.sql.Statement
Overrides:
executeBatch in class AbstractStatement
Returns:
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.
Throws:
java.sql.SQLException - if a database access error occurs or the driver does not support batch statements. Throws BatchUpdateException (a subclass of SQLException) if one of the commands sent to the database fails to execute properly or attempts to return a result set.
Since:
1.3
See Also:
What Is in the JDBC 2.0 API

setCharacterStream

public void setCharacterStream(int parameterIndex,
                               java.io.Reader reader,
                               int length)
                        throws java.sql.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.

Specified by:
setCharacterStream in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
reader - the java reader which contains the UNICODE data
length - the number of characters in the stream
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

setRef

public void setRef(int i,
                   java.sql.Ref x)
            throws java.sql.SQLException
Sets the designated parameter to the given REF(<structured-type>) value.

Specified by:
setRef in interface java.sql.PreparedStatement
Parameters:
i - the first parameter is 1, the second is 2, ...
x - an SQL REF value
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

setBlob

public void setBlob(int parameterIndex,
                    java.sql.Blob blob)
             throws java.sql.SQLException
Sets the designated parameter to the given Blob object.

Specified by:
setBlob in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
blob - a Blob object that maps an SQL BLOB value
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

setClob

public void setClob(int i,
                    java.sql.Clob x)
             throws java.sql.SQLException
Sets the designated parameter to the given Clob object.

Specified by:
setClob in interface java.sql.PreparedStatement
Parameters:
i - the first parameter is 1, the second is 2, ...
x - a Clob object that maps an SQL CLOB value
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

setArray

public void setArray(int i,
                     java.sql.Array x)
              throws java.sql.SQLException
Sets the designated parameter to the given Array object. Sets an Array parameter.

Specified by:
setArray in interface java.sql.PreparedStatement
Parameters:
i - the first parameter is 1, the second is 2, ...
x - an Array object that maps an SQL ARRAY value
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

getMetaData

public java.sql.ResultSetMetaData getMetaData()
                                       throws java.sql.SQLException
Gets the number, types and properties of a ResultSet object's columns.

Specified by:
getMetaData in interface java.sql.PreparedStatement
Returns:
the description of a ResultSet object's columns
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

setDate

public void setDate(int parameterIndex,
                    java.sql.Date x,
                    java.util.Calendar cal)
             throws java.sql.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.

Specified by:
setDate in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the parameter value
cal - the Calendar object the driver will use to construct the date
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

setTime

public void setTime(int parameterIndex,
                    java.sql.Time x,
                    java.util.Calendar cal)
             throws java.sql.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.

Specified by:
setTime in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the parameter value
cal - the Calendar object the driver will use to construct the time
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

setTimestamp

public void setTimestamp(int parameterIndex,
                         java.sql.Timestamp x,
                         java.util.Calendar cal)
                  throws java.sql.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.

Specified by:
setTimestamp in interface java.sql.PreparedStatement
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the parameter value
cal - the Calendar object the driver will use to construct the timestamp
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

setNull

public void setNull(int parameterIndex,
                    int sqlType,
                    java.lang.String typeName)
             throws java.sql.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.

Specified by:
setNull in interface java.sql.PreparedStatement
Parameters:
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
Throws:
java.sql.SQLException - if a database access error occurs
Since:
1.2
See Also:
What Is in the JDBC 2.0 API

prepareFixedStatement

protected void prepareFixedStatement(java.lang.String sql,
                                     boolean describeBind)
                              throws GDSException,
                                     java.sql.SQLException
Prepare fixed statement and initialize parameters.

Overrides:
prepareFixedStatement in class AbstractStatement
Throws:
GDSException
java.sql.SQLException


Copyright © 2001 David Jencks and other authors. All rights reserved.