Example of RDB$ERROR
BEGIN
...
WHEN ANY DO
EXECUTE PROCEDURE P_LOG_EXCEPTION(RDB$ERROR(MESSAGE));
END
Functions for Sequences (Generators)
BEGIN
...
WHEN ANY DO
EXECUTE PROCEDURE P_LOG_EXCEPTION(RDB$ERROR(MESSAGE));
END
RDB$GET_TRANSACTION_CN()
Returns the commit number (“CN”) of a transaction
BIGINT
RDB$GET_TRANSACTION_CN (transaction_id)
Parameter | Description |
---|---|
transaction_id |
Transaction id |
If the return value is greater than 1, it is the actual CN of the transaction if it was committed after the database was started.
The function can also return one of the following results, indicating the commit status of the transaction:
-2
|
Transaction is dead (rolled back) |
-1
|
Transaction is in limbo |
0
|
Transaction is still active |
1
|
Transaction committed before the database started or less than the Oldest Interesting Transaction for the database |
NULL
|
Transaction number supplied is NULL or greater than Next Transaction for the database |
Note
|
For more information about CN, consult theFirebird 4.0 Release Notes. |
RDB$GET_TRANSACTION_CN
Examplesselect rdb$get_transaction_cn(current_transaction) from rdb$database;
select rdb$get_transaction_cn(123) from rdb$database;
RDB$ROLE_IN_USE()
Checks if a role is active for the current connection
BOOLEAN
RDB$ROLE_IN_USE (role_name)
Parameter | Description |
---|---|
role_name |
String expression for the role to check.Case-sensitive, must match the role name as stored in |
RDB$ROLE_IN_USE
returns TRUE
if the specified role is active for the current connection, and FALSE
otherwise.Contrary to CURRENT_ROLE
— which only returns the explicitly specified role — this function can be used to check for roles that are active by default, or cumulative roles activated by an explicitly specified role.