Firebird/InterBase transaction flags
The following constants can be passed to ibase_trans to specify transaction behaviour. Firebird/InterBase transaction flagsConstantDescriptionIBASE_DEFAULT The default transaction settings are to be used. This default is determined by the client library, which defines it as IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT in most cases.IBASE_READStarts a read-only transaction.IBASE_WRITEStarts a read-write transaction.IBASE_CONSISTENCYStarts a transaction with the isolation level set to 'consistency', which means the transaction cannot read from tables that are being modified by other concurrent transactions.IBASE_CONCURRENCYStarts a transaction with the isolation level set to 'concurrency' (or 'snapshot'), which means the transaction has access to all tables, but cannot see changes that were committed by other transactions after the transaction was started.IBASE_COMMITTEDStarts a transaction with the isolation level set to 'read committed'. This flag should be combined with either IBASE_REC_VERSION or IBASE_REC_NO_VERSION. This isolation level allows access to changes that were committed after the transaction was started. If IBASE_REC_NO_VERSION was specified, only the latest version of a row can be read. If IBASE_REC_VERSION was specified, a row can even be read when a modification to it is pending in a concurrent transaction. IBASE_WAITIndicated that a transaction should wait and retry when a conflict occurs.IBASE_NOWAITIndicated that a transaction should fail immediately when a conflict occurs.
Predefined Constants Constants
The following constants can be passed to ibase_trans() to specify transaction behaviour.
| Constant | Description |
|---|---|
| IBASE_DEFAULT | The default transaction settings are to be used. This default is determined by the client library, which defines it as IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT in most cases. |
| IBASE_READ | Starts a read-only transaction. |
| IBASE_WRITE | Starts a read-write transaction. |
| IBASE_CONSISTENCY | Starts a transaction with the isolation level set to 'consistency', which means the transaction cannot read from tables that are being modified by other concurrent transactions. |
| IBASE_CONCURRENCY | Starts a transaction with the isolation level set to 'concurrency' (or 'snapshot'), which means the transaction has access to all tables, but cannot see changes that were committed by other transactions after the transaction was started. |
| IBASE_COMMITTED | Starts a transaction with the isolation level set to 'read committed'. This flag should be combined with either IBASE_REC_VERSION or IBASE_REC_NO_VERSION. This isolation level allows access to changes that were committed after the transaction was started. If IBASE_REC_NO_VERSION was specified, only the latest version of a row can be read. If IBASE_REC_VERSION was specified, a row can even be read when a modification to it is pending in a concurrent transaction. |
| IBASE_WAIT | Indicated that a transaction should wait and retry when a conflict occurs. |
| IBASE_NOWAIT | Indicated that a transaction should fail immediately when a conflict occurs. |
The following constants can be passed to ibase_fetch_row(), ibase_fetch_assoc() or ibase_fetch_object() to specify fetch behaviour.
| Constant | Description |
|---|---|
| IBASE_FETCH_BLOBS | Also available as IBASE_TEXTfor backward compatibility. Causes BLOB contents to be fetched inline, instead of being fetched as BLOB identifiers. |
| IBASE_FETCH_ARRAYS | Causes arrays to be fetched inline. Otherwise, array identifiers are returned. Array identifiers can only be used as arguments to INSERT operations, as no functions to handle array identifiers are currently available. |
| IBASE_UNIXTIME | Causes date and time fields not to be returned as strings, but as UNIX timestamps (the number of seconds since the epoch, which is 1-Jan-1970 0:00 UTC). Might be problematic if used with dates before 1970 on some systems. |
The following constants are used to pass requests and options to the service API functions (ibase_server_info(), ibase_db_info(), ibase_backup(), ibase_restore() and ibase_maintain_db()). Please refer to the Firebird/InterBase manuals for the meaning of these options.
IBASE_BKP_IGNORE_CHECKSUMSOptions to
ibase_backup()IBASE_BKP_IGNORE_LIMBOOptions to
ibase_backup()IBASE_BKP_METADATA_ONLYOptions to
ibase_backup()IBASE_BKP_NO_GARBAGE_COLLECTOptions to
ibase_backup()IBASE_BKP_OLD_DESCRIPTIONSOptions to
ibase_backup()IBASE_BKP_NON_TRANSPORTABLEOptions to
ibase_backup()IBASE_BKP_CONVERTOptions to
ibase_backup()IBASE_RES_DEACTIVATE_IDXOptions to
ibase_restore()IBASE_RES_NO_SHADOWOptions to
ibase_restore()IBASE_RES_NO_VALIDITYOptions to
ibase_restore()IBASE_RES_ONE_AT_A_TIMEOptions to
ibase_restore()IBASE_RES_REPLACEIBASE_RES_CREATEOptions to
ibase_restore()IBASE_RES_USE_ALL_SPACEOptions to
ibase_restore()IBASE_PRP_PAGE_BUFFERSIBASE_PRP_SWEEP_INTERVALIBASE_PRP_SHUTDOWN_DBIBASE_PRP_DENY_NEW_TRANSACTIONSIBASE_PRP_DENY_NEW_ATTACHMENTSIBASE_PRP_RESERVE_SPACEIBASE_PRP_RES_USE_FULLIBASE_PRP_RESIBASE_PRP_WRITE_MODEIBASE_PRP_WM_ASYNCIBASE_PRP_WM_SYNCIBASE_PRP_ACCESS_MODEIBASE_PRP_AM_READONLYIBASE_PRP_AM_READWRITEIBASE_PRP_SET_SQL_DIALECTIBASE_PRP_ACTIVATEIBASE_PRP_DB_ONLINEIBASE_RPR_CHECK_DBIBASE_RPR_IGNORE_CHECKSUMIBASE_RPR_KILL_SHADOWSIBASE_RPR_MEND_DBIBASE_RPR_VALIDATE_DBIBASE_RPR_FULLIBASE_RPR_SWEEP_DBOptions to
ibase_maintain_db()IBASE_STS_DATA_PAGESIBASE_STS_DB_LOGIBASE_STS_HDR_PAGESIBASE_STS_IDX_PAGESIBASE_STS_SYS_RELATIONSOptions to
ibase_db_info()IBASE_SVC_SERVER_VERSIONOptions to
ibase_server_info()IBASE_SVC_IMPLEMENTATIONOptions to
ibase_server_info()IBASE_SVC_GET_ENVOptions to
ibase_server_info()IBASE_SVC_GET_ENV_LOCKIBASE_SVC_GET_ENV_MSGIBASE_SVC_USER_DBPATHIBASE_SVC_SVR_DB_INFOIBASE_SVC_GET_USERSOptions to
ibase_server_info()