SQL Programming Manual for TAL

Error and Status Processing
HP NonStop SQL Programming Manual for TAL527887-001
6-8
Using the WHENEVER Directive
Figure 6-3. Using WHENEVER Directives
! Include the SQLCA for detailed error information:
EXEC SQL INCLUDE SQLCA;
! Include SQLCODE for simple error checking:
INT SQLCODE;
PROC handle^errors; FORWARD;
PROC handle^warnings; FORWARD;
! Forward declare error handling code:
! Variable declarations:
EXEC SQL BEGIN DECLARE SECTION;
STRUCT .in^parts^rec;
BEGIN
INT in^partnum;
FIXED(2) in^price;
STRING in^partdesc[0:17];
END;
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR CALL :handle^errors;
EXEC SQL WHENEVER SQLWARNING CALL :handle^warnings;
! Specify WHENEVERs globally, for errors and warnings:
[ $OCCURS(in^parts^rec.in^partdesc) * [" "] ] ;
! Blank fill in^partdesc:
PROC DRIVER MAIN;
in^parts^rec.in^partdesc ':='
BEGIN
in^parts^rec.in^partdesc ':=' "V8 DISK OPTION";
in^parts^rec.in^price := 60000.00;
in^parts^rec.in^partnum := 4120;
! Begin the TMF transaction:
EXEC SQL BEGIN WORK;
! Execute an SQL INSERT into the parts table:
EXEC SQL
:in^parts^rec.in^partdesc);
:in^parts^rec.in^price,
VALUES ( :in^parts^rec.in^partnum,
INSERT INTO =parts (partnum, price, partdesc)
! End the TMF transaction:
EXEC SQL COMMIT WORK;
END;
VST0603.vsd