home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / PRECOM.ZIP / SQLPREP.DEF < prev    next >
Text File  |  1992-09-24  |  21KB  |  558 lines

  1. DEFINITION MODULE SQLPREP;
  2.  
  3. (*# call(o_a_size => off,
  4.          o_a_copy=>off,
  5.          result_optional=>on,
  6.          reg_saved => (si, di, ds, st1, st2),
  7.          reg_param => (),
  8.          seg_name => none,
  9.          near_call => off,
  10.          ds_eq_ss => off) *)
  11. (*# name (prefix => none) *)
  12. (*# module(implementation=>off, init_code => off) *)
  13. (*# data(near_ptr => off,var_enum_size=>off) *)
  14. (*# check(index=>off,range=>off,overflow=>off,nil_ptr=>off) *)
  15.  
  16. (****************************************************************************
  17.  
  18.    Module Name      = SQLAPREP.H                         12/10/91
  19.  
  20.    Descriptive Name = External Include file for Precompiler Services
  21.  
  22.    Copyright = nnnnnnnn (C) Copyright IBM Corp. 1988, 1989, 1990
  23.            Licensed Material - Program Property of IBM
  24.            Refer to Copyright Instructions Form Number G120-3083
  25.  
  26.    Function = Include File defining
  27.         Global equates and structures
  28.         Precompiler and Runtime Command Interfaces
  29.  
  30.    Operating System = OS/2 Extended Edition
  31.  
  32. ****************************************************************************)
  33.  
  34. FROM SQLCA IMPORT sqlca;
  35. FROM SQLDA IMPORT sqlda,sqldaPtr;
  36. IMPORT SQL;
  37. IMPORT SQLCodes;
  38.  
  39. (*
  40. ** Macro used to calculate size of a precompiler option array, an input
  41. ** parameter of SQLAINIT.
  42. *)
  43.  
  44. (*  #define SQLA_NUM_OPTIONS(n) (sizeof(struct sqla_options_header) + \
  45.                  (n)*sizeof(struct sqla_option)      *)
  46. (*
  47. ** Values used for option[n].type, an input parameter of SQLAINIT.
  48. *)
  49.  
  50.  
  51. CONST
  52.  
  53.  SQLA_FORMAT        = SQL.SQL_FRMT_OPT;  (* Option: date/time format       *)
  54.  SQLA_ACCESS_PLAN   = 2;           (* Option: access plan creation *)
  55.  SQLA_BIND_FILE        = 3;           (* Option: bind file creation   *)
  56.  SQLA_ISOLATION        = SQL.SQL_ISO_OPT;   (* Option: isolation level       *)
  57.  SQLA_BLOCK            = SQL.SQL_BLOCK_OPT; (* Option: record blocking       *)
  58.  SQLA_STDS_LEVEL    =  7;           (* Option: standards compliance *)
  59.  
  60. (*
  61. ** Values used for option[n].val when option[n].type is SQLA_FORMAT in
  62. ** the Precompiler Option Array.
  63. *)
  64.  
  65.  
  66.  SQLA_POA_DEF     =    0; (* Default date/time format *)
  67.  SQLA_POA_USA     =    1; (* USA date/time format *)
  68.  SQLA_POA_EUR     =    2; (* European date/time format *)
  69.  SQLA_POA_ISO     =    3; (* International date/time format *)
  70.  SQLA_POA_JIS     =    4; (* Japanese date/time format *)
  71.  SQLA_POA_LOC     =    5; (* Local date/time format *)
  72.  
  73. (*
  74. ** Values used for option[n].val when option[n].type is SQLA_ACCESS_PLAN in
  75. ** the Precompiler Option Array.
  76. *)
  77.  
  78.  SQLA_CREATE_PLAN   =  1; (* Create an access plan *)
  79.  SQLA_NO_PLAN        =  0; (* Do not create an access plan *)
  80.  
  81. (*
  82. ** Values used for option[n].val when option[n].type is SQLA_BIND_FILE in
  83. ** the Precompiler Option Array.
  84. *)
  85.  
  86.  SQLA_CREATE_BIND_FILE = 1; (* Create a bind file *)
  87.  SQLA_NO_BIND_FILE     = 0; (* Do not create a bind file *)
  88.  
  89. (*
  90. ** Values used for option[n].val when option[n].type is SQLA_ISOLATION in
  91. ** the Precompiler Option Array.
  92. *)
  93.  
  94.  SQLA_REPEATABLE_READ  = SQL.SQL_REP_READ;    (* RR isolation level *)
  95.  SQLA_CURSOR_STABILITY = SQL.SQL_CURSOR_STAB; (* CS Isolation level *)
  96.  SQLA_UNCOMMITTED_READ = SQL.SQL_UNCOM_READ;  (* UR Isolation level *)
  97.  
  98. (*
  99. ** Values used for option[n].val when option[n].type is SQLA_BLOCK in
  100. ** the Precompiler Option Array.
  101. *)
  102.  
  103.  SQLA_BLOCK_UNAMBIG =  SQL.SQL_BL_UNAMBIG;
  104.  SQLA_BLOCK_ALL        =  SQL.SQL_BL_ALL;
  105.  SQLA_NO_BLOCK        =  SQL.SQL_NO_BL;
  106.  
  107. (*
  108. ** Values used for option[n].val when option[n].type is SQLA_STDS_LEVEL in
  109. ** the Precompiler Option Array.
  110. *)
  111.  
  112.  SQLA_STND_NONE       =  0; (* No compliance required   *)
  113.  SQLA_STND_MIA       =  1; (* Comply with MIA standard *)
  114.  
  115. (*
  116. ** Values used for location, an input parameter of SQLAAHVR.
  117. *)
  118.  
  119.  SQLA_DECLARE_SECT = 0; (* Add host var found in a declare section *)
  120.  SQLA_SQL_STMT       = 1; (* Add host var found in an SQL statement  *)
  121.  
  122. (*
  123. ** Values assigned to task[n].func, an output parameter of SQLACMPL.
  124. *)
  125.  
  126.  SQLA_START            = 0; (* Generate a call to sqlastrt *)
  127.  SQLA_DECLARE        = 1; (* Begin or end parsing hvar declarations *)
  128.  SQLA_INCLUDE        = 2; (* Generate code for an SQLCA or SQLDA *)
  129.  SQLA_ALLOC_INPUT   = 3; (* Allocate an input SQLDA using SQLAALOC *)
  130.  SQLA_ALLOC_OUTPUT  = 4; (* Allocate an output SQLDA using SQLAALOC *)
  131.  SQLA_SETS            = 5; (* Register a host variable using SQLASETS *)
  132.  SQLA_USDA_INPUT    = 6; (* Register an input user-defined SQLDA *)
  133.  SQLA_USDA_OUTPUT   = 7; (* Register an output user-defined SQLDA *)
  134.  SQLA_CALL            = 8; (* Generate a call to SQLACALL *)
  135.  SQLA_DEALLOC        = 9; (* Generate a call to SQLADLOC *)
  136.  SQLA_STOP            = 10; (* Generate a call to SQLASTOP *)
  137.  SQLA_SQLERROR        = 11; (* Generate code for WHENEVER SQLERROR *)
  138.  SQLA_SQLWARNING    = 12; (* Generate code for WHENEVER SQLWARNING *)
  139.  SQLA_NOT_FOUND        = 13; (* Generate code for WHENEVER NOT_FOUND *)
  140.  
  141. (*
  142. ** Values returned in task[n].val when task[n].func is SQLA_DECLARE.
  143. ** This is an output parameter of SQLACMPL.
  144. *)
  145.  
  146.  SQLA_BEGIN       =  0;
  147.  SQLA_END       =  1;
  148.  
  149. (*
  150. ** Values returned in task[n].val when task[n].func is SQLA_INCLUDE.
  151. ** This is an output parameter of SQLACMPL.
  152. *)
  153.  
  154.  SQLA_SQLCA       = 10;
  155.  SQLA_SQLDA       = 11;
  156.  
  157. (*
  158. ** Values returned in task[n].val when task[n].func is SQLA_CALL.
  159. ** This is an output parameter of SQLACMPL.
  160. *)
  161.  
  162.  SQLA_CLOSE          =  20;
  163.  SQLA_COMMIT      =  21;
  164.  SQLA_DESCRIBE      =  22;
  165.  SQLA_EXECIMMD      =  23;
  166.  SQLA_EXECUTE      =  24;
  167.  SQLA_FETCH          =  25;
  168.  SQLA_OPEN          =  26;
  169.  SQLA_PREPARE      =  27;
  170.  SQLA_ROLLBACK      =  28;
  171.  
  172. (*
  173. ** Values assigned to token[n].use, an output parameter of SQLACMPL.
  174. *)
  175.  
  176.  SQLA_INPUT_HVAR      = 0; (* Input host var, no indicator var *)
  177.  SQLA_INPUT_WITH_IND  = 1; (* Input host var followed by indicator var *)
  178.  SQLA_OUTPUT_HVAR     = 2; (* Output host var, no indicator var *)
  179.  SQLA_OUTPUT_WITH_IND = 3; (* Output host var followed by indicator var*)
  180.  SQLA_INDICATOR          = 4; (* Indicator variable *)
  181.  SQLA_USER_SQLDA      = 5; (* SQLDA structure *)
  182.  SQLA_INVALID_USE     = 6; (* Host variable type does not match use *)
  183.  SQLA_INVALID_ID      = 7; (* Host variable token ID is not valid *)
  184.  
  185. (*
  186. ** Values assigned to stmt_type, an output parameter of SQLACMPL.
  187. *)
  188.  
  189.  SQLA_TYPE_BEGIN            = 0;
  190.  SQLA_TYPE_CLOSE            = 10;
  191.  SQLA_TYPE_COMMIT           = 20;
  192.  SQLA_TYPE_DECLARE_SELECT  = 30;
  193.  SQLA_TYPE_DECLARE_SNAME   = 40;
  194.  SQLA_TYPE_DESCRIBE           = 50;
  195.  SQLA_TYPE_END               = 60;
  196.  SQLA_TYPE_EXECUTE           = 70;
  197.  SQLA_TYPE_EXECUTE_IMM       = 80;
  198.  SQLA_TYPE_FETCH            = 90;
  199.  SQLA_TYPE_INCLUDE_SQLCA   = 100;
  200.  SQLA_TYPE_INCLUDE_SQLDA   = 110;
  201.  SQLA_TYPE_OPEN               = 120;
  202.  SQLA_TYPE_PREPARE           = 130;
  203.  SQLA_TYPE_ROLLBACK           = 140;
  204.  SQLA_TYPE_SELECT           = 150;
  205.  SQLA_TYPE_SELECT_INTO       = 160;
  206.  SQLA_TYPE_WHEN_NOT_FOUND  = 170;
  207.  SQLA_TYPE_WHEN_SQLERROR   = 180;
  208.  SQLA_TYPE_WHEN_SQLWARNING = 190;
  209.  SQLA_TYPE_OTHER            = 200;
  210.  
  211. (*
  212. ** Values used for term_option, an input parameter of SQLAFINI.
  213. *)
  214.  
  215.  SQLA_SAVE         = 1; (* Save the access plan and/or bind file *)
  216.  SQLA_DISCARD     = 0; (* Discard the access plan and/or bind file *)
  217.  
  218. (*
  219. ** Miscellaneous Constants
  220. *)
  221.  
  222.  SQL_MAX_FILE_NAME_LENGTH   = 128; (* size of SQLAINIT file name buffer *)
  223.  SQL_CMPL_BUFSIZ             = 128; (* size of SQLACMPL output buffers *)
  224.  SQL_PID_LENGTH                = 40; (* length of precompiler pid *)
  225.  
  226. (*
  227. ** Return codes from Precompiler Services and Runtime Services functions.
  228. *)
  229.  
  230.  SQLA_SQLCA_BAD        = -1; (* sqlca pointer/length invalid *)
  231.  SQLA_CHECK_SQLCA   =  0; (* check sqlca completion status *)
  232.  
  233. (*
  234. ** Values returned in sqlca.sqlcode by Precompiler or Runtime Services
  235. *)
  236.  
  237.  SQLA_RC_OK                       =  SQLCodes.SQL_RC_OK;
  238.  
  239.  SQLA_RC_CHAR_BAD               =  SQLCodes.SQL_RC_E007;
  240.  SQLA_RC_STRING_NOT_TERMINATED =  SQLCodes.SQL_RC_E010;
  241.  SQLA_RC_BFILE_OPEN_ERROR      =  -31;
  242.  SQLA_RC_BFILE_DISK_ERROR      =  -32;
  243.  SQLA_RC_SECTION_LIMIT           =  -51;
  244.  SQLA_RC_MEMORY_BAD               =   -83;
  245.  SQLA_RC_SNAME_DUP               =   -85;
  246.  SQLA_RC_STMT_LIMIT               =   SQLCodes.SQL_RC_E101;
  247.  SQLA_RC_NUMBER_BAD               =   SQLCodes.SQL_RC_E103;
  248.  SQLA_RC_STMT_SYNTAX_BAD        =   SQLCodes.SQL_RC_E104;
  249.  SQLA_RC_GSTRING_BAD           =   SQLCodes.SQL_RC_E105;          (* DBCS only *)
  250.  SQLA_RC_IDENTIFIER_LIMIT       =   SQLCodes.SQL_RC_E107;
  251.  SQLA_RC_QUALIFIER_BAD           =   SQLCodes.SQL_RC_E108;
  252.  SQLA_RC_DDSBAD                   =   SQLCodes.SQL_RC_E142;
  253.  SQLA_RC_DDSIGN                   =   SQLCodes.SQL_RC_W143;
  254.  SQLA_RC_DDSWRN                   =   SQLCodes.SQL_RC_W143;
  255.  SQLA_RC_KEYWORD_BAD           =   SQLCodes.SQL_RC_E199;
  256.  SQLA_RC_HVAR_NOT_DEC           =   -306;
  257.  SQLA_RC_HVAR_DUP_NAME           =   -307;
  258.  SQLA_RC_HVAR_LIMIT               =   -308;
  259.  SQLA_RC_STMT_HVAR_LIMIT       =   -310;
  260.  SQLA_RC_HVAR_USE_BAD           =   -324;
  261.  SQLA_RC_CURSOR_DUP               =   -505;
  262.  SQLA_RC_STMT_MODIFY_ALL       =   513;
  263.  SQLA_RC_DISK_FULL               =   SQLCodes.SQL_RC_E968;
  264.  SQLA_RC_FATAL_ERROR           =   -4901;
  265.  SQLA_RC_PARM_CHARS_BAD           =   -4902;
  266.  SQLA_RC_PARM_LENGTH_BAD        =   SQL.SQLA_RC_OPTION_LEN_BAD;
  267.  SQLA_RC_PARM_POINTER_BAD       =   SQL.SQLA_RC_OPTION_PTR_BAD;
  268.  SQLA_RC_PARM_RANGE_BAD           =   SQL.SQLA_RC_OPTION_SIZE_BAD;
  269.  SQLA_RC_HVAR_SQLTYPE_BAD      =   -4911;
  270.  SQLA_RC_HVAR_SQLLEN_BAD       =   -4912;
  271.  SQLA_RC_HVAR_TOKEN_ID_DUP     =   -4913;
  272.  SQLA_RC_HVAR_TOKEN_ID_BAD     =   -4914;
  273.  SQLA_RC_INIT_DUP               =   -4915;
  274.  SQLA_RC_INIT_REQUIRED           =   -4916;
  275.  SQLA_RC_OPTION_BAD               =   SQL.SQLA_RC_OPTION_DATA_BAD;
  276.  SQLA_RC_TERM_OPTION_BAD       =   -4918;
  277.  SQLA_RC_TASK_ARRAY_LIMIT      =   -4919;
  278.  SQLA_RC_STMT_CLAUSE_BAD       =   -4940; (* Prep version of -109 *)
  279.  SQLA_RC_STMT_BLANK               =   -4941; (* Prep version of -198 *)
  280.  SQLA_RC_SELECT_HVAR_TYPE_BAD  =   -4942; (* Prep version of -303 *)
  281.  SQLA_RC_SELECT_LIST_BAD       =    4943; (* Prep version of -313 *)
  282.  SQLA_RC_COLUMN_NOT_NULLABLE   =   -4944; (* Prep version of -407 *)
  283.  SQLA_RC_STMT_MARKER_BAD       =   -4945; (* Prep version of -418 *)
  284.  SQLA_RC_CURSOR_NOT_DECLARED   =   -4946; (* Prep version of -504 *)
  285.  SQLA_RC_SQLDA_ID_BAD           =   -4951;
  286.  SQLA_RC_SQLVAR_INDEX_BAD      =   -4952;
  287.  SQLA_RC_CALL_TYPE_BAD           =   -4953;
  288.  SQLA_RC_SECTION_BAD           =   -4954;
  289.  
  290. (*
  291. ** Temporary value used in sqlca.sqlcode after an SQLAALOC function.  Runtime
  292. ** code can check sqlca.sqlcode to determine whether or not the SQLASETV
  293. ** function needs to be called to initialize the sqlda sqlvar elements.
  294. *)
  295.  
  296.  SQLA_RC_SQLVARS_SET          = 4959; (* sqlvars already initialized *)
  297.  
  298. (*
  299. ** Errors that cause Precompiler Services to enter the fatal error state.
  300. ** After encountering one of these types of errors, Precompiler Services
  301. ** requires an SQLAFINI and SQLAINIT call before it will continue.
  302. *)
  303.  
  304.  SQLA_RC_INV_INSERT          =  SQLCodes.SQL_RC_E803;
  305.  SQLA_RC_INV_SQLDA_ADR      =     SQLCodes.SQL_RC_E822;
  306.  SQLA_RC_SYS_ERROR          =  SQLCodes.SQL_RC_E902;
  307.  SQLA_RC_DEADLOCK_ERR      =     SQLCodes.SQL_RC_E911;
  308.  SQLA_RC_FAT_SYS_ERR      =     SQLCodes.SQL_RC_E912;
  309.  SQLA_RC_TOO_MANY_LKS      =     SQLCodes.SQL_RC_E930;
  310.  SQLA_RC_STORAGE_ERR      =     SQLCodes.SQL_RC_E954;
  311.  SQLA_RC_DB_HEAP_ERR      =     SQLCodes.SQL_RC_E956;
  312.  SQLA_RC_TOOMANY_OFLS      =     SQLCodes.SQL_RC_E958;
  313.  SQLA_RC_TOOMANY_FILES      =     SQLCodes.SQL_RC_E960;
  314.  SQLA_RC_LOG_FULL          =  SQLCodes.SQL_RC_E964;
  315.  SQLA_RC_FILE_SYS_FULL      =     SQLCodes.SQL_RC_E968;
  316.  SQLA_RC_READ_ONLY_FIL      =     SQLCodes.SQL_RC_E970;
  317.  SQLA_RC_INCORRECT_DSK      =     SQLCodes.SQL_RC_E972;
  318.  SQLA_RC_DB_DRV_LOCKED      =     SQLCodes.SQL_RC_E974;
  319.  SQLA_RC_DRV_DOOR_OPEN      =     SQLCodes.SQL_RC_E976;
  320.  SQLA_RC_DISK_WRT_PRO      =     SQLCodes.SQL_RC_E978;
  321.  SQLA_RC_DISK_ERROR          =  SQLCodes.SQL_RC_E980;
  322.  SQLA_RC_DISK_ERR          =  SQLCodes.SQL_RC_E982;
  323.  SQLA_RC_COMM_RB_ERR      =     SQLCodes.SQL_RC_E984;
  324.  SQLA_RC_CAT_FILE_ERR      =     SQLCodes.SQL_RC_E985;
  325.  SQLA_RC_TAB_FILE_ERR      =     SQLCodes.SQL_RC_E986;
  326.  SQLA_RC_INDEX_ERR          =  SQLCodes.SQL_RC_E990;
  327.  SQLA_RC_REL_NUM_BAD      =     SQLCodes.SQL_RC_E992;
  328.  SQLA_RC_CTRL_BREAK          =  -4994; (* Prep version of -952 *)
  329.  SQLA_RC_CODEPAGE_BAD      =  -4995; (* Country info not found *)
  330.  SQLA_RC_SQLUSER_BAD      =  -4997; (* Prep version of -1046 *)
  331.  SQLA_RC_DB_DISCONNECTED  =  -4998; (* Prep version of -1049 *)
  332.  SQLA_RC_INTERNAL_ERR      =  -4999; (* Precompiler Services err *)
  333.  
  334. (*********************** Precompiler Services Structures *******************)
  335.  
  336. (*
  337. ** Precompiler Option Array.  Used with SQLAINIT.
  338. *)
  339.  
  340. CONST
  341.   MaxTokens = 200;
  342.   MaxTasks  = 40;
  343.   MaxOption = 30;
  344.  
  345. TYPE
  346.  
  347.  sqla_optionRec = RECORD
  348.    type : LONGCARD;
  349.    value: LONGCARD;
  350.  END;
  351.  
  352.  sqla_header = RECORD
  353.     allocated : LONGCARD;
  354.     used      : LONGCARD;
  355.  END;
  356.  
  357.  sqla_options = RECORD
  358.    Header    : sqla_header;
  359.    Option    : ARRAY[1..MaxOption] OF sqla_optionRec;
  360.  END;
  361.  
  362.  
  363. (*
  364. ** Program ID.    Used by Precompiler Services and Runtime Services
  365. *)
  366.  
  367. sqla_program_id = RECORD
  368.   length : CARDINAL;
  369.   rp_rel_num : CARDINAL;
  370.   db_rel_num : CARDINAL;
  371.   bf_rel_num : CARDINAL;
  372.   sqluser    : ARRAY[0..7] OF CHAR;
  373.   planname   : ARRAY[0..7] OF CHAR;
  374.   contoken   : ARRAY[0..7] OF CHAR;
  375.   buffer     : ARRAY[0..7] OF CHAR;
  376. END;
  377.  
  378.  
  379. (*
  380. ** Precompiler Task Array.  Used with SQLACMPL.
  381. *)
  382.  
  383. sqla_task = RECORD
  384.   func : LONGCARD;
  385.   value: LONGCARD;
  386. END;
  387.  
  388. sqla_tasks = RECORD
  389.   Header   : sqla_header;
  390.   tasks    : ARRAY[1..MaxTasks] OF sqla_task;
  391. END;
  392.  
  393.  
  394.  
  395. (*
  396. ** Precompiler Token ID Array.    Used with SQLACMPL
  397. *)
  398. sqla_token = RECORD
  399.   tokenID : LONGCARD;
  400.   use     : LONGCARD;
  401. END;
  402.  
  403. sqla_tokens = RECORD
  404.   Header    : sqla_header;
  405.   Tokens    : ARRAY[1..MaxTokens] OF sqla_token;
  406. END;
  407.  
  408.  
  409. (***************** Precompiler Services Prototypes *************************)
  410.  
  411.  
  412.         (* ADD A HOST VARIABLE DECLARATION *)
  413. PROCEDURE sqlaahvr (VAR NameLen : CARDINAL;    (* host variable name length *)
  414.                     VAR Name    : ARRAY OF CHAR;    (* host variable name *)
  415.                     VAR SQLType : CARDINAL; (* host variable SQL data type *)
  416.                     VAR HVNameLn: CARDINAL;(* host variable length *)
  417.                     VAR TokenID : CARDINAL; (* host variable token id *)
  418.                     VAR Location: CARDINAL; (* host variable location *)
  419.                         Spare   : ADDRESS;  (* reserved *)
  420.                     VAR SqlCA   : sqlca): CARDINAL;    (* SQLCA *)
  421.  
  422.             (* COMPILE AN SQL STATEMENT *)
  423. TYPE
  424.   buf128 = ARRAY[0..127] OF CHAR;
  425.               
  426. PROCEDURE sqlacmpl      (VAR TxtLen  : CARDINAL;(* SQL statement text length *)
  427.                        VAR Sqltxt  : ARRAY OF CHAR;(* SQL statement text *)
  428.                        VAR LineNbr : CARDINAL;(* source line number *)
  429.                        VAR TskArray: sqla_tasks;(* task array *)
  430.                        VAR TokenAry: sqla_tokens;(* token id array *)
  431.                        VAR Section : CARDINAL;(* section number *)
  432.                        VAR SqlType : CARDINAL;(* type of SQL statement *)
  433.                        VAR Str1    : buf128;(* 128 byte string buffer 1 *)
  434.                        VAR Str2    : buf128;(* 128 byte string buffer 2 *)
  435.                        VAR Str3    : buf128;(* 128 byte string buffer 3 *)
  436.                            Spare   : ADDRESS;(* reserved *)
  437.                        VAR SqlCA   : sqlca ):CARDINAL;    (* SQLCA *)
  438.  
  439.  
  440. PROCEDURE sqlafini      (VAR Action : CARDINAL; (* save/discard plan/bind file *)
  441.                        Spare  : ADDRESS;        (* reserved *)
  442.                        VAR SqlCA  : sqlca ): CARDINAL;    (* SQLCA *)
  443.  
  444.  
  445.  
  446. PROCEDURE sqlainit      (VAR ProgNmLen : CARDINAL;(* program name length *)
  447.                        VAR ProgNm    : ARRAY OF CHAR;    (* program name *)
  448.                        VAR DBNmLen   : CARDINAL;(* database name length *)
  449.                        VAR DBNm      : ARRAY OF CHAR;(* database name *)
  450.                        VAR PWLen     : CARDINAL;(* password length *)
  451.                        VAR PassWd    : ARRAY OF CHAR;(* database password *)
  452.                        VAR BndFileNmL: CARDINAL;(* bind file name length *)
  453.                        VAR BndFileNm : ARRAY OF CHAR;(* bind file name *)
  454.                        VAR Options   : sqla_options;(* precompiler option array *)
  455.                        VAR PrgID     : sqla_program_id;(* precompiler program ID *)
  456.                            Spare     : ADDRESS;(* reserved *)
  457.                        VAR SqlCA     : sqlca ): CARDINAL;    (* SQLCA *)
  458.  
  459.  
  460. (****************************************************************************)
  461. (*                     SQLGxxxx                                             *)
  462. (****************************************************************************)
  463.  
  464.  
  465.         (* ADD A HOST VARIABLE DECLARATION *)
  466. PROCEDURE SQLGAHVR (VAR NameLen : CARDINAL;    (* host variable name length *)
  467.                     VAR Name    : ARRAY OF CHAR;    (* host variable name *)
  468.                     VAR SQLType : CARDINAL; (* host variable SQL data type *)
  469.                     VAR HVLen   : CARDINAL;(* host variable length *)
  470.                     VAR TokenID : LONGCARD; (* host variable token id *)
  471.                     VAR Location: CARDINAL; (* host variable location *)
  472.                         Spare   : ADDRESS;  (* reserved *)
  473.                     VAR SqlCA   : sqlca): CARDINAL;    (* SQLCA *)
  474.  
  475.             (* COMPILE AN SQL STATEMENT *)
  476.               
  477. PROCEDURE SQLGCMPL    (VAR TxtLen  : CARDINAL;(* SQL statement text length *)
  478.                        VAR Sqltxt  : ARRAY OF CHAR;(* SQL statement text *)
  479.                        VAR LineNbr : CARDINAL;(* source line number *)
  480.                        VAR TskArray: sqla_tasks;(* task array *)
  481.                        VAR TokenAry: sqla_tokens;(* token id array *)
  482.                        VAR Section : CARDINAL;(* section number *)
  483.                        VAR SqlType : CARDINAL;(* type of SQL statement *)
  484.                        VAR Str1    : buf128;(* 128 byte string buffer 1 *)
  485.                        VAR Str2    : buf128;(* 128 byte string buffer 2 *)
  486.                        VAR Str3    : buf128;(* 128 byte string buffer 3 *)
  487.                            Spare   : ADDRESS;(* reserved *)
  488.                        VAR SqlCA   : sqlca ):CARDINAL;    (* SQLCA *)
  489.  
  490.  
  491. PROCEDURE SQLGFINI      (VAR Action : CARDINAL; (* save/discard plan/bind file *)
  492.                        Spare  : ADDRESS;        (* reserved *)
  493.                        VAR SqlCA  : sqlca ): CARDINAL;    (* SQLCA *)
  494.  
  495.  
  496.  
  497. PROCEDURE SQLGINIT    (VAR ProgNmLen : CARDINAL;(* program name length *)
  498.                        VAR ProgNm    : ARRAY OF CHAR;    (* program name *)
  499.                        VAR DBNmLen   : CARDINAL;(* database name length *)
  500.                        VAR DBNm      : ARRAY OF CHAR;(* database name *)
  501.                        VAR PWLen     : CARDINAL;(* password length *)
  502.                        VAR PassWd    : ARRAY OF CHAR;(* database password *)
  503.                        VAR BndFileNmL: CARDINAL;(* bind file name length *)
  504.                        VAR BndFileNm : ARRAY OF CHAR;(* bind file name *)
  505.                        VAR Options   : sqla_options;(* precompiler option array *)
  506.                        VAR PrgID     : sqla_program_id;(* precompiler program ID *)
  507.                            Spare     : ADDRESS;(* reserved *)
  508.                        VAR SqlCA     : sqlca ): CARDINAL;    (* SQLCA *)
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515. (******************* Begin Runtime Services  prototypes : *********************)
  516.  
  517.  
  518.  
  519.  
  520. PROCEDURE SQLAALOC ( SQLID : CARDINAL;    (* sqlda identification number*)
  521.                      Elmts : CARDINAL;    (* number of sqlvar elements needed*)
  522.                      StmID : CARDINAL;   (* statement identification number*)
  523.                      Spare : ADDRESS): CARDINAL; (* reserved*)
  524.  
  525. PROCEDURE SQLACALL ( CallType  : CARDINAL;(* function call type*)
  526.                      AccPlan   : CARDINAL;(* access plan section*)
  527.                      InputSqlDA: CARDINAL;(* input SQLDA ID *)
  528.                      OutSqlDA  : CARDINAL;(* output SQLDA ID *)
  529.                      Spare     : ADDRESS):CARDINAL;        (* reserved *)
  530.  
  531. PROCEDURE SQLADLOC ( SqlDA : CARDINAL; (*SQLDA ID *)
  532.                      Spare : ADDRESS): CARDINAL; (* reserved*)
  533.  
  534. PROCEDURE SQLASETS (SQLTxtLen : CARDINAL;(* SQL statement text length *)
  535.                     VAR SQLTxt    : ARRAY OF CHAR; (*-- SQL statement text*)
  536.                     Spare         : ADDRESS):CARDINAL;(*-- reserved*)
  537.  
  538. PROCEDURE SQLASETV (SqlDA : CARDINAL;    (*-- SQLDA ID*)
  539.                     SqlVar: CARDINAL;    (* sqlvar element*)
  540.                     type  : CARDINAL;   (* SQL data type*)
  541.                     Len   : CARDINAL;(* declared length*)
  542.                     HostAdr: ADDRESS;    (* address of host var*)
  543.                     IndVar : ADDRESS;    (* address of indicator var*)
  544.                     spare  : ADDRESS):CARDINAL;        (* reserved*)
  545.  
  546. PROCEDURE SQLASTOP(Spare : ADDRESS): CARDINAL;        (* reserved*)
  547.  
  548. PROCEDURE SQLASTRT(    RunID : ADDRESS; (* runtime program ID*)
  549.                        Spare : ADDRESS;        (* reserved*)
  550.                        VAR SqlCA : sqlca):CARDINAL;        
  551.  
  552. PROCEDURE SQLAUSDA(SqlDAID : CARDINAL;    (* SQLDA id*)
  553.                    SqlDA : sqldaPtr;    (* SQLDA pointer*)
  554.                    spare : ADDRESS): CARDINAL;        (* reserved*)
  555.  
  556. (** end Runtime Services prototypes *****************************************)
  557.  
  558. END SQLPREP.