Module org.firebirdsql.jaybird
Package org.firebirdsql.gds.impl

# Class GDSHelper

java.lang.Object
org.firebirdsql.gds.impl.GDSHelper

public final class GDSHelper extends Object
Helper class for all GDS-related operations.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GDSHelper(FbDatabase database)`
  Create instance of this class.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `FbStatement`
  `allocateStatement()`
  Retrieve a newly allocated statement handle with the current connection.
  `void`
  `cancelOperation()`
  Cancel the currently running operation.
  `int`
  `compareToVersion(int major)`
  Compares the version of this database to the specified major version.
  `int`
  `compareToVersion(int major, int minor)`
  Compares the version of this database to the specified major and minor version.
  `FbBlob`
  `createBlob(BlobConfig blobConfig)`
  Create a new blob within the current transaction.
  `void`
  `detachDatabase()`
  `void`
  `executeImmediate(String statement)`
  Execute a SQL statement directly with the current connection.
  `IConnectionProperties`
  `getConnectionProperties()`
  `FbDatabase`
  `getCurrentDatabase()`
  `FbTransaction`
  `getCurrentTransaction()`
  `int`
  `getDatabaseProductMajorVersion()`
  Get the major version number of the database that we're connected to.
  `int`
  `getDatabaseProductMinorVersion()`
  Get the minor version number of the database that we're connected to.
  `String`
  `getDatabaseProductName()`
  Get the name of the database product that we're connected to.
  `String`
  `getDatabaseProductVersion()`
  Get the version of the database that we're connected to.
  `int`
  `getDialect()`
  `TimeZone`
  `getSessionTimeZone()`
  Get the session time zone as configured in the connection property.
  `String`
  `getUserName()`
  Get the database login name of the user that we're connected as.
  `boolean`
  `inTransaction()`
  Retrieve whether this connection is currently involved in a transaction
  `FbBlob`
  `openBlob(long blobId, BlobConfig blobConfig)`
  Open a handle to a new blob within the current transaction with the given id.
  `void`
  `setCurrentTransaction(FbTransaction transaction)`
  `FbTransaction`
  `startTransaction(TransactionParameterBuffer tpb)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Will be removed in Jaybird 7, use `FbDatabase.startTransaction(TransactionParameterBuffer)` and `setCurrentTransaction(FbTransaction)`
  `LockCloseable`
  `withLock()`

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

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

- ## Constructor Details

  - ### GDSHelper

    public GDSHelper(FbDatabase database)
    Create instance of this class.

- ## Method Details

  - ### getCurrentTransaction

    public FbTransaction getCurrentTransaction()

  - ### setCurrentTransaction

    public void setCurrentTransaction(FbTransaction transaction)

  - ### getCurrentDatabase

    public FbDatabase getCurrentDatabase()

  - ### getConnectionProperties

    public IConnectionProperties getConnectionProperties()

  - ### getDialect

    public int getDialect()
    Returns:
      Connection dialect

  - ### allocateStatement

    public FbStatement allocateStatement() throws SQLException
    Retrieve a newly allocated statement handle with the current connection.
    Returns:
      The new statement handle
    Throws:
      `SQLException` - if a database access error occurs

  - ### inTransaction

    public boolean inTransaction()
    Retrieve whether this connection is currently involved in a transaction
    Returns:
      `true` if this connection is currently in a transaction, `false` otherwise.

  - ### executeImmediate

    public void executeImmediate(String statement) throws SQLException
    Execute a SQL statement directly with the current connection.
    Parameters:
      `statement` - The SQL statement to execute
    Throws:
      `SQLException` - if a Firebird-specific error occurs

  - ### openBlob

    public FbBlob openBlob(long blobId, BlobConfig blobConfig) throws SQLException
    Open a handle to a new blob within the current transaction with the given id.
    Parameters:
      `blobId` - the identifier to be given to the blob
      `blobConfig` - blob configuration
    Throws:
      `SQLException` - if a Firebird-specific database error occurs

  - ### createBlob

    public FbBlob createBlob(BlobConfig blobConfig) throws SQLException
    Create a new blob within the current transaction.
    Parameters:
      `blobConfig` - blob configuration
    Throws:
      `SQLException` - if a Firebird-specific database error occurs

  - ### startTransaction

    @Deprecated(forRemoval=true, since="6") public FbTransaction startTransaction(TransactionParameterBuffer tpb) throws SQLException
    Deprecated, for removal: This API element is subject to removal in a future version.
    Will be removed in Jaybird 7, use `FbDatabase.startTransaction(TransactionParameterBuffer)` and `setCurrentTransaction(FbTransaction)`
    Throws:
      `SQLException`

  - ### detachDatabase

    public void detachDatabase() throws SQLException
    Throws:
      `SQLException`

  - ### cancelOperation

    public void cancelOperation() throws SQLException
    Cancel the currently running operation.
    Throws:
      `SQLException`

  - ### getDatabaseProductName

    public String getDatabaseProductName()
    Get the name of the database product that we're connected to.
    Returns:
      The database product name (i.e. Firebird or Interbase)

  - ### getDatabaseProductVersion

    public String getDatabaseProductVersion()
    Get the version of the database that we're connected to.
    Returns:
      the database product version

  - ### getDatabaseProductMajorVersion

    public int getDatabaseProductMajorVersion()
    Get the major version number of the database that we're connected to.
    Returns:
      The major version number of the database

  - ### getDatabaseProductMinorVersion

    public int getDatabaseProductMinorVersion()
    Get the minor version number of the database that we're connected to.
    Returns:
      The minor version number of the database

  - ### compareToVersion

    public int compareToVersion(int major, int minor)
    Compares the version of this database to the specified major and minor version.

    This method follows the semantics of `Comparable`: returns a negative value if the version of this database connection is smaller than the supplied arguments, 0 if they are equal or positive if its bigger.

    Parameters:
      `major` - Major version to compare
      `minor` - Minor version to compare
    Returns:
      a negative integer, zero, or a positive integer as this database version is less than, equal to, or greater than the specified major and minor version
    See Also:
      - `compareToVersion(int)`

  - ### compareToVersion

    public int compareToVersion(int major)
    Compares the version of this database to the specified major version.

    This method follows the semantics of `Comparable`: returns a negative value if the version of this database connection is smaller than the supplied arguments, 0 if they are equal or positive if its bigger.

    Parameters:
      `major` - Major version to compare
    Returns:
      a negative integer, zero, or a positive integer as this database version is less than, equal to, or greater than the specified major version
    See Also:
      - `compareToVersion(int, int)`

  - ### getUserName

    public String getUserName()
    Get the database login name of the user that we're connected as.
    Returns:
      The username of the current database user

  - ### getSessionTimeZone

    public TimeZone getSessionTimeZone()
    Get the session time zone as configured in the connection property.

    NOTE: This is not necessarily the actual server time zone.

    Returns:
      Value of connection property `sessionTimeZone`

  - ### withLock

    public LockCloseable withLock()
    See Also:
      - `FbAttachment.withLock()`