Handling SQL Errors
Go Up to Handling Errors
Procedures can also handle error numbers returned in SQLCODE
. After each SQL statement executes, SQLCODE
contains a status code indicating the success or failure of the statement. SQLCODE
can also contain a warning status, such as when there are no more rows to retrieve in a FOR SELECT
loop.
For example, if a procedure attempts to insert a duplicate value into a column defined as a PRIMARY KEY
, InterBase returns SQLCODE
-803. This error can be handled in a procedure with the following statement:
WHEN SQLCODE -803
DO
BEGIN
. . .
The following procedure includes a WHEN
statement to handle SQLCODE
-803 (attempt to insert a duplicate value in a UNIQUE
key column). If the first column in TABLE1
is a UNIQUE
key, and the value of parameter A
is the same as one already in the table, then SQLCODE
-803 is generated, and the WHEN
statement sets an error message returned by the procedure.
CREATE PROCEDURE NUMBERPROC (A INTEGER, B INTEGER)
RETURNS (E CHAR(60)) AS
BEGIN
BEGIN
INSERT INTO TABLE1 VALUES (:A, :B);
WHEN SQLCODE -803 DO
E = 'Error Attempting to Insert in TABLE1 - Duplicate Value.';
END;
END;!
For more information about SQLCODE
, see the Language Reference.