FirebirdSQL logo

CURRENT_TRANSACTION

Verfügbar in

DSQL, PSQL

Typ

BIGINT

Syntax
CURRENT_TRANSACTION

CURRENT_TRANSACTION enthält die eindeutige Kennung der aktuellen Transaktion.

Sein Wert wird von einem Zähler auf der Kopfseite der Datenbank abgeleitet, der bei jeder neuen Transaktion inkrementiert wird.Wenn eine Datenbank wiederhergestellt wird, wird dieser Zähler auf Null zurückgesetzt.

Beispiele
select current_transaction from rdb$database

New.Txn_ID = current_transaction;

CURRENT_USER

Verfügbar in

DSQL, PSQL

Typ

VARCHAR(63)

Syntax
CURRENT_USER

CURRENT_USER ist eine Kontextvariable, die den Namen des aktuell verbundenen Benutzers enthält.Es ist völlig äquivalent zu [fblangref40-contextvars-user-de].

Beispiel
create trigger bi_customers for customers before insert as
begin
    New.added_by  = CURRENT_USER;
    New.purchases = 0;
end

docnext count = 2

DELETING

Verfügbar in

PSQL

Typ

BOOLEAN

Syntax
DELETING

Nur in Triggern verfügbar, DELETING zeigt an, ob der Trigger für eine DELETE-Operation ausgelöst wurde.Vorgesehen für die Verwendung in multi-action triggers-de.

Beispiel
if (deleting) then
begin
  insert into Removed_Cars (id, make, model, removed)
    values (old.id, old.make, old.model, current_timestamp);
end

GDSCODE

Verfügbar in

PSQL

Typ

INTEGER

Syntax
GDSCODE

In einem “WHEN …​ DO”-Fehlerbehandlungsblock enthält die Kontextvariable GDSCODE die numerische Darstellung des aktuellen Firebird-Fehlercodes.Vor Firebird 2.0 wurde GDSCODE nur in WHEN GDSCODE-Handlern gesetzt.Jetzt kann es auch in den Blöcken WHEN ANY, WHEN SQLCODE, WHEN SQLSTATE und WHEN EXCEPTION ungleich Null sein, vorausgesetzt, die den Fehler auslösende Bedingung entspricht einem Firebird-Fehlercode.Außerhalb von Fehlerhandlern ist GDSCODE immer 0.Außerhalb von PSQL existiert es überhaupt nicht.

Note

Nach WHEN GDSCODE müssen Sie symbolische Namen wie grant_obj_notfound usw. verwenden.Aber die Kontextvariable GDSCODE ist ein INTEGER.Wenn Sie es mit einem bestimmten Fehler vergleichen möchten, muss der Zahlenwert verwendet werden, z.335544551 für grant_obj_notfound.

Beispiel
when gdscode grant_obj_notfound, gdscode grant_fld_notfound,
   gdscode grant_nopriv, gdscode grant_nopriv_on_base
do
begin
  execute procedure log_grant_error(gdscode);
  exit;
end