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