SQL Programming Manual for Pascal
Examples of Static NonStop SQL Programs
HP NonStop SQL Programming Manual for Pascal—528614-001
B-10
Date-Time Program
31 0 { Invoke the PROJECTS table into 3 record areas for: }
32 0 { --storing the current dates }
33 0 { --storing the original dates }
34 0 { --storing the values entered by the user as search criteria }
35 0 { The original dates will be used in the report function. }
36 0 { }
37 0 { The CREATE TABLE statement for the PROJECTS table is: }
38 0 { }
39 0 { CREATE TABLE PROJECTS }
40 0 { ( PROJECT_NAME CHAR(10) NO DEFAULT NOT NULL, }
41 0 { START_DATE DATETIME YEAR TO MINUTE NO DEFAULT NOT NULL, }
42 0 { END_DATE DATETIME YEAR TO MINUTE NO DEFAULT NOT NULL, }
43 0 { WAIT_TIME INTERVAL DAY(2) NO DEFAULT NOT NULL) }
44 0 { CATALOG $VOL.TESTCAT }
45 0 { }
46 0 { }
47 0 { Note that INVOKE generates an extra byte for INTERVAL values,}
48 0 { to accommodate a possible negative sign. }
49 0
50 0 EXEC SQL BEGIN DECLARE SECTION;
51 0 EXEC SQL INVOKE =PROJECTS AS PROJECTS_TYPE;
1 0 {* Record Definition for table \SYS.$VOL.TESTS.PROJECTS *}
2 0 {* Definition current at 14:41:54 - 08/23/91 *}
3 0 type
4 0 projects_type = record
5 1 project_name : fstring(10);
6 1 start_date : fstring(16);
7 1 end_date : fstring(16);
8 1 wait_time : fstring(3);
9 1 END;
10 1
52 0
53 0 VAR
54 0 USER_PROJECTS_REC : PROJECTS_TYPE;
55 0 OLD_PROJECTS_REC : PROJECTS_TYPE;
56 0 NEW_PROJECTS_REC : PROJECTS_TYPE;
57 0
58 0 EXEC SQL END DECLARE SECTION;
59 0
60 0 SQLCODE : INTEGER; { for error checking }
61 0
62 0 SEL_INDEX: INTEGER; { for user's choice from menu }
63 0
64 0 EXEC SQL INCLUDE SQLCA; { for SQLCADISPLAY }
1 0 TYPE
2 0 SQLCA_TYPE = RECORD
3 1 filler : ARRAY [1..430] OF BYTE;
4 1 END;
5 0
6 0 VAR
7 0 sqlca : SQLCA_TYPE;
65 0
66 0 { Declare cursors for report function : }
67 0
68 0 EXEC SQL
69 0 DECLARE OLD_DATES_CURSOR CURSOR FOR
70 0 SELECT PROJECT_NAME,
71 0 START_DATE,
72 0 END_DATE
73 0 FROM =PROJECTS;
74 0