Package org.firebirdsql.gds.ng.wire.version16

## Class V16Statement

- java.lang.Object
- - org.firebirdsql.gds.ng.AbstractFbStatement
  - - org.firebirdsql.gds.ng.wire.AbstractFbWireStatement
    - - org.firebirdsql.gds.ng.wire.version10.V10Statement
      - - org.firebirdsql.gds.ng.wire.version11.V11Statement
        - - org.firebirdsql.gds.ng.wire.version12.V12Statement
          - - org.firebirdsql.gds.ng.wire.version13.V13Statement
            - - org.firebirdsql.gds.ng.wire.version16.V16Statement

- All Implemented Interfaces:
    `java.lang.AutoCloseable`, `FbStatement`, `ExceptionListenable`, `FbWireStatement`
  Direct Known Subclasses:
    `V18Statement`

      public class V16Statement
      extends V13Statement

  Since:
    4.0
  Author:
    Mark Rotteveel

- - ### Field Summary

    - ### Fields inherited from class org.firebirdsql.gds.ng.AbstractFbStatement

      `exceptionListenerDispatcher, statementListenerDispatcher`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `V16Statement​(FbWireDatabase database)` | Creates a new instance of V16Statement for the specified database.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `batchCancel()` | Cancels the server side batch (that is, clear any rows batched on the server).
    `BatchCompletion` | `batchExecute()` | Execute the batch on the server.
    `BatchParameterBuffer` | `createBatchParameterBuffer()` | Creates a `BatchParameterBuffer` instance compatible with this protocol version.
    `void` | `deferredBatchCreate​(FbBatchConfig batchConfig, DeferredResponse<java.lang.Void> onResponse)` | Sends batch create with deferred response processing.
    `void` | `deferredBatchRelease​(DeferredResponse<java.lang.Void> onResponse)` | Closes (releases) the batch on the server with deferred response processing.
    `void` | `deferredBatchSend​(java.util.Collection<RowValue> rowValues, DeferredResponse<java.lang.Void> onResponse)` | Sends batch data with deferred response processing.
    `protected void` | `sendBatchCreate​(FbBatchConfig batchConfig)` |
    `protected void` | `sendBatchMsg​(java.util.Collection<RowValue> rowValues)` |
    `protected void` | `sendExecute​(int operation, RowValue parameters)` | Sends the execute (for `op_execute` or `op_execute2`) to the database.
    `boolean` | `supportBatchUpdates()` | Reports whether this statement implementation supports server-side batch updates.

    - ### Methods inherited from class org.firebirdsql.gds.ng.wire.version13.V13Statement

      `readSqlData, writeSqlData, writeSqlData`

    - ### Methods inherited from class org.firebirdsql.gds.ng.wire.version11.V11Statement

      `free, prepare`

    - ### Methods inherited from class org.firebirdsql.gds.ng.wire.version10.V10Statement

      `doFreePacket, execute, fetchRows, getDefaultSqlInfoSize, getMaxSqlInfoSize, processAllocateResponse, processExecuteResponse, processExecuteSingletonResponse, processFetchResponse, processFreeResponse, processPrepareResponse, readColumnData, sendAllocate, sendFetch, sendFree, sendPrepare, setCursorName, writeColumnData`

    - ### Methods inherited from class org.firebirdsql.gds.ng.wire.AbstractFbWireStatement

      `calculateBlr, calculateBlr, close, emptyRowDescriptor, getBlrCalculator, getDatabase, getHandle, getInfo, getSqlInfo, getXdrIn, getXdrOut, isValidTransactionClass, setHandle, withLock, wrapDeferredResponse`

    - ### Methods inherited from class org.firebirdsql.gds.ng.AbstractFbStatement

      `addExceptionListener, addStatementListener, checkStatementValid, checkStatementValid, closeCursor, closeCursor, createExecutionPlanProcessor, createSqlCountProcessor, ensureClosedCursor, fetchScroll, fetchScrollImpl, finalize, forceState, getAllowedTimeout, getCursorInfo, getCursorInfo, getCursorInfoImpl, getExecutionPlan, getExplainedExecutionPlan, getParameterDescriptionInfoRequestItems, getParameterDescriptor, getRowDescriptor, getSqlCounts, getSqlInfo, getState, getStatementInfoRequestItems, getStatementWarningCallback, getTimeout, getTransaction, getTransactionListener, getType, hasFetched, hasFields, hasSingletonResult, isAfterLast, isBeforeFirst, isPrepareAllowed, parseStatementInfo, queueRowData, removeExceptionListener, removeStatementListener, reset, reset, resetAll, setAfterLast, setBeforeFirst, setParameterDescriptor, setRowDescriptor, setTimeout, setTransaction, setType, signalExecute, signalFetch, switchState, unprepare, validateParameters`

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

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

    - ### Methods inherited from interface org.firebirdsql.gds.ng.listeners.ExceptionListenable

      `addExceptionListener, removeExceptionListener`

    - ### Methods inherited from interface org.firebirdsql.gds.ng.FbStatement

      `addStatementListener, clearCursorFlag, close, closeCursor, closeCursor, emptyRowDescriptor, ensureClosedCursor, fetchScroll, getCursorInfo, getCursorInfo, getDatabase, getExecutionPlan, getExplainedExecutionPlan, getHandle, getParameterDescriptor, getRowDescriptor, getSqlCounts, getSqlInfo, getSqlInfo, getState, getTimeout, getTransaction, getType, hasFetched, isCursorFlagSet, removeStatementListener, setCursorFlag, setTimeout, setTransaction, supportsCursorInfo, supportsFetchScroll, unprepare, validateParameters, withLock`

- - ### Constructor Detail

    - #### V16Statement

          public V16Statement​(FbWireDatabase database)

      Creates a new instance of V16Statement for the specified database.
      Parameters:
        `database` - FbWireDatabase implementation

  - ### Method Detail

    - #### sendExecute

          protected void sendExecute​(int operation,
                                     RowValue parameters)
                              throws java.io.IOException,
                                     java.sql.SQLException

      Description copied from class: `V10Statement`
      Sends the execute (for `op_execute` or `op_execute2`) to the database.
      Overrides:
        `sendExecute` in class `V10Statement`
      Parameters:
        `operation` - Operation (`op_execute` or `op_execute2`)
        `parameters` - Parameters
      Throws:
        `java.io.IOException`
        `java.sql.SQLException`

    - #### supportBatchUpdates

          public boolean supportBatchUpdates()

      Description copied from interface: `FbStatement`
      Reports whether this statement implementation supports server-side batch updates.
      Returns:
        `true` server-side batch updates supported, `false` if not supported (default implementation returns `false`)

    - #### createBatchParameterBuffer

          public BatchParameterBuffer createBatchParameterBuffer()
                                                          throws java.sql.SQLException

      Description copied from interface: `FbStatement`
      Creates a `BatchParameterBuffer` instance compatible with this protocol version.
      Returns:
        batch parameter buffer
      Throws:
        `java.sql.SQLException` - if this statement is closed, or a database access error occurs, or when the parameter buffer could not be created for other reasons
        `java.sql.SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
      See Also:
        `FbStatement.supportBatchUpdates()`

    - #### deferredBatchCreate

          public void deferredBatchCreate​(FbBatchConfig batchConfig,
                                          DeferredResponse<java.lang.Void> onResponse)
                                   throws java.sql.SQLException

      Description copied from interface: `FbStatement`
      Sends batch create with deferred response processing.

      Implementations that do not supported deferred or async response processing should call `DeferredResponse.onResponse(Object)` and - optionally - `DeferredResponse.onException(Exception)` synchronously. If the response is deferred, but the implementation is not capable of connecting the response back, it should call `onResponse` before method return, and any exceptions generated by deferred processing should then be thrown from the method that causes the response to be received.

      Parameters:
        `batchConfig` - batch configuration
        `onResponse` - deferred action to call when response is received
      Throws:
        `java.sql.SQLException` - for database access errors (I/O errors)
        `java.sql.SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
      See Also:
        `FbStatement.supportBatchUpdates()`

    - #### sendBatchCreate

          protected void sendBatchCreate​(FbBatchConfig batchConfig)
                                  throws java.sql.SQLException,
                                         java.io.IOException

      Throws:
        `java.sql.SQLException`
        `java.io.IOException`

    - #### deferredBatchSend

          public void deferredBatchSend​(java.util.Collection<RowValue> rowValues,
                                        DeferredResponse<java.lang.Void> onResponse)
                                 throws java.sql.SQLException

      Description copied from interface: `FbStatement`
      Sends batch data with deferred response processing.

      For implementations that do not supported deferred or async response processing, see `FbStatement.deferredBatchCreate(FbBatchConfig, DeferredResponse)` for expected behaviour.

      Parameters:
        `rowValues` - collection of row values
        `onResponse` - deferred action to call when response is received
      Throws:
        `java.sql.SQLException` - for database access errors (I/O errors)
        `java.sql.SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
      See Also:
        `FbStatement.supportBatchUpdates()`

    - #### sendBatchMsg

          protected void sendBatchMsg​(java.util.Collection<RowValue> rowValues)
                               throws java.sql.SQLException,
                                      java.io.IOException

      Throws:
        `java.sql.SQLException`
        `java.io.IOException`

    - #### batchExecute

          public BatchCompletion batchExecute()
                                       throws java.sql.SQLException

      Description copied from interface: `FbStatement`
      Execute the batch on the server.
      Returns:
        batch completion response
      Throws:
        `java.sql.SQLException` - for database access errors
        `java.sql.SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
      See Also:
        `FbStatement.supportBatchUpdates()`

    - #### batchCancel

          public void batchCancel()
                           throws java.sql.SQLException

      Description copied from interface: `FbStatement`
      Cancels the server side batch (that is, clear any rows batched on the server).
      Throws:
        `java.sql.SQLException` - for database access errors
        `java.sql.SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
      See Also:
        `FbStatement.supportBatchUpdates()`

    - #### deferredBatchRelease

          public void deferredBatchRelease​(DeferredResponse<java.lang.Void> onResponse)
                                    throws java.sql.SQLException

      Description copied from interface: `FbStatement`
      Closes (releases) the batch on the server with deferred response processing.

      For implementations that do not supported deferred or async response processing, see `FbStatement.deferredBatchCreate(FbBatchConfig, DeferredResponse)` for expected behaviour.

      Parameters:
        `onResponse` - deferred action to call when response is received
      Throws:
        `java.sql.SQLException` - for database access errors
        `java.sql.SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
      See Also:
        `FbStatement.supportBatchUpdates()`