Module org.firebirdsql.jaybird
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:
  `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.wire.version11.V11Statement

  `asyncFetchStatus`

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

  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<Void> onResponse)`
  Sends batch create with deferred response processing.
  `void`
  `deferredBatchRelease(DeferredResponse<Void> onResponse)`
  Closes (releases) the batch on the server with deferred response processing.
  `void`
  `deferredBatchSend(Collection<RowValue> rowValues, DeferredResponse<Void> onResponse)`
  Sends batch data with deferred response processing.
  `protected void`
  `sendBatchCreate(FbBatchConfig batchConfig)`
  `protected void`
  `sendBatchMsg(XdrOutputStream xdrOut, RowDescriptor parameterDescriptor, 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

  `getDefaultSqlInfoSize, getMaxSqlInfoSize, readSqlData, writeSqlData, writeSqlData`

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

  `asyncFetchRows, completeAsyncFetch, fetchRows, free, prepare, reset`

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

  `doFreePacket, execute, processAllocateResponse, processExecuteResponse, processExecuteSingletonResponse, processFetchResponse, processFetchResponse, processFreeResponse, processPrepareResponse, readColumnData, sendAllocate, sendFetch, sendFree, sendPrepare, setCursorNameImpl, writeColumnData`

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

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

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

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

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

  `clone, equals, finalize, 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, addWeakStatementListener, 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, setCursorName, setTimeout, setTransaction, supportsCursorInfo, supportsFetchScroll, unprepare, validateParameters, withLock`

- ## Constructor Details

  - ### V16Statement

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

- ## Method Details

  - ### sendExecute

    protected void sendExecute(int operation, RowValue parameters) throws IOException, 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:
      `IOException`
      `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 SQLException
    Description copied from interface: `FbStatement`
    Creates a `BatchParameterBuffer` instance compatible with this protocol version.
    Returns:
      batch parameter buffer
    Throws:
      `SQLException` - if this statement is closed, or a database access error occurs, or when the parameter buffer could not be created for other reasons
      `SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
    See Also:
      - `FbStatement.supportBatchUpdates()`

  - ### deferredBatchCreate

    public void deferredBatchCreate(FbBatchConfig batchConfig, DeferredResponse<Void> onResponse) throws 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:
      `SQLException` - for database access errors (I/O errors)
      `SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
    See Also:
      - `FbStatement.supportBatchUpdates()`

  - ### sendBatchCreate

    protected void sendBatchCreate(FbBatchConfig batchConfig) throws SQLException, IOException
    Throws:
      `SQLException`
      `IOException`

  - ### deferredBatchSend

    public void deferredBatchSend(Collection<RowValue> rowValues, DeferredResponse<Void> onResponse) throws 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:
      `SQLException` - for database access errors (I/O errors)
      `SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
    See Also:
      - `FbStatement.supportBatchUpdates()`

  - ### sendBatchMsg

    protected void sendBatchMsg(XdrOutputStream xdrOut, RowDescriptor parameterDescriptor, Collection<RowValue> rowValues) throws SQLException, IOException
    Throws:
      `SQLException`
      `IOException`

  - ### batchExecute

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

  - ### batchCancel

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

  - ### deferredBatchRelease

    public void deferredBatchRelease(DeferredResponse<Void> onResponse) throws 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:
      `SQLException` - for database access errors
      `SQLFeatureNotSupportedException` - when this statement implementation does not support batch updates
    See Also:
      - `FbStatement.supportBatchUpdates()`