SQL Programming Manual for TAL
Examples of Dynamic NonStop SQL Programs
HP NonStop SQL Programming Manual for TAL—527887-001
C-13
Detailed Dynamic SQL Program
Page 2 [3] $SYSTEM.#3193 1991-10-15
13:42:28
28. 000327 0 2 INT sql^statement^type;
29. 000327 0 2 END; -- prepare
30. 000327 0 1 END; -- sqlsa
Source file: [1] $VOL1.S04.TALDYN 1991-10-15 13:33:55
17. 001172 0 0
18. 001172 0 0 !------------------------------------------------------------
19. 001172 0 0 ! Declare SQLDA for input parameters and output variables.
20. 001172 0 0 !
21. 001172 0 0 !------------------------------------------------------------
22. 001172 0 0
23. 001172 0 0 EXEC SQL INCLUDE SQLDA (sqlda^type, 1);
23. 001172 0 0 EXEC SQL INCLUDE SQLDA (sqlda^type, 1);
Source file: [4] $SYSTEM.#3194 1991-10-15 13:42:41
1. 001172 0 0 LITERAL SQLDA^EYE^CATCHER = "D1";
2. 001172 0 0 STRUCT sqlda^type (*) ;
3. 001172 0 0 BEGIN
4. 001172 0 1 STRING eye^catcher[0:1];
5. 001172 0 1 INT num^entries;
6. 001172 0 1 struct sqlvar[0:0];
7. 001172 0 1 BEGIN
8. 001172 0 2 INT data^type;
9. 001172 0 2 INT data^len;
10. 001172 0 2 ! fields for NUMBERS:
11. 001172 0 2 ! scale = data^len.<0:7>
12. 001172 0 2 ! length = data^len.<8:15>
13. 001172 0 2 ! fields for DATETIME or INTERVAL:
14. 001172 0 2 ! qualifier = data^len.<0:7>
15. 001172 0 2 ! length = data^len.<8:15>
16. 001172 0 2 INT precision;
17. 001172 0 2 ! fields for DATETIME or INTERVAL:
18. 001172 0 2 ! leading field precision = precision.<0:7>
19. 001172 0 2 ! fraction precision = precision.<8:15>
20. 001172 0 2 INT null^info;
21. 001172 0 2 INT(32) var^ptr;
22. 001172 0 2 INT(32) ind^ptr;
23. 001172 0 2 FIXED reserved;
24. 001172 0 2 END;
25. 001172 0 1 END;
Source file: [1] $VOL1.S04.TALDYN 1991-10-15 13:33:55
24. 001172 0 0
25. 001172 0 0 EXEC SQL BEGIN DECLARE SECTION;
26. 001172 0 0
27. 001172 0 0 INT .EXT sda^i (sqlda^type); ! input SQLDA pointer
28. 001172 0 0 INT .EXT sda^o (sqlda^type); ! output SQLDA pointer
29. 001172 0 0
30. 001172 0 0 STRUCT names^template(*); !template for names buffer
31. 001172 0 0 begin
32. 001172 0 1 string val[0:10000];
33. 001172 0 1 end;
34. 001172 0 0
35. 001172 0 0 INT .EXT cname^i(names^template); ! input names buffer
pointer
36. 001172 0 0 INT .EXT cname^o(names^template); ! output names buffer
pointer
37. 001172 0 0
38. 001172 0 0 EXEC SQL END DECLARE SECTION;
39. 001172 0 0
40. 001172 0 0 INT sqlcode; ! Required by SQL; stores SQL error codes.
41. 001172 0 0