SQL Programming Manual for Pascal
Examples of Static NonStop SQL Programs
HP NonStop SQL Programming Manual for Pascal—528614-001
B-11
Date-Time Program
 75 0 EXEC SQL
 76 0  DECLARE NEW_DATES_CURSOR CURSOR FOR
 77 0  SELECT PROJECT_NAME,
 78 0   START_DATE + WAIT_TIME,
 79 0   END_DATE + WAIT_TIME,
 80 0   WAIT_TIME
 81 0  FROM =PROJECTS;
 82 0
 83 0 PROCEDURE NOT_FOUND;
 84 1
 85 1 { Temporary variable to save the value of SQLCODE for later }
 86 1 { checking. ROLLBACK WORK sets SQLCODE to 0. }
 87 1 VAR TEMP_SQLCODE : INT16;
 88 1
 89 1 BEGIN
 90 2  TEMP_SQLCODE := SQLCODE;
 91 2
 92 2  WRITELN('RECORD NOT FOUND.');
 93 2  EXEC SQL ROLLBACK WORK;
 94 2  WRITELN;
 95 2  WRITELN('TRANSACTION ABORTED.');
 96 2
 97 2  SQLCODE := TEMP_SQLCODE;
 98 2 END;
 99 0
 100 0 PROCEDURE SQLERROR;
 101 1
 102 1 { Temporary variable to save the value of SQLCODE for later }
 103 1 { checking. ROLLBACK WORK sets SQLCODE to 0. }
 104 1 VAR TEMP_SQLCODE : INT16;
 105 1
 106 1 BEGIN
 107 2  TEMP_SQLCODE := SQLCODE;
 108 2
 109 2 { Turn off WHENEVER checking to avoid infinite loop: }
 110 2  EXEC SQL WHENEVER SQLERROR CONTINUE;
 111 2
 112 2  SQLCADISPLAY( XADDR(SQLCA) );
 113 2  EXEC SQL ROLLBACK WORK;
 114 2  WRITELN;
 115 2  WRITELN('TRANSACTION ABORTED');
 116 2
 117 2 { re-enable WHENEVER checking: }
 118 2  EXEC SQL WHENEVER SQLERROR CALL :SQLERROR;
 119 2
 120 2  SQLCODE := TEMP_SQLCODE;
 121 2 END;
 122 0
 123 0 PROCEDURE INSERT_PROJECT;
 124 1 BEGIN
 125 2
 126 2  EXEC SQL BEGIN WORK;
 127 2
 128 2  WRITELN ('Enter a project name of up to 10 characters:');
 129 2  READLN (USER_PROJECTS_REC.PROJECT_NAME);
 130 2  WRITELN ('Enter a start date-time in the format YYYY-MM
   -DD:HH:MM');
 131 2  READLN (USER_PROJECTS_REC.START_DATE);
 132 2  WRITELN ('Enter an end date-time in the format YYYY-MM
   -DD:HH:MM');
 133 2  READLN (USER_PROJECTS_REC.END_DATE);
 134 2  WRITELN ('Wait time for the new project is set at 0.');
 135 2  USER_PROJECTS_REC.WAIT_TIME := '00';
 136 2










