SQL Programming Manual for TAL
Examples of Dynamic NonStop SQL Programs
HP NonStop SQL Programming Manual for TAL—527887-001
C-4
Dynamic SQL Program
Page 2 [4] $SYSTEM.#3190 1991-10-15
13:41:54
6. 001473 0 1 BEGIN
7. 001473 0 2 INT num^tables;
8. 001473 0 2 STRUCT stats[0:15];
9. 001473 0 2 BEGIN
10. 001473 0 3 STRING table^name[0:23];
11. 001473 0 3 INT(32) records^accessed;
12. 001473 0 3 INT(32) records^used;
13. 001473 0 3 INT(32) disc^reads;
14. 001473 0 3 INT(32) messages;
15. 001473 0 3 INT(32) message^bytes;
16. 001473 0 3 INT waits;
17. 001473 0 3 INT escalations;
18. 001473 0 3 STRING sqlsa^reserved[0:3];
19. 001473 0 3 END; -- stats
20. 001473 0 2 END; -- dml
21. 001473 0 1 STRUCT prepare = dml;
22. 001473 0 1 BEGIN
23. 001473 0 2 INT input^num;
24. 001473 0 2 INT input^names^len;
25. 001473 0 2 INT output^num;
26. 001473 0 2 INT output^names^len;
27. 001473 0 2 INT name^map^len;
28. 001473 0 2 INT sql^statement^type;
29. 001473 0 2 END; -- prepare
30. 001473 0 1 END; -- sqlsa
Source file: [1] $VOL1.S04.TALDYNEZ 1991-10-15 13:36:01
41. 002336 0 0
42. 002336 0 0 -- The program will have only one output column, SALARY. Since
43. 002336 0 0 -- we will be generating its average, we do not need to print
44. 002336 0 0 -- the column name; we can therefore omit declaring a names
45. 002336 0 0 -- buffer. We do not plan to allocate memory dynamically, so
we
46. 002336 0 0 -- use the INCLUDE SQLDA statement, specifying one output
47. 002336 0 0 -- variable for our output SQLDA.
48. 002336 0 0
49. 002336 0 0 EXEC SQL BEGIN DECLARE SECTION;
50. 002336 0 0
51. 002336 0 0 EXEC SQL INCLUDE SQLDA(osqlda^type ,1);
51. 002336 0 0 EXEC SQL INCLUDE SQLDA(osqlda^type ,1);
Source file: [5] $SYSTEM.#3191 1991-10-15 13:42:08
1. 002336 0 0 LITERAL SQLDA^EYE^CATCHER = "D1";
2. 002336 0 0 STRUCT osqlda^type (*) ;
3. 002336 0 0 BEGIN
4. 002336 0 1 STRING eye^catcher[0:1];
5. 002336 0 1 INT num^entries;
6. 002336 0 1 struct sqlvar[0:0];
7. 002336 0 1 BEGIN
8. 002336 0 2 INT data^type;
9. 002336 0 2 INT data^len;
10. 002336 0 2 ! fields for NUMBERS:
11. 002336 0 2 ! scale = data^len.<0:7>
12. 002336 0 2 ! length = data^len.<8:15>
13. 002336 0 2 ! fields for DATETIME or INTERVAL:
14. 002336 0 2 ! qualifier = data^len.<0:7>
15. 002336 0 2 ! length = data^len.<8:15>
16. 002336 0 2 INT precision;
17. 002336 0 2 ! fields for DATETIME or INTERVAL:
18. 002336 0 2 ! leading field precision = precision.<0:7>