12.9. GDSCODE
Firebird error code of the error in a WHEN … DO
block
Available inPSQL
TypeINTEGER
Syntax
|
GDSCODE
In a
error handling block, the WHEN … DO
GDSCODE
context variable contains the numeric value of the current Firebird error code.
GDSCODE
is non-zero in WHEN … DO
blocks, if the current error has a Firebird error code.
Outside error handlers, GDSCODE
is always 0.
Outside PSQL, it doesn’t exist at all.
After WHEN GDSCODE
, you must use symbolic names like grant_obj_notfound
etc.
But the GDSCODE
context variable is an INTEGER
.
If you want to compare it against a specific error, the numeric value must be used, e.g.
335544551
for grant_obj_notfound
.
Example
|
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