org.firebirdsql.jdbc

## Class AbstractCallableStatement

- java.lang.Object
- - org.firebirdsql.jdbc.FBStatement
  - - org.firebirdsql.jdbc.AbstractPreparedStatement
    - - org.firebirdsql.jdbc.FBPreparedStatement
      - - org.firebirdsql.jdbc.AbstractCallableStatement

- All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.CallableStatement, java.sql.PreparedStatement, java.sql.Statement, java.sql.Wrapper, FirebirdCallableStatement, FirebirdPreparedStatement, FirebirdStatement, Synchronizable
  Direct Known Subclasses:
    FBCallableStatement

      public abstract class AbstractCallableStatement
      extends FBPreparedStatement
      implements java.sql.CallableStatement, FirebirdCallableStatement

  The interface used to execute SQL stored procedures. The JDBC API provides a stored procedure SQL escape syntax that allows stored procedures to be called in a standard way for all RDBMSs. This escape syntax has one form that includes a result parameter and one that does not. If used, the result parameter must be registered as an OUT parameter. The other parameters can be used for input, output or both. Parameters are referred to sequentially, by number, with the first parameter being 1.

         {?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
         {call <procedure-name>[(<arg1>,<arg2>, ...)]}

  IN parameter values are set using the `set` methods inherited from `PreparedStatement`. The type of all OUT parameters must be registered prior to executing the stored procedure; their values are retrieved after execution via the `get` methods provided here.

  A `CallableStatement` can return one `ResultSet` object or multiple `ResultSet` objects. Multiple `ResultSet` objects are handled using operations inherited from `Statement`.

  For maximum portability, a call's `ResultSet` objects and update counts should be processed prior to getting the values of output parameters.

  Author:
    David Jencks, Roman Rokytskyy, Steven Jardine, Mark Rotteveel
  See Also:
    `Connection.prepareCall(java.lang.String)`, `ResultSet`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.firebirdsql.jdbc.FBStatement

      `FBStatement.StatementResult`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected FBProcedureCall` | `procedureCall`
    `protected boolean` | `selectableProcedure`

    - ### Fields inherited from class org.firebirdsql.jdbc.AbstractPreparedStatement

      `batchList, isParamSet, METHOD_NOT_SUPPORTED`

    - ### Fields inherited from class org.firebirdsql.jdbc.FBStatement

      `completed, connection, currentStatementResult, fbStatement, fetchSize, firstWarning, gdsHelper, isSingletonResult, jdbcVersionSupport, maxRows, specialResult, statementListener`

    - ### Fields inherited from interface org.firebirdsql.jdbc.FirebirdPreparedStatement

      `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`

    - ### 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

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractCallableStatement(GDSHelper c, java.lang.String sql, int rsType, int rsConcurrency, int rsHoldability, StoredProcedureMetaData storedProcMetaData, FBObjectListener.StatementListener statementListener, FBObjectListener.BlobListener blobListener)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBatch()` Adds a set of parameters to this `PreparedStatement` object's batch of commands.
    `protected void` | `assertHasData(java.sql.ResultSet rs)` Asserts if the current statement has data to return.
    `boolean` | `execute()` Executes an execute stored procedure.
    `protected java.util.List<java.lang.Long>` | `executeBatchInternal()`
    `java.sql.ResultSet` | `executeQuery()` Execute query.
    `int` | `executeUpdate()` Execute query.
    `protected int` | `findOutParameter(java.lang.String paramName)` Helper method to identify the right resultset column for the give OUT parameter name.
    `protected java.sql.ResultSet` | `getAndAssertSingletonResultSet()` Returns the result set for the singleton row of the callable statement and asserts it has data.
    `java.sql.Array` | `getArray(int parameterIndex)` Gets the value of a JDBC `ARRAY` parameter as an `Array` object in the Java programming language.
    `java.sql.Array` | `getArray(java.lang.String colName)`
    `java.math.BigDecimal` | `getBigDecimal(int parameterIndex)` Gets the value of a JDBC `NUMERIC` parameter as a `java.math.BigDecimal` object with as many digits to the right of the decimal point as the value contains.
    `java.math.BigDecimal` | `getBigDecimal(int parameterIndex, int scale)` Deprecated.
    `java.math.BigDecimal` | `getBigDecimal(java.lang.String colName)`
    `java.sql.Blob` | `getBlob(int parameterIndex)` Gets the value of a JDBC `BLOB` parameter as a `Blob` object in the Java programming language.
    `java.sql.Blob` | `getBlob(java.lang.String colName)`
    `boolean` | `getBoolean(int parameterIndex)` Gets the value of a JDBC `BIT` parameter as a `boolean` in the Java programming language.
    `boolean` | `getBoolean(java.lang.String colName)`
    `byte` | `getByte(int parameterIndex)` Gets the value of a JDBC `TINYINT` parameter as a `byte` in the Java programming language.
    `byte` | `getByte(java.lang.String colName)`
    `byte[]` | `getBytes(int parameterIndex)` Gets the value of a JDBC `BINARY` or `VARBINARY` parameter as an array of `byte` values in the Java programming language.
    `byte[]` | `getBytes(java.lang.String colName)`
    `java.io.Reader` | `getCharacterStream(int parameterIndex)`
    `java.io.Reader` | `getCharacterStream(java.lang.String parameterName)`
    `java.sql.Clob` | `getClob(int parameterIndex)` Gets the value of a JDBC `CLOB` parameter as a `Clob` object in the Java programming language.
    `java.sql.Clob` | `getClob(java.lang.String colName)`
    `java.sql.ResultSet` | `getCurrentResultSet()` Get current result set.
    `java.sql.Date` | `getDate(int parameterIndex)` Gets the value of a JDBC `DATE` parameter as a `java.sql.Date` object.
    `java.sql.Date` | `getDate(int parameterIndex, java.util.Calendar cal)` Gets the value of a JDBC `DATE` parameter as a `java.sql.Date` object, using the given `Calendar` object to construct the date.
    `java.sql.Date` | `getDate(java.lang.String colName)`
    `java.sql.Date` | `getDate(java.lang.String colName, java.util.Calendar cal)`
    `double` | `getDouble(int parameterIndex)` Gets the value of a JDBC `DOUBLE` parameter as a `double` in the Java programming language.
    `double` | `getDouble(java.lang.String colName)`
    `float` | `getFloat(int parameterIndex)` Gets the value of a JDBC `FLOAT` parameter as a `float` in the Java programming language.
    `float` | `getFloat(java.lang.String colName)`
    `java.sql.ResultSet` | `getGeneratedKeys()` Retrieves any auto-generated keys created as a result of executing this `Statement` object.
    `int` | `getInt(int parameterIndex)` Gets the value of a JDBC `INTEGER` parameter as an `int` in the Java programming language.
    `int` | `getInt(java.lang.String colName)`
    `long` | `getLong(int parameterIndex)` Gets the value of a JDBC `BIGINT` parameter as a `long` in the Java programming language.
    `long` | `getLong(java.lang.String colName)`
    `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.
    `java.io.Reader` | `getNCharacterStream(int parameterIndex)`
    `java.io.Reader` | `getNCharacterStream(java.lang.String parameterName)`
    `java.sql.NClob` | `getNClob(int parameterIndex)`
    `java.sql.NClob` | `getNClob(java.lang.String parameterName)`
    `java.lang.String` | `getNString(int parameterIndex)`
    `java.lang.String` | `getNString(java.lang.String parameterName)`
    `java.lang.Object` | `getObject(int parameterIndex)` Gets the value of a parameter as an `Object` in the Java programming language.
    `<T> T` | `getObject(int parameterIndex, java.lang.Class<T> type)`
    `java.lang.Object` | `getObject(int parameterIndex, java.util.Map<java.lang.String,java.lang.Class<?>> map)` Returns an object representing the value of OUT parameter `i` and uses `map` for the custom mapping of the parameter value.
    `java.lang.Object` | `getObject(java.lang.String colName)`
    `<T> T` | `getObject(java.lang.String parameterName, java.lang.Class<T> type)`
    `java.lang.Object` | `getObject(java.lang.String colName, java.util.Map<java.lang.String,java.lang.Class<?>> map)`
    `java.sql.ParameterMetaData` | `getParameterMetaData()`
    `java.sql.Ref` | `getRef(int parameterIndex)` Gets the value of a JDBC `REF(<structured-type>)` parameter as a `Ref` object in the Java programming language.
    `java.sql.Ref` | `getRef(java.lang.String colName)`
    `java.sql.ResultSet` | `getResultSet()` Returns the current result as a `ResultSet` object.
    `java.sql.RowId` | `getRowId(int parameterIndex)`
    `java.sql.RowId` | `getRowId(java.lang.String parameterName)`
    `short` | `getShort(int parameterIndex)` Gets the value of a JDBC `SMALLINT` parameter as a `short` in the Java programming language.
    `short` | `getShort(java.lang.String colName)`
    `java.sql.SQLXML` | `getSQLXML(int parameterIndex)`
    `java.sql.SQLXML` | `getSQLXML(java.lang.String parameterName)`
    `java.lang.String` | `getString(int parameterIndex)` Retrieves the value of a JDBC `CHAR`, `VARCHAR`, or `LONGVARCHAR` parameter as a `String` in the Java programming language.
    `java.lang.String` | `getString(java.lang.String colName)`
    `java.sql.Time` | `getTime(int parameterIndex)` Get the value of a JDBC `TIME` parameter as a `java.sql.Time` object.
    `java.sql.Time` | `getTime(int parameterIndex, java.util.Calendar cal)` Gets the value of a JDBC `TIME` parameter as a `java.sql.Time` object, using the given `Calendar` object to construct the time.
    `java.sql.Time` | `getTime(java.lang.String colName)`
    `java.sql.Time` | `getTime(java.lang.String colName, java.util.Calendar cal)`
    `java.sql.Timestamp` | `getTimestamp(int parameterIndex)` Gets the value of a JDBC `TIMESTAMP` parameter as a `java.sql.Timestamp` object.
    `java.sql.Timestamp` | `getTimestamp(int parameterIndex, java.util.Calendar cal)` Gets the value of a JDBC `TIMESTAMP` parameter as a `java.sql.Timestamp` object, using the given `Calendar` object to construct the `Timestamp` object.
    `java.sql.Timestamp` | `getTimestamp(java.lang.String colName)`
    `java.sql.Timestamp` | `getTimestamp(java.lang.String colName, java.util.Calendar cal)`
    `java.net.URL` | `getURL(int parameterIndex)`
    `java.net.URL` | `getURL(java.lang.String colName)`
    `protected boolean` | `internalExecute(boolean sendOutParams)` Execute statement internally.
    `boolean` | `isSelectableProcedure()` Retrieve if this callable statement has been marked as selectable.
    `protected void` | `prepareFixedStatement(java.lang.String sql)` We allow multiple calls to this method without re-preparing the statement.
    `void` | `registerOutParameter(int parameterIndex, int sqlType)` Registers the OUT parameter in ordinal position `parameterIndex` to the JDBC type `sqlType`.
    `void` | `registerOutParameter(int parameterIndex, int sqlType, int scale)` Registers the parameter in ordinal position `parameterIndex` to be of JDBC type `sqlType`.
    `void` | `registerOutParameter(int parameterIndex, int sqlType, java.lang.String typeName)`
    `void` | `registerOutParameter(java.lang.String param1, int param2)`
    `void` | `registerOutParameter(java.lang.String param1, int param2, int param3)`
    `void` | `registerOutParameter(java.lang.String param1, int param2, java.lang.String param3)`
    `void` | `setArray(int i, java.sql.Array x)` Sets the designated parameter to the given `Array` object.
    `void` | `setAsciiStream(java.lang.String parameterName, java.io.InputStream x)`
    `void` | `setAsciiStream(java.lang.String param1, java.io.InputStream param2, int param3)`
    `void` | `setAsciiStream(java.lang.String parameterName, java.io.InputStream x, long length)`
    `void` | `setBigDecimal(int parameterIndex, java.math.BigDecimal x)` Sets the designated parameter to the given BigDecimal
    `void` | `setBigDecimal(java.lang.String param1, java.math.BigDecimal param2)`
    `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` | `setBinaryStream(java.lang.String parameterName, java.io.InputStream x)`
    `void` | `setBinaryStream(java.lang.String param1, java.io.InputStream param2, int param3)`
    `void` | `setBinaryStream(java.lang.String parameterName, java.io.InputStream x, 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` | `setBlob(java.lang.String parameterName, java.sql.Blob x)`
    `void` | `setBlob(java.lang.String parameterName, java.io.InputStream inputStream)`
    `void` | `setBlob(java.lang.String parameterName, java.io.InputStream inputStream, long length)`
    `void` | `setBoolean(int parameterIndex, boolean x)` Sets the designated parameter to the given boolean value.
    `void` | `setBoolean(java.lang.String param1, boolean param2)`
    `void` | `setByte(int parameterIndex, byte x)` Sets the designated parameter to the given byte value.
    `void` | `setByte(java.lang.String param1, byte param2)`
    `void` | `setBytes(int parameterIndex, byte[] x)` Set the designated parameter to the given byte array.
    `void` | `setBytes(java.lang.String param1, byte[] param2)`
    `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` | `setCharacterStream(java.lang.String parameterName, java.io.Reader reader)`
    `void` | `setCharacterStream(java.lang.String param1, java.io.Reader param2, int param3)`
    `void` | `setCharacterStream(java.lang.String parameterName, java.io.Reader reader, long length)`
    `void` | `setClob(int parameterIndex, java.sql.Clob x)` 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` | `setClob(java.lang.String parameterName, java.sql.Clob x)`
    `void` | `setClob(java.lang.String parameterName, java.io.Reader reader)`
    `void` | `setClob(java.lang.String parameterName, 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` | `setDate(java.lang.String param1, java.sql.Date param2)`
    `void` | `setDate(java.lang.String param1, java.sql.Date param2, java.util.Calendar param3)`
    `void` | `setDouble(int parameterIndex, double x)` Sets the designated parameter to the given double value.
    `void` | `setDouble(java.lang.String param1, double param2)`
    `void` | `setFloat(int parameterIndex, float x)` Sets the designated parameter to the given floate value.
    `void` | `setFloat(java.lang.String param1, float param2)`
    `void` | `setInt(int parameterIndex, int x)` Sets the designated parameter to the given int value.
    `void` | `setInt(java.lang.String param1, int param2)`
    `void` | `setLong(int parameterIndex, long x)` Sets the designated parameter to the given long value.
    `void` | `setLong(java.lang.String param1, long param2)`
    `void` | `setNCharacterStream(java.lang.String parameterName, java.io.Reader value)`
    `void` | `setNCharacterStream(java.lang.String parameterName, java.io.Reader value, long length)`
    `void` | `setNClob(java.lang.String parameterName, java.sql.NClob value)`
    `void` | `setNClob(java.lang.String parameterName, java.io.Reader reader)`
    `void` | `setNClob(java.lang.String parameterName, java.io.Reader reader, long length)`
    `void` | `setNString(java.lang.String parameterName, 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` | `setNull(java.lang.String param1, int param2)`
    `void` | `setNull(java.lang.String param1, int param2, java.lang.String param3)`
    `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` | `setObject(java.lang.String param1, java.lang.Object param2)`
    `void` | `setObject(java.lang.String param1, java.lang.Object param2, int param3)`
    `void` | `setObject(java.lang.String param1, java.lang.Object param2, int param3, int param4)`
    `void` | `setRef(int parameterIndex, java.sql.Ref x)` Sets the designated parameter to the given `REF(<structured-type>)` value.
    `protected void` | `setRequiredTypes()` Set required types for output parameters.
    `void` | `setRowId(java.lang.String parameterName, java.sql.RowId x)`
    `void` | `setSelectableProcedure(boolean selectableProcedure)` Mark this callable statement as a call of the selectable procedure.
    `void` | `setShort(int parameterIndex, short x)` Sets the designated parameter to the given short value.
    `void` | `setShort(java.lang.String param1, short param2)`
    `void` | `setSQLXML(java.lang.String parameterName, java.sql.SQLXML xmlObject)`
    `void` | `setString(int parameterIndex, java.lang.String x)` Sets the designated parameter to the given String value.
    `void` | `setString(java.lang.String param1, java.lang.String param2)`
    `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` | `setTime(java.lang.String param1, java.sql.Time param2)`
    `void` | `setTime(java.lang.String param1, java.sql.Time param2, java.util.Calendar param3)`
    `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` | `setTimestamp(java.lang.String param1, java.sql.Timestamp param2)`
    `void` | `setTimestamp(java.lang.String param1, java.sql.Timestamp param2, java.util.Calendar param3)`
    `void` | `setURL(java.lang.String param1, java.net.URL param2)`
    `boolean` | `wasNull()` Indicates whether or not the last OUT parameter read had the value of SQL `NULL`.

    - ### Methods inherited from class org.firebirdsql.jdbc.AbstractPreparedStatement

      `addBatch, clearBatch, clearParameters, completeStatement, execute, execute, execute, execute, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getExecutionPlan, getField, getFirebirdParameterMetaData, getParameterDescriptor, getStatementType, isGeneratedKeyQuery, notifyStatementCompleted, setAsciiStream, setAsciiStream, setAsciiStream, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setRowId, setSQLXML, setStringForced, setUnicodeStream, setURL`

    - ### Methods inherited from class org.firebirdsql.jdbc.FBStatement

      `addWarning, cancel, checkValidity, clearWarnings, close, closeOnCompletion, completeStatement, createStatementListener, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, equals, executeBatch, executeImpl, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, finalize, forgetResultSet, getConnection, getDeletedRowsCount, getFetchDirection, getFetchSize, getInsertedRowsCount, getLargeMaxRows, getLargeUpdateCount, getLastExecutionPlan, getLocalStatementId, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, 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`

    - ### Methods inherited from class java.lang.Object

      `clone, getClass, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.firebirdsql.jdbc.FirebirdPreparedStatement

      `getExecutionPlan, getStatementType`

    - ### Methods inherited from interface org.firebirdsql.jdbc.FirebirdStatement

      `getDeletedRowsCount, getInsertedRowsCount, getLastExecutionPlan, getLocalStatementId, getUpdatedRowsCount, hasOpenResultSet, isClosed, isValid`

    - ### Methods inherited from interface java.sql.PreparedStatement

      `clearParameters, setAsciiStream, setAsciiStream, setAsciiStream, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNString, setRowId, setSQLXML, setUnicodeStream, setURL`

    - ### Methods inherited from interface java.sql.Statement

      `addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isCloseOnCompletion, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout`

    - ### Methods inherited from interface java.sql.Wrapper

      `isWrapperFor, unwrap`

- - ### Field Detail

    - #### selectableProcedure

          protected boolean selectableProcedure

    - #### procedureCall

          protected FBProcedureCall procedureCall

  - ### Constructor Detail

    - #### AbstractCallableStatement

          protected AbstractCallableStatement(GDSHelper c,
                                   java.lang.String sql,
                                   int rsType,
                                   int rsConcurrency,
                                   int rsHoldability,
                                   StoredProcedureMetaData storedProcMetaData,
                                   FBObjectListener.StatementListener statementListener,
                                   FBObjectListener.BlobListener blobListener)
                                       throws java.sql.SQLException

      Throws:
        `java.sql.SQLException`

  - ### Method Detail

    - #### getParameterMetaData

          public java.sql.ParameterMetaData getParameterMetaData()
                                                          throws java.sql.SQLException

      Specified by:
        `getParameterMetaData` in interface `java.sql.PreparedStatement`
      Overrides:
        `getParameterMetaData` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### addBatch

          public void addBatch()
                        throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Adds a set of parameters to this `PreparedStatement` object's batch of commands.
      Specified by:
        `addBatch` in interface `java.sql.PreparedStatement`
      Overrides:
        `addBatch` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      See Also:
        `Statement.addBatch(java.lang.String)`, What Is in the JDBC 2.0 API

    - #### executeBatchInternal

          protected java.util.List<java.lang.Long> executeBatchInternal()
                                                                 throws java.sql.SQLException

      Overrides:
        `executeBatchInternal` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setSelectableProcedure

          public void setSelectableProcedure(boolean selectableProcedure)

      Description copied from interface: `FirebirdCallableStatement`
      Mark this callable statement as a call of the selectable procedure. By default callable statement uses "EXECUTE PROCEDURE" SQL statement to invoke stored procedures that return single row of output parameters or a result set. In former case it retrieves only the first row of the result set.
      Specified by:
        `setSelectableProcedure` in interface `FirebirdCallableStatement`
      Parameters:
        `selectableProcedure` - `true` if the called procedure is selectable.
      See Also:
        `FirebirdCallableStatement.isSelectableProcedure()`

    - #### isSelectableProcedure

          public boolean isSelectableProcedure()

      Description copied from interface: `FirebirdCallableStatement`
      Retrieve if this callable statement has been marked as selectable. Starting from Firebird 2.1, this value is set automatically from metadata stored in the database. Prior to Firebird 2.1, it must be set manually.
      Specified by:
        `isSelectableProcedure` in interface `FirebirdCallableStatement`
      Returns:
        `true` if the called procedure is selectable, false otherwise
      See Also:
        `FirebirdCallableStatement.setSelectableProcedure(boolean)`

    - #### setRequiredTypes

          protected void setRequiredTypes()
                                   throws java.sql.SQLException

      Set required types for output parameters.
      Throws:
        `java.sql.SQLException` - if something went wrong.

    - #### prepareFixedStatement

          protected void prepareFixedStatement(java.lang.String sql)
                                        throws java.sql.SQLException

      We allow multiple calls to this method without re-preparing the statement. This is an workaround to the issue that the statement is actually prepared only after all OUT parameters are registered.
      Overrides:
        `prepareFixedStatement` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### getMetaData

          public java.sql.ResultSetMetaData getMetaData()
                                                 throws java.sql.SQLException

      Retrieves a `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.

      Since we deferred the statement preparation until all OUT params are registered, we ensure that the statement is prepared before the meta data for the callable statement is obtained.

      Specified by:
        `getMetaData` in interface `java.sql.PreparedStatement`
      Overrides:
        `getMetaData` in class `AbstractPreparedStatement`
      Returns:
        the description of a `ResultSet` object's columns or `null` if the driver cannot return a `ResultSetMetaData` object
      Throws:
        `java.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 method

    - #### execute

          public boolean execute()
                          throws java.sql.SQLException

      Executes an execute stored procedure. 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`
      Overrides:
        `execute` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      See Also:
        `Statement.execute(java.lang.String)`

    - #### executeQuery

          public java.sql.ResultSet executeQuery()
                                          throws java.sql.SQLException

      Execute query. This method prepares statement before execution. Rest of the processing is done by superclass.
      Specified by:
        `executeQuery` in interface `java.sql.PreparedStatement`
      Overrides:
        `executeQuery` in class `AbstractPreparedStatement`
      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

      Execute query. This method prepares statement before execution. Rest of the processing is done by superclass.
      Specified by:
        `executeUpdate` in interface `java.sql.PreparedStatement`
      Overrides:
        `executeUpdate` in class `AbstractPreparedStatement`
      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

    - #### internalExecute

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

      Execute statement internally. This method sets cached parameters. Rest of the processing is done by superclass.
      Overrides:
        `internalExecute` in class `AbstractPreparedStatement`
      Parameters:
        `sendOutParams` - Determines if the XSQLDA structure should be sent to the database
      Returns:
        `true` if the statement has more result sets.
      Throws:
        `java.sql.SQLException`

    - #### registerOutParameter

          public void registerOutParameter(int parameterIndex,
                                  int sqlType)
                                    throws java.sql.SQLException

      Registers the OUT parameter in ordinal position `parameterIndex` to the JDBC type `sqlType`. All OUT parameters must be registered before a stored procedure is executed.

      The JDBC type specified by `sqlType` for an OUT parameter determines the Java type that must be used in the `get` method to read the value of that parameter.

      If the JDBC type expected to be returned to this output parameter is specific to this particular database, `sqlType` should be `java.sql.Types.OTHER`. The method `getObject(int)` retrieves the value.

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
        `sqlType` - the JDBC type code defined by `java.sql.Types`. If the parameter is of JDBC type `NUMERIC` or `DECIMAL`, the version of `registerOutParameter` that accepts a scale value should be used.
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      See Also:
        `Types`

    - #### registerOutParameter

          public void registerOutParameter(int parameterIndex,
                                  int sqlType,
                                  int scale)
                                    throws java.sql.SQLException

      Registers the parameter in ordinal position `parameterIndex` to be of JDBC type `sqlType`. This method must be called before a stored procedure is executed.

      The JDBC type specified by `sqlType` for an OUT parameter determines the Java type that must be used in the `get` method to read the value of that parameter.

      This version of `registerOutParameter` should be used when the parameter is of JDBC type `NUMERIC` or `DECIMAL`.

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
        `sqlType` - SQL type code defined by `java.sql.Types`.
        `scale` - the desired number of digits to the right of the decimal point. It must be greater than or equal to zero.
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      See Also:
        `Types`

    - #### wasNull

          public boolean wasNull()
                          throws java.sql.SQLException

      Indicates whether or not the last OUT parameter read had the value of SQL `NULL`. Note that this method should be called only after calling a `getXXX` method; otherwise, there is no value to use in determining whether it is `null` or not.
      Specified by:
        `wasNull` in interface `java.sql.CallableStatement`
      Returns:
        `true` if the last parameter read was SQL `NULL`; `false` otherwise
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getString

          public java.lang.String getString(int parameterIndex)
                                     throws java.sql.SQLException

      Retrieves the value of a JDBC `CHAR`, `VARCHAR`, or `LONGVARCHAR` parameter as a `String` in the Java programming language.

      For the fixed-length type JDBC `CHAR`, the `String` object returned has exactly the same value the JDBC `CHAR` value had in the database, including any padding added by the database.

      Specified by:
        `getString` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getBoolean

          public boolean getBoolean(int parameterIndex)
                             throws java.sql.SQLException

      Gets the value of a JDBC `BIT` parameter as a `boolean` in the Java programming language.
      Specified by:
        `getBoolean` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `false`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getByte

          public byte getByte(int parameterIndex)
                       throws java.sql.SQLException

      Gets the value of a JDBC `TINYINT` parameter as a `byte` in the Java programming language.
      Specified by:
        `getByte` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is 0.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getShort

          public short getShort(int parameterIndex)
                         throws java.sql.SQLException

      Gets the value of a JDBC `SMALLINT` parameter as a `short` in the Java programming language.
      Specified by:
        `getShort` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is 0.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getInt

          public int getInt(int parameterIndex)
                     throws java.sql.SQLException

      Gets the value of a JDBC `INTEGER` parameter as an `int` in the Java programming language.
      Specified by:
        `getInt` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is 0.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getLong

          public long getLong(int parameterIndex)
                       throws java.sql.SQLException

      Gets the value of a JDBC `BIGINT` parameter as a `long` in the Java programming language.
      Specified by:
        `getLong` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is 0.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getFloat

          public float getFloat(int parameterIndex)
                         throws java.sql.SQLException

      Gets the value of a JDBC `FLOAT` parameter as a `float` in the Java programming language.
      Specified by:
        `getFloat` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is 0.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getDouble

          public double getDouble(int parameterIndex)
                           throws java.sql.SQLException

      Gets the value of a JDBC `DOUBLE` parameter as a `double` in the Java programming language.
      Specified by:
        `getDouble` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is 0.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getBigDecimal

          @Deprecated
          public java.math.BigDecimal getBigDecimal(int parameterIndex,
                                                      int scale)
                                             throws java.sql.SQLException

      Deprecated.
      Gets the value of a JDBC `NUMERIC` parameter as a `java.math.BigDecimal` object with scale digits to the right of the decimal point.
      Specified by:
        `getBigDecimal` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
        `scale` - the number of digits to the right of the decimal point
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getBytes

          public byte[] getBytes(int parameterIndex)
                          throws java.sql.SQLException

      Gets the value of a JDBC `BINARY` or `VARBINARY` parameter as an array of `byte` values in the Java programming language.
      Specified by:
        `getBytes` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getDate

          public java.sql.Date getDate(int parameterIndex)
                                throws java.sql.SQLException

      Gets the value of a JDBC `DATE` parameter as a `java.sql.Date` object.
      Specified by:
        `getDate` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getTime

          public java.sql.Time getTime(int parameterIndex)
                                throws java.sql.SQLException

      Get the value of a JDBC `TIME` parameter as a `java.sql.Time` object.
      Specified by:
        `getTime` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp(int parameterIndex)
                                          throws java.sql.SQLException

      Gets the value of a JDBC `TIMESTAMP` parameter as a `java.sql.Timestamp` object.
      Specified by:
        `getTimestamp` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getObject

          public java.lang.Object getObject(int parameterIndex)
                                     throws java.sql.SQLException

      Gets the value of a parameter as an `Object` in the Java programming language.

      This method returns a Java object whose type corresponds to the JDBC type that was registered for this parameter using the method `registerOutParameter`. By registering the target JDBC type as `java.sql.Types.OTHER`, this method can be used to read database-specific abstract data types.

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        A `java.lang.Object` holding the OUT parameter value.
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      See Also:
        `Types`

    - #### getObject

          public java.lang.Object getObject(java.lang.String colName)
                                     throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getObject

          public java.lang.Object getObject(int parameterIndex,
                                   java.util.Map<java.lang.String,java.lang.Class<?>> map)
                                     throws java.sql.SQLException

      Returns an object representing the value of OUT parameter `i` and uses `map` for the custom mapping of the parameter value.

      This method returns a Java object whose type corresponds to the JDBC type that was registered for this parameter using the method `registerOutParameter`. By registering the target JDBC type as `java.sql.Types.OTHER`, this method can be used to read database-specific abstract data types.

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
        `map` - the mapping from SQL type names to Java classes
      Returns:
        a `java.lang.Object` holding the OUT parameter value
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      Since:
        1.2
      See Also:
        What Is in the JDBC 2.0 API

    - #### getObject

          public java.lang.Object getObject(java.lang.String colName,
                                   java.util.Map<java.lang.String,java.lang.Class<?>> map)
                                     throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getObject

          public <T> T getObject(int parameterIndex,
                        java.lang.Class<T> type)
                      throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getObject

          public <T> T getObject(java.lang.String parameterName,
                        java.lang.Class<T> type)
                      throws java.sql.SQLException

      Specified by:
        `getObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getBigDecimal

          public java.math.BigDecimal getBigDecimal(int parameterIndex)
                                             throws java.sql.SQLException

      Gets the value of a JDBC `NUMERIC` parameter as a `java.math.BigDecimal` object with as many digits to the right of the decimal point as the value contains.
      Specified by:
        `getBigDecimal` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value in full precision. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      Since:
        1.2
      See Also:
        What Is in the JDBC 2.0 API

    - #### getRef

          public java.sql.Ref getRef(int parameterIndex)
                              throws java.sql.SQLException

      Gets the value of a JDBC `REF(<structured-type>)` parameter as a `Ref` object in the Java programming language.
      Specified by:
        `getRef` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value as a `Ref` object in the Java programming language. If the value was SQL `NULL`, the value `null` is returned.
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      Since:
        1.2
      See Also:
        What Is in the JDBC 2.0 API

    - #### getBlob

          public java.sql.Blob getBlob(int parameterIndex)
                                throws java.sql.SQLException

      Gets the value of a JDBC `BLOB` parameter as a `Blob` object in the Java programming language.
      Specified by:
        `getBlob` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value as a `Blob` object in the Java programming language. If the value was SQL `NULL`, the value `null` is returned.
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      Since:
        1.2
      See Also:
        What Is in the JDBC 2.0 API

    - #### getClob

          public java.sql.Clob getClob(int parameterIndex)
                                throws java.sql.SQLException

      Gets the value of a JDBC `CLOB` parameter as a `Clob` object in the Java programming language.
      Specified by:
        `getClob` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value as a `Clob` object in the Java programming language. If the value was SQL `NULL`, the value `null` is returned.
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      Since:
        1.2
      See Also:
        What Is in the JDBC 2.0 API

    - #### getArray

          public java.sql.Array getArray(int parameterIndex)
                                  throws java.sql.SQLException

      Gets the value of a JDBC `ARRAY` parameter as an `Array` object in the Java programming language.
      Specified by:
        `getArray` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
      Returns:
        the parameter value as an `Array` object in the Java programming language. If the value was SQL `NULL`, the value `null` is returned.
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      Since:
        1.2
      See Also:
        What Is in the JDBC 2.0 API

    - #### getDate

          public java.sql.Date getDate(int parameterIndex,
                              java.util.Calendar cal)
                                throws java.sql.SQLException

      Gets the value of a JDBC `DATE` parameter as a `java.sql.Date` object, using the given `Calendar` object to construct the date. With a `Calendar` object, the driver can calculate the date taking into account a custom timezone and locale. If no `Calendar` object is specified, the driver uses the default timezone and locale.
      Specified by:
        `getDate` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
        `cal` - the `Calendar` object the driver will use to construct the date
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getTime

          public java.sql.Time getTime(int parameterIndex,
                              java.util.Calendar cal)
                                throws java.sql.SQLException

      Gets the value of a JDBC `TIME` parameter as a `java.sql.Time` object, using the given `Calendar` object to construct the time. With a `Calendar` object, the driver can calculate the time taking into account a custom timezone and locale. If no `Calendar` object is specified, the driver uses the default timezone and locale.
      Specified by:
        `getTime` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
        `cal` - the `Calendar` object the driver will use to construct the time
      Returns:
        the parameter value; if the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp(int parameterIndex,
                                        java.util.Calendar cal)
                                          throws java.sql.SQLException

      Gets the value of a JDBC `TIMESTAMP` parameter as a `java.sql.Timestamp` object, using the given `Calendar` object to construct the `Timestamp` object. With a `Calendar` object, the driver can calculate the timestamp taking into account a custom timezone and locale. If no `Calendar` object is specified, the driver uses the default timezone and locale.
      Specified by:
        `getTimestamp` in interface `java.sql.CallableStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, and so on
        `cal` - the `Calendar` object the driver will use to construct the timestamp
      Returns:
        the parameter value. If the value is SQL `NULL`, the result is `null`.
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### getURL

          public java.net.URL getURL(int parameterIndex)
                              throws java.sql.SQLException

      Specified by:
        `getURL` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getString

          public java.lang.String getString(java.lang.String colName)
                                     throws java.sql.SQLException

      Specified by:
        `getString` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getBoolean

          public boolean getBoolean(java.lang.String colName)
                             throws java.sql.SQLException

      Specified by:
        `getBoolean` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getByte

          public byte getByte(java.lang.String colName)
                       throws java.sql.SQLException

      Specified by:
        `getByte` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getShort

          public short getShort(java.lang.String colName)
                         throws java.sql.SQLException

      Specified by:
        `getShort` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getInt

          public int getInt(java.lang.String colName)
                     throws java.sql.SQLException

      Specified by:
        `getInt` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getLong

          public long getLong(java.lang.String colName)
                       throws java.sql.SQLException

      Specified by:
        `getLong` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getFloat

          public float getFloat(java.lang.String colName)
                         throws java.sql.SQLException

      Specified by:
        `getFloat` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getDouble

          public double getDouble(java.lang.String colName)
                           throws java.sql.SQLException

      Specified by:
        `getDouble` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getBytes

          public byte[] getBytes(java.lang.String colName)
                          throws java.sql.SQLException

      Specified by:
        `getBytes` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getDate

          public java.sql.Date getDate(java.lang.String colName)
                                throws java.sql.SQLException

      Specified by:
        `getDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getTime

          public java.sql.Time getTime(java.lang.String colName)
                                throws java.sql.SQLException

      Specified by:
        `getTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp(java.lang.String colName)
                                          throws java.sql.SQLException

      Specified by:
        `getTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getBigDecimal

          public java.math.BigDecimal getBigDecimal(java.lang.String colName)
                                             throws java.sql.SQLException

      Specified by:
        `getBigDecimal` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getRef

          public java.sql.Ref getRef(java.lang.String colName)
                              throws java.sql.SQLException

      Specified by:
        `getRef` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getBlob

          public java.sql.Blob getBlob(java.lang.String colName)
                                throws java.sql.SQLException

      Specified by:
        `getBlob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getClob

          public java.sql.Clob getClob(java.lang.String colName)
                                throws java.sql.SQLException

      Specified by:
        `getClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getArray

          public java.sql.Array getArray(java.lang.String colName)
                                  throws java.sql.SQLException

      Specified by:
        `getArray` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getDate

          public java.sql.Date getDate(java.lang.String colName,
                              java.util.Calendar cal)
                                throws java.sql.SQLException

      Specified by:
        `getDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getTime

          public java.sql.Time getTime(java.lang.String colName,
                              java.util.Calendar cal)
                                throws java.sql.SQLException

      Specified by:
        `getTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getTimestamp

          public java.sql.Timestamp getTimestamp(java.lang.String colName,
                                        java.util.Calendar cal)
                                          throws java.sql.SQLException

      Specified by:
        `getTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getURL

          public java.net.URL getURL(java.lang.String colName)
                              throws java.sql.SQLException

      Specified by:
        `getURL` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getCharacterStream

          public java.io.Reader getCharacterStream(int parameterIndex)
                                            throws java.sql.SQLException

      Specified by:
        `getCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getCharacterStream

          public java.io.Reader getCharacterStream(java.lang.String parameterName)
                                            throws java.sql.SQLException

      Specified by:
        `getCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getNCharacterStream

          public java.io.Reader getNCharacterStream(int parameterIndex)
                                             throws java.sql.SQLException

      Specified by:
        `getNCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getNCharacterStream

          public java.io.Reader getNCharacterStream(java.lang.String parameterName)
                                             throws java.sql.SQLException

      Specified by:
        `getNCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getNString

          public java.lang.String getNString(int parameterIndex)
                                      throws java.sql.SQLException

      Specified by:
        `getNString` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getNString

          public java.lang.String getNString(java.lang.String parameterName)
                                      throws java.sql.SQLException

      Specified by:
        `getNString` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setAsciiStream

          public void setAsciiStream(java.lang.String parameterName,
                            java.io.InputStream x,
                            long length)
                              throws java.sql.SQLException

      Specified by:
        `setAsciiStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setAsciiStream

          public void setAsciiStream(java.lang.String parameterName,
                            java.io.InputStream x)
                              throws java.sql.SQLException

      Specified by:
        `setAsciiStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBinaryStream

          public void setBinaryStream(java.lang.String parameterName,
                             java.io.InputStream x,
                             long length)
                               throws java.sql.SQLException

      Specified by:
        `setBinaryStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBinaryStream

          public void setBinaryStream(java.lang.String parameterName,
                             java.io.InputStream x)
                               throws java.sql.SQLException

      Specified by:
        `setBinaryStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBlob

          public void setBlob(java.lang.String parameterName,
                     java.sql.Blob x)
                       throws java.sql.SQLException

      Specified by:
        `setBlob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBlob

          public void setBlob(java.lang.String parameterName,
                     java.io.InputStream inputStream,
                     long length)
                       throws java.sql.SQLException

      Specified by:
        `setBlob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBlob

          public void setBlob(java.lang.String parameterName,
                     java.io.InputStream inputStream)
                       throws java.sql.SQLException

      Specified by:
        `setBlob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setCharacterStream

          public void setCharacterStream(java.lang.String parameterName,
                                java.io.Reader reader,
                                long length)
                                  throws java.sql.SQLException

      Specified by:
        `setCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setCharacterStream

          public void setCharacterStream(java.lang.String parameterName,
                                java.io.Reader reader)
                                  throws java.sql.SQLException

      Specified by:
        `setCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setClob

          public void setClob(java.lang.String parameterName,
                     java.sql.Clob x)
                       throws java.sql.SQLException

      Specified by:
        `setClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setClob

          public void setClob(java.lang.String parameterName,
                     java.io.Reader reader,
                     long length)
                       throws java.sql.SQLException

      Specified by:
        `setClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setClob

          public void setClob(java.lang.String parameterName,
                     java.io.Reader reader)
                       throws java.sql.SQLException

      Specified by:
        `setClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setNCharacterStream

          public void setNCharacterStream(java.lang.String parameterName,
                                 java.io.Reader value,
                                 long length)
                                   throws java.sql.SQLException

      Implementation note: This method behaves exactly the same as `setCharacterStream(String, Reader, long)`.

      Specified by:
        `setNCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setNCharacterStream

          public void setNCharacterStream(java.lang.String parameterName,
                                 java.io.Reader value)
                                   throws java.sql.SQLException

      Implementation note: This method behaves exactly the same as `setCharacterStream(String, Reader)`.

      Specified by:
        `setNCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setNClob

          public void setNClob(java.lang.String parameterName,
                      java.io.Reader reader,
                      long length)
                        throws java.sql.SQLException

      Implementation note: This method behaves exactly the same as `setClob(String, Reader, long)`.

      Specified by:
        `setNClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setNClob

          public void setNClob(java.lang.String parameterName,
                      java.io.Reader reader)
                        throws java.sql.SQLException

      Implementation note: This method behaves exactly the same as `setClob(String, Reader)`.

      Specified by:
        `setNClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setNString

          public void setNString(java.lang.String parameterName,
                        java.lang.String value)
                          throws java.sql.SQLException

      Implementation note: This method behaves exactly the same as `setString(String, String)`.

      Specified by:
        `setNString` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### registerOutParameter

          public void registerOutParameter(java.lang.String param1,
                                  int param2)
                                    throws java.sql.SQLException

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### registerOutParameter

          public void registerOutParameter(java.lang.String param1,
                                  int param2,
                                  int param3)
                                    throws java.sql.SQLException

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### registerOutParameter

          public void registerOutParameter(java.lang.String param1,
                                  int param2,
                                  java.lang.String param3)
                                    throws java.sql.SQLException

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setURL

          public void setURL(java.lang.String param1,
                    java.net.URL param2)
                      throws java.sql.SQLException

      Specified by:
        `setURL` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setNull

          public void setNull(java.lang.String param1,
                     int param2)
                       throws java.sql.SQLException

      Specified by:
        `setNull` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBoolean

          public void setBoolean(java.lang.String param1,
                        boolean param2)
                          throws java.sql.SQLException

      Specified by:
        `setBoolean` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setByte

          public void setByte(java.lang.String param1,
                     byte param2)
                       throws java.sql.SQLException

      Specified by:
        `setByte` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setShort

          public void setShort(java.lang.String param1,
                      short param2)
                        throws java.sql.SQLException

      Specified by:
        `setShort` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setInt

          public void setInt(java.lang.String param1,
                    int param2)
                      throws java.sql.SQLException

      Specified by:
        `setInt` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setLong

          public void setLong(java.lang.String param1,
                     long param2)
                       throws java.sql.SQLException

      Specified by:
        `setLong` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setFloat

          public void setFloat(java.lang.String param1,
                      float param2)
                        throws java.sql.SQLException

      Specified by:
        `setFloat` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setDouble

          public void setDouble(java.lang.String param1,
                       double param2)
                         throws java.sql.SQLException

      Specified by:
        `setDouble` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBigDecimal

          public void setBigDecimal(java.lang.String param1,
                           java.math.BigDecimal param2)
                             throws java.sql.SQLException

      Specified by:
        `setBigDecimal` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setString

          public void setString(java.lang.String param1,
                       java.lang.String param2)
                         throws java.sql.SQLException

      Specified by:
        `setString` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBytes

          public void setBytes(java.lang.String param1,
                      byte[] param2)
                        throws java.sql.SQLException

      Specified by:
        `setBytes` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setDate

          public void setDate(java.lang.String param1,
                     java.sql.Date param2)
                       throws java.sql.SQLException

      Specified by:
        `setDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setTime

          public void setTime(java.lang.String param1,
                     java.sql.Time param2)
                       throws java.sql.SQLException

      Specified by:
        `setTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setTimestamp

          public void setTimestamp(java.lang.String param1,
                          java.sql.Timestamp param2)
                            throws java.sql.SQLException

      Specified by:
        `setTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setAsciiStream

          public void setAsciiStream(java.lang.String param1,
                            java.io.InputStream param2,
                            int param3)
                              throws java.sql.SQLException

      Specified by:
        `setAsciiStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBinaryStream

          public void setBinaryStream(java.lang.String param1,
                             java.io.InputStream param2,
                             int param3)
                               throws java.sql.SQLException

      Specified by:
        `setBinaryStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setObject

          public void setObject(java.lang.String param1,
                       java.lang.Object param2,
                       int param3,
                       int param4)
                         throws java.sql.SQLException

      Specified by:
        `setObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setObject

          public void setObject(java.lang.String param1,
                       java.lang.Object param2,
                       int param3)
                         throws java.sql.SQLException

      Specified by:
        `setObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setObject

          public void setObject(java.lang.String param1,
                       java.lang.Object param2)
                         throws java.sql.SQLException

      Specified by:
        `setObject` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setCharacterStream

          public void setCharacterStream(java.lang.String param1,
                                java.io.Reader param2,
                                int param3)
                                  throws java.sql.SQLException

      Specified by:
        `setCharacterStream` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setDate

          public void setDate(java.lang.String param1,
                     java.sql.Date param2,
                     java.util.Calendar param3)
                       throws java.sql.SQLException

      Specified by:
        `setDate` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setTime

          public void setTime(java.lang.String param1,
                     java.sql.Time param2,
                     java.util.Calendar param3)
                       throws java.sql.SQLException

      Specified by:
        `setTime` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setTimestamp

          public void setTimestamp(java.lang.String param1,
                          java.sql.Timestamp param2,
                          java.util.Calendar param3)
                            throws java.sql.SQLException

      Specified by:
        `setTimestamp` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setNull

          public void setNull(java.lang.String param1,
                     int param2,
                     java.lang.String param3)
                       throws java.sql.SQLException

      Specified by:
        `setNull` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### registerOutParameter

          public void registerOutParameter(int parameterIndex,
                                  int sqlType,
                                  java.lang.String typeName)
                                    throws java.sql.SQLException

      Specified by:
        `registerOutParameter` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getGeneratedKeys

          public java.sql.ResultSet getGeneratedKeys()
                                              throws java.sql.SQLException

      Description copied from class: `FBStatement`
      Retrieves any auto-generated keys created as a result of executing this `Statement` object. If this `Statement` object did not generate any keys, an empty `ResultSet` object is returned.

      Note:If the columns which represent the auto-generated keys were not specified, the JDBC driver implementation will determine the columns which best represent the auto-generated keys.

      Specified by:
        `getGeneratedKeys` in interface `java.sql.Statement`
      Overrides:
        `getGeneratedKeys` in class `FBStatement`
      Returns:
        a `ResultSet` object containing the auto-generated key(s) generated by the execution of this `Statement` object
      Throws:
        `java.sql.SQLException` - if a database access error occurs or this method is called on a closed `Statement`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method

    - #### assertHasData

          protected void assertHasData(java.sql.ResultSet rs)
                                throws java.sql.SQLException

      Asserts if the current statement has data to return. It checks if the result set has a row with data.
      Parameters:
        `rs` - result set to test
      Throws:
        `java.sql.SQLException` - when the result set has no data.

    - #### getCurrentResultSet

          public java.sql.ResultSet getCurrentResultSet()
                                                 throws java.sql.SQLException

      Description copied from interface: `FirebirdStatement`
      Get current result set. Behaviour of this method is similar to the behavior of the `Statement.getResultSet()`, except that this method can be called as much as you like.
      Specified by:
        `getCurrentResultSet` in interface `FirebirdStatement`
      Overrides:
        `getCurrentResultSet` in class `FBStatement`
      Returns:
        instance of `ResultSet` representing current result set or `null` if it is not available.
      Throws:
        `java.sql.SQLException` - if database access error happened.

    - #### getAndAssertSingletonResultSet

          protected java.sql.ResultSet getAndAssertSingletonResultSet()
                                                               throws java.sql.SQLException

      Returns the result set for the singleton row of the callable statement and asserts it has data. If this is a selectable procedure, or there is no singleton row, it will return the normal result set.

      This should fix the problem described in JDBC-350 in most circumstances.

      Returns:
        Either the singleton result set, or the current result set as described above
      Throws:
        `java.sql.SQLException` - For database access errors

    - #### getResultSet

          public java.sql.ResultSet getResultSet()
                                          throws java.sql.SQLException

      Returns the current result as a `ResultSet` object. This method should be called only once per result. Calling this method twice with autocommit on and used will probably throw an inappropriate or uninformative exception.
      Specified by:
        `getResultSet` in interface `java.sql.Statement`
      Overrides:
        `getResultSet` in class `FBStatement`
      Returns:
        the current result as a `ResultSet` object; `null` if the result is an update count or there are no more results
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      See Also:
        `execute()`

    - #### setArray

          public void setArray(int i,
                      java.sql.Array x)
                        throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given `Array` object. Sets an Array parameter.
      Specified by:
        `setArray` in interface `java.sql.PreparedStatement`
      Overrides:
        `setArray` in class `AbstractPreparedStatement`
      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
      See Also:
        What Is in the JDBC 2.0 API

    - #### setBigDecimal

          public void setBigDecimal(int parameterIndex,
                           java.math.BigDecimal x)
                             throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given BigDecimal
      Specified by:
        `setBigDecimal` in interface `java.sql.PreparedStatement`
      Overrides:
        `setBigDecimal` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - The first parameter is 1, second is 2, ...
        `x` - The BigDecimal to be set as a parameter
      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`
      Overrides:
        `setBinaryStream` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBinaryStream

          public void setBinaryStream(int parameterIndex,
                             java.io.InputStream inputStream,
                             long length)
                               throws java.sql.SQLException

      Specified by:
        `setBinaryStream` in interface `java.sql.PreparedStatement`
      Overrides:
        `setBinaryStream` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBinaryStream

          public void setBinaryStream(int parameterIndex,
                             java.io.InputStream inputStream)
                               throws java.sql.SQLException

      Specified by:
        `setBinaryStream` in interface `java.sql.PreparedStatement`
      Overrides:
        `setBinaryStream` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBlob

          public void setBlob(int parameterIndex,
                     java.sql.Blob blob)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given `Blob` object.
      Specified by:
        `setBlob` in interface `java.sql.PreparedStatement`
      Overrides:
        `setBlob` in class `AbstractPreparedStatement`
      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
      See Also:
        What Is in the JDBC 2.0 API

    - #### setBlob

          public void setBlob(int parameterIndex,
                     java.io.InputStream inputStream,
                     long length)
                       throws java.sql.SQLException

      Specified by:
        `setBlob` in interface `java.sql.PreparedStatement`
      Overrides:
        `setBlob` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBlob

          public void setBlob(int parameterIndex,
                     java.io.InputStream inputStream)
                       throws java.sql.SQLException

      Specified by:
        `setBlob` in interface `java.sql.PreparedStatement`
      Overrides:
        `setBlob` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setBoolean

          public void setBoolean(int parameterIndex,
                        boolean x)
                          throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given boolean value.
      Specified by:
        `setBoolean` in interface `java.sql.PreparedStatement`
      Overrides:
        `setBoolean` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The boolean value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setByte

          public void setByte(int parameterIndex,
                     byte x)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given byte value.
      Specified by:
        `setByte` in interface `java.sql.PreparedStatement`
      Overrides:
        `setByte` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The byte value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setBytes

          public void setBytes(int parameterIndex,
                      byte[] x)
                        throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Set the designated parameter to the given byte array.
      Specified by:
        `setBytes` in interface `java.sql.PreparedStatement`
      Overrides:
        `setBytes` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The byte array to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setCharacterStream

          public void setCharacterStream(int parameterIndex,
                                java.io.Reader reader,
                                int length)
                                  throws java.sql.SQLException

      Specified by:
        `setCharacterStream` in interface `java.sql.PreparedStatement`
      Overrides:
        `setCharacterStream` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setCharacterStream

          public void setCharacterStream(int parameterIndex,
                                java.io.Reader reader,
                                long length)
                                  throws java.sql.SQLException

      Specified by:
        `setCharacterStream` in interface `java.sql.PreparedStatement`
      Overrides:
        `setCharacterStream` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setCharacterStream

          public void setCharacterStream(int parameterIndex,
                                java.io.Reader reader)
                                  throws java.sql.SQLException

      Specified by:
        `setCharacterStream` in interface `java.sql.PreparedStatement`
      Overrides:
        `setCharacterStream` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setClob

          public void setClob(int parameterIndex,
                     java.sql.Clob x)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given `Clob` object.
      Specified by:
        `setClob` in interface `java.sql.PreparedStatement`
      Overrides:
        `setClob` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - 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

    - #### setClob

          public void setClob(int parameterIndex,
                     java.io.Reader reader,
                     long length)
                       throws java.sql.SQLException

      Specified by:
        `setClob` in interface `java.sql.PreparedStatement`
      Overrides:
        `setClob` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setClob

          public void setClob(int parameterIndex,
                     java.io.Reader reader)
                       throws java.sql.SQLException

      Specified by:
        `setClob` in interface `java.sql.PreparedStatement`
      Overrides:
        `setClob` in class `AbstractPreparedStatement`
      Throws:
        `java.sql.SQLException`

    - #### setDate

          public void setDate(int parameterIndex,
                     java.sql.Date x,
                     java.util.Calendar cal)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      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`
      Overrides:
        `setDate` in class `AbstractPreparedStatement`
      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
      See Also:
        What Is in the JDBC 2.0 API

    - #### setDate

          public void setDate(int parameterIndex,
                     java.sql.Date x)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given date value.
      Specified by:
        `setDate` in interface `java.sql.PreparedStatement`
      Overrides:
        `setDate` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The date value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setDouble

          public void setDouble(int parameterIndex,
                       double x)
                         throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given double value.
      Specified by:
        `setDouble` in interface `java.sql.PreparedStatement`
      Overrides:
        `setDouble` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The double value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setFloat

          public void setFloat(int parameterIndex,
                      float x)
                        throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given floate value.
      Specified by:
        `setFloat` in interface `java.sql.PreparedStatement`
      Overrides:
        `setFloat` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The float value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setInt

          public void setInt(int parameterIndex,
                    int x)
                      throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given int value.
      Specified by:
        `setInt` in interface `java.sql.PreparedStatement`
      Overrides:
        `setInt` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The int value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setLong

          public void setLong(int parameterIndex,
                     long x)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given long value.
      Specified by:
        `setLong` in interface `java.sql.PreparedStatement`
      Overrides:
        `setLong` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The long value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setNull

          public void setNull(int parameterIndex,
                     int sqlType,
                     java.lang.String typeName)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      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`
      Overrides:
        `setNull` in class `AbstractPreparedStatement`
      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
      See Also:
        What Is in the JDBC 2.0 API

    - #### setNull

          public void setNull(int parameterIndex,
                     int sqlType)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to SQL `NULL`.

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

      Specified by:
        `setNull` in interface `java.sql.PreparedStatement`
      Overrides:
        `setNull` in class `AbstractPreparedStatement`
      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

    - #### setObject

          public void setObject(int parameterIndex,
                       java.lang.Object x,
                       int targetSqlType,
                       int scale)
                         throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`

      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`
      Overrides:
        `setObject` in class `AbstractPreparedStatement`
      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

      Description copied from class: `AbstractPreparedStatement`
      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`
      Overrides:
        `setObject` in class `AbstractPreparedStatement`
      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

    - #### setObject

          public void setObject(int parameterIndex,
                       java.lang.Object x)
                         throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the value of the designated parameter with the given object.
      Specified by:
        `setObject` in interface `java.sql.PreparedStatement`
      Overrides:
        `setObject` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - the object containing the parameter value
      Throws:
        `java.sql.SQLException` - if a database access error occurs

    - #### setRef

          public void setRef(int parameterIndex,
                    java.sql.Ref x)
                      throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given `REF(<structured-type>)` value.
      Specified by:
        `setRef` in interface `java.sql.PreparedStatement`
      Overrides:
        `setRef` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - an SQL `REF` value
      Throws:
        `java.sql.SQLException` - if a database access error occurs
      See Also:
        What Is in the JDBC 2.0 API

    - #### setShort

          public void setShort(int parameterIndex,
                      short x)
                        throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given short value.
      Specified by:
        `setShort` in interface `java.sql.PreparedStatement`
      Overrides:
        `setShort` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The short value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setString

          public void setString(int parameterIndex,
                       java.lang.String x)
                         throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given String value.
      Specified by:
        `setString` in interface `java.sql.PreparedStatement`
      Overrides:
        `setString` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The String value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setTime

          public void setTime(int parameterIndex,
                     java.sql.Time x,
                     java.util.Calendar cal)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      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`
      Overrides:
        `setTime` in class `AbstractPreparedStatement`
      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
      See Also:
        What Is in the JDBC 2.0 API

    - #### setTime

          public void setTime(int parameterIndex,
                     java.sql.Time x)
                       throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given Time value.
      Specified by:
        `setTime` in interface `java.sql.PreparedStatement`
      Overrides:
        `setTime` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The Time value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### setTimestamp

          public void setTimestamp(int parameterIndex,
                          java.sql.Timestamp x,
                          java.util.Calendar cal)
                            throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      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`
      Overrides:
        `setTimestamp` in class `AbstractPreparedStatement`
      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
      See Also:
        What Is in the JDBC 2.0 API

    - #### setTimestamp

          public void setTimestamp(int parameterIndex,
                          java.sql.Timestamp x)
                            throws java.sql.SQLException

      Description copied from class: `AbstractPreparedStatement`
      Sets the designated parameter to the given Timestamp value.
      Specified by:
        `setTimestamp` in interface `java.sql.PreparedStatement`
      Overrides:
        `setTimestamp` in class `AbstractPreparedStatement`
      Parameters:
        `parameterIndex` - the first parameter is 1, the second is 2, ...
        `x` - The Timestamp value to be set
      Throws:
        `java.sql.SQLException` - if a database access occurs

    - #### findOutParameter

          protected int findOutParameter(java.lang.String paramName)
                                  throws java.sql.SQLException

      Helper method to identify the right resultset column for the give OUT parameter name.
      Parameters:
        `paramName` - Name of the OUT parameter
      Throws:
        `java.sql.SQLException`

    - #### getNClob

          public java.sql.NClob getNClob(int parameterIndex)
                                  throws java.sql.SQLException

      Specified by:
        `getNClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getNClob

          public java.sql.NClob getNClob(java.lang.String parameterName)
                                  throws java.sql.SQLException

      Specified by:
        `getNClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getRowId

          public java.sql.RowId getRowId(int parameterIndex)
                                  throws java.sql.SQLException

      Specified by:
        `getRowId` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getRowId

          public java.sql.RowId getRowId(java.lang.String parameterName)
                                  throws java.sql.SQLException

      Specified by:
        `getRowId` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getSQLXML

          public java.sql.SQLXML getSQLXML(int parameterIndex)
                                    throws java.sql.SQLException

      Specified by:
        `getSQLXML` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### getSQLXML

          public java.sql.SQLXML getSQLXML(java.lang.String parameterName)
                                    throws java.sql.SQLException

      Specified by:
        `getSQLXML` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setNClob

          public void setNClob(java.lang.String parameterName,
                      java.sql.NClob value)
                        throws java.sql.SQLException

      Implementation note: This method behaves exactly the same as `setClob(String, Clob)`.

      Specified by:
        `setNClob` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setRowId

          public void setRowId(java.lang.String parameterName,
                      java.sql.RowId x)
                        throws java.sql.SQLException

      Specified by:
        `setRowId` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

    - #### setSQLXML

          public void setSQLXML(java.lang.String parameterName,
                       java.sql.SQLXML xmlObject)
                         throws java.sql.SQLException

      Specified by:
        `setSQLXML` in interface `java.sql.CallableStatement`
      Throws:
        `java.sql.SQLException`

Copyright © 2001-2021 Jaybird (Firebird JDBC/JCA) team. All rights reserved.