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

  1. DEFINITION MODULE SQLEnv;
  2. (*# call(o_a_size => off,
  3.          o_a_copy=>off,
  4.          result_optional=>on,
  5.          reg_saved => (si, di, ds, st1, st2),
  6.          reg_param => (),
  7.          seg_name => none,
  8.          near_call => off,
  9.          ds_eq_ss => off) *)
  10. (*# module(implementation=>off, init_code => off) *)
  11. (*# name(prefix => none) *)
  12. (*# data(near_ptr => off,var_enum_size=>off) *)
  13. (*# check(index=>off,range=>off,overflow=>off,nil_ptr=>off) *)
  14.  
  15.  
  16. (****************************************************************************
  17.  
  18.    Module Name      = SQLENV.H                         12/10/91
  19.  
  20.    Descriptive Name = External Include File for Environment Commands
  21.  
  22.  
  23.  
  24.    Function = Include File defining
  25.         Database Environment Command Interfaces
  26.         SQL Return Codes in SQLCODE for Environment Commands
  27.  
  28.    Operating System = OS/2 Extended Edition
  29.  
  30. ****************************************************************************)
  31.  
  32. FROM SQLDA IMPORT sqlda;
  33. FROM SQLCA IMPORT sqlca;
  34. FROM SQL IMPORT sqlchar;
  35.  
  36.  
  37. (* Interface Parameters/Structures/Return Codes *)
  38.  
  39.  
  40. (* Parameters for START USING DATABASE *)
  41.  
  42. CONST
  43.  
  44.    SQL_USE_SHR     = 'S';       (* USE = Share           *)
  45.    SQL_USE_EXC     = 'X';       (* USE = Exclusive       *)
  46.  
  47. (* Sizes for entries in sqledinfo, sqleninfo, sqledbstat, sqleusrstat &
  48.             sql_dir_entry                     *)
  49.  
  50.    SQL_ALIAS_SZ        =  8;        (* Alias name         *)
  51.    SQL_USERID_SZ     =  8;        (* User Id             *)
  52.    SQL_DBNAME_SZ     =  8;        (* Database name         *)
  53.    SQL_DRIVE_SZ        =  2;        (* Drive (D:)         *)
  54.    SQL_INAME_SZ        =  8;        (* Internal db name      *)
  55.    SQL_NNAME_SZ        =  8;        (* Node name         *)
  56.    SQL_DBTYP_SZ        =  20;        (* Type of database      *)
  57.    SQL_CMT_SZ        =  30;        (* Comment             *)
  58.    SQL_LOCLU_SZ        =  8;        (* Local_lu          *)
  59.    SQL_RMTLU_SZ        =  8;        (* Partner_lu         *)
  60.    SQL_MODE_SZ        =  8;        (* Mode             *)
  61.    SQL_NRESERVE_SZ    =  0;        (* Reserved          *)
  62.    SQL_DBSTAT_ALIAS_SZ     = 16;        (* Alias name         *)
  63.    SQL_DBSTAT_DBNAME_SZ     = 16;        (* Database name         *)
  64.    SQL_LONG_NAME_SZ         = 18;        (* Host database name    *)
  65.    SQL_CS_SZ             = 256;        (* collating sequence    *)
  66.    SQL_PARAMETER_SZ         = 512;        (* Parameter string      *)
  67.    SQL_NETID_SZ             = 8;        (* Network ID         *)
  68.  
  69. (* Parameters for Entry Type in sqledinfo *)
  70.  
  71.    SQL_HOME              = '2';       (* Database is home      *)
  72.    SQL_REMOTE            = '1';       (* Database is remote    *)
  73.    SQL_INDIRECT             = '0';       (* Database is indirect  *)
  74.  
  75. (* Parameters for adapter number in sqlectnd *)
  76.  
  77.    SQL_ADAPTER_0         = 0;        (* Adapter number 0      *)
  78.    SQL_ADAPTER_1          = 1;        (* Adapter number 1      *)
  79.    SQL_ADAPTER_MIN         = 0;        (* Minimum adapter number*)
  80.    SQL_ADAPTER_MAX         = 1;        (* Maximum adapter number*)
  81.  
  82. (* Definitions of constants used for Structure IDs *)
  83.  
  84.   SQL_DCS_STR_ID          = 0100H;    (* DCS directory entry id     *)
  85.   SQL_NODE_STR_ID         = 0100H;    (* Catalog node struct id     *)
  86.  
  87. (* Parameters for protcol types in sqlectnd *)
  88.  
  89.    SQL_PROTOCOL_APPC      = 00H;        (* APPC              *)
  90.    SQL_PROTOCOL_NETB      = 01H;        (* NETBIOS              *)
  91.    SQL_PROTOCOL_APPN      = 02H;        (* APPN              *)
  92.  
  93. (* Parameters for New Create Database api *)
  94.  
  95.    SQL_CS_SYSTEM      =  0;        (* Coll. Seq. from System     *)
  96.    SQL_CS_USER         = -1;        (* Coll. Seq. from User     *)
  97.    SQL_CS_NONE         = -2;        (* Coll. Seq. - none     *)
  98.  
  99.  
  100.  
  101. (******************************************)
  102. (* Database Description Block structure   *)
  103. (******************************************)
  104.  
  105. TYPE
  106.   sqledbdesc = RECORD
  107.    sqldbdid : ARRAY[1..8] OF CHAR;           (* eye catcher         *)
  108.    sqldbccp : LONGINT;           (* comment code page      *)
  109.    sqldbcss : LONGINT;           (* Source of collating seq.     *)
  110.    sqldbudc : ARRAY [0..SQL_CS_SZ] OF CHAR;       (* user-defined collating seq.*)
  111.    sqldbcmt : ARRAY [0..SQL_CMT_SZ+1] OF CHAR;  (* comment             *)
  112.  END;
  113.  
  114. (******************************************)
  115. (* Database Directory Scan data structure *)
  116. (******************************************)
  117.  
  118.   sqledinfo = RECORD
  119.    alias   : ARRAY [0..SQL_ALIAS_SZ-1] OF CHAR;       (* Alias name         *)
  120.    dbname  : ARRAY [0..SQL_DBNAME_SZ-1] OF CHAR;    (* Database name         *)
  121.    drive   : ARRAY [0..SQL_DRIVE_SZ-1] OF CHAR;       (* Drive 'd:'                 *)
  122.    intname : ARRAY [0..SQL_INAME_SZ-1] OF CHAR;    (* Database subdirectory     *)
  123.    nodename: ARRAY [0..SQL_NNAME_SZ-1] OF CHAR;   (* Node name          *)
  124.    dbtype  : ARRAY [0..SQL_DBTYP_SZ-1] OF CHAR;       (* Release information     *)
  125.    comment : ARRAY [0..SQL_CMT_SZ-1] OF CHAR;       (* Comment             *)
  126.    codepg  : CARDINAL;           (* Code page of comment     *)
  127.    type    : CHAR;               (* Entry type - defines above *)
  128.   END;
  129.  
  130. (**************************************)
  131. (* Node Directory Scan data structure *)
  132. (**************************************)
  133.  
  134. sqleninfo = RECORD
  135.    nodename : ARRAY [0..SQL_NNAME_SZ-1] OF CHAR;    (* Node name          *)
  136.    local_lu : ARRAY [0..SQL_LOCLU_SZ-1] OF CHAR;    (* Local_lu name          *)
  137.    partner_lu : ARRAY [0..SQL_RMTLU_SZ-1] OF CHAR;  (* Partner_lu name       *)
  138.    mode : ARRAY [0..SQL_MODE_SZ-1] OF CHAR;         (* Mode              *)
  139.    comment : ARRAY [0..SQL_CMT_SZ-1] OF CHAR;         (* Comment           *)
  140.    comm_codepage : CARDINAL;          (* Comment code page     *)
  141.    adapter : CARDINAL;             (* Adapter # for Net Bios*)
  142.    networkid :ARRAY [0..SQL_NETID_SZ-1] OF CHAR;   (* Network ID          *)
  143.    protocol : CHAR  ;             (* Protocol type          *)
  144.  END;
  145.  
  146.  
  147.  
  148. (**********************************************)
  149. (* General Catalog Node structures and defines*)
  150. (**********************************************)
  151.  
  152. sqle_node_struct = RECORD;
  153.  struct_id : CARDINAL;             (* Structure Identifier  *)
  154.  codepage  : CARDINAL;             (* Codepage for comment  *)
  155.  comment   : ARRAY [0..SQL_CMT_SZ + 1-1] OF CHAR;     (* Comment          *)
  156.  nodename  : ARRAY [0..SQL_NNAME_SZ + 1-1] OF CHAR;     (* Node name          *)
  157.  protocol  : CHAR;             (* Protocol Type      *)
  158. END;
  159.  
  160.  
  161. sqle_node_appc    = RECORD         (* For APPC protocol      *)
  162.   local_lu : ARRAY [0..SQL_LOCLU_SZ ] OF CHAR;     (* Local_lu name      *)
  163.   partner_lu : ARRAY[0..SQL_RMTLU_SZ ]OF CHAR;  (* Alias Partner_lu name *)
  164.   mode : ARRAY [0..SQL_MODE_SZ ]OF CHAR;     (* Mode          *)
  165. END;
  166.  
  167.  
  168. sqle_node_netb    = RECORD         (* For Netbios Protocol  *)
  169.    adapter : CARDINAL;             (* Adapter Number      *)
  170.    remote_nname : ARRAY [0..SQL_RMTLU_SZ ] OF CHAR;(* Remote Workstation name*)
  171. END;
  172.  
  173.  
  174. sqle_node_appn = RECORD             (* For APPN protocol      *)
  175.    networkid : ARRAY [0..SQL_NETID_SZ ] OF CHAR;     (* Network ID          *)
  176.    remote_lu : ARRAY [0..SQL_RMTLU_SZ ] OF CHAR;     (* Remoter lu name      *)
  177.    local_lu  : ARRAY [0..SQL_LOCLU_SZ ] OF CHAR;     (* Local_lu name      *)
  178.    mode      : ARRAY [0..SQL_MODE_SZ ] OF CHAR;     (* Mode          *)
  179. END;
  180.  
  181.  
  182.  
  183. (* Sizes for entries in sqlesystat & sqleusrstat *)
  184.  
  185. CONST
  186.   SQL_PRODNAME_SZ     = 30;        (* Product name         *)
  187.   SQL_COMPID_SZ         = 9;        (* Component Id         *)
  188.   SQL_CORRLVL_SZ      = 8;        (* Corrective serv level *)
  189.   SQL_RLSLVL_SZ         = 4;        (* Release level         *)
  190.  
  191. (* Defines for STATUS parameter on Collect Database Status *)
  192.  
  193.   SQL_OPSTAT_SYSTEM      = 1;        (* Collect system status *)
  194.   SQL_OPSTAT_DATABASE = 2;        (* Collect database stat *)
  195.   SQL_OPSTAT_ALL       = 3;        (* Collect all status    *)
  196.  
  197. (* Defines for OBJECT parameter on Collect Database Status *)
  198.  
  199.   SQL_OBJECT_DATABASE      = 1;        (* Specified database    *)
  200.   SQL_OBJECT_DRIVE          = 2;        (* Specified drive         *)
  201.   SQL_OBJECT_LOCAL          = 3;         (* All local databases   *)
  202.  
  203. (* Defines for 'location' field in sqledbstat *)
  204.  
  205.   SQL_LOCAL_TYPE     =  'L';
  206.   SQL_REMOTE_TYPE    =  'R';
  207.  
  208. (* Defines for 'trans_state' field in sqleusrstat *)
  209.  
  210.   SQL_TRANS_STATE_STARTED  = 'S';
  211.   SQL_TRANS_STATE_READ       = 'R';
  212.   SQL_TRANS_STATE_CHANGED  = 'C';
  213.  
  214. (* Defines for 'lock_state' field in sqleusrstat *)
  215.  
  216.   SQL_LOCK_STATE_WAIT      = 'W';
  217.   SQL_LOCK_STATE_NOWAIT      = 'N';
  218.  
  219.  
  220.  
  221. (*******************************************)
  222. (* Collect Database Status data structures *)
  223. (*******************************************)
  224.  
  225. (* System Status data structure *)
  226.  
  227. TYPE
  228.  
  229.   sqlesystat = RECORD
  230.     current_time    : LONGCARD;
  231.     time_zone_disp  : LONGINT;
  232.     product_name    : ARRAY[0..SQL_PRODNAME_SZ-1] OF CHAR;
  233.     component_id    : ARRAY[0.. SQL_COMPID_SZ-1] OF CHAR;
  234.     reserved        : CHAR;               (* Reserved byte  *)
  235.     release_lvl     : ARRAY[0.. SQL_RLSLVL_SZ-1] OF CHAR;
  236.     corr_serv_lvl   : ARRAY[0.. SQL_CORRLVL_SZ-1] OF CHAR;
  237. END;
  238.  
  239. (* Database Status data structure *)
  240.  
  241.   sqledbstat = RECORD
  242.     backup_time     : LONGCARD;         (* Last backup time       *)
  243.     time_zone_disp  : LONGINT;    (* Time zone of backup time   *)
  244.     connects        : CARDINAL;            (* Number of current users      *)
  245.     db_alias        : ARRAY[0.. SQL_DBSTAT_ALIAS_SZ-1] OF CHAR;  (* Alias name      *)
  246.     db_name         : ARRAY[0.. SQL_DBSTAT_DBNAME_SZ-1] OF CHAR;  (* Database name      *)
  247.     location        : CHAR;            (* Local / Remote Database      *)
  248.     reserved        : CHAR;            (* Reserved byte          *)
  249.     drive           : ARRAY[0.. SQL_DRIVE_SZ-1] OF CHAR;     (* Drive containing database  *)
  250.     node            : ARRAY[0.. SQL_NNAME_SZ-1] OF CHAR;        (* Node containing database   *)
  251.     db_type         : ARRAY[0.. SQL_DBTYP_SZ-1] OF CHAR;   (* "OS2 DBM"                  *)
  252. END;
  253.  
  254.  
  255. (* User Status data structure *)
  256.  
  257.  sqleusrstat = RECORD
  258.     con_trans    : LONGCARD;            (* Transactions since connect *)
  259.     con_reqs     : LONGCARD;             (* Requests since connect      *)
  260.     cur_reqs     : LONGCARD;            (* Requests current transact  *)
  261.     connect_time : LONGCARD;            (* Time since connect      *)
  262.     trans_time   : LONGCARD;            (* Time since current transact*)
  263.     authid       : ARRAY[0.. SQL_USERID_SZ-1] OF CHAR;   (* User's Id                  *)
  264.     node         : ARRAY[0.. SQL_NNAME_SZ-1] OF CHAR; (* Nodename of connected user *)
  265.     authority_lvl: CARDINAL;            (* User's authority level     *)
  266.     trans_state  : CHAR;                 (* Transaction state      *)
  267.     lock_state   : CHAR;                (* Transaction lock state      *)
  268. END;
  269.  
  270.  
  271.  
  272. (*******************************************)
  273. (* DDCS Directory Entry Data Structure       *)
  274. (*******************************************)
  275.  
  276. sql_dir_entry = RECORD
  277.     struct_id : CARDINAL;              (* Structure Identifier        *)
  278.     release   : CARDINAL;              (* Release level of entry     *)
  279.     codepage  : CARDINAL;              (* Codepage of comment        *)
  280.     comment   : ARRAY[0.. SQL_CMT_SZ ] OF CHAR;   (* Directory entry comment    *)
  281.     ldb       : ARRAY[0.. SQL_DBNAME_SZ ] OF CHAR;    (* Local DB name            *)
  282.     tdb       : ARRAY[0.. SQL_LONG_NAME_SZ] OF CHAR; (* Target (host) DB name        *)
  283.     ar        : ARRAY[0.. SQL_DBNAME_SZ ] OF CHAR;     (* Appl. requester DLL name   *)
  284.     parm      : ARRAY[0.. SQL_PARAMETER_SZ ] OF CHAR;(* Parameter string        *)
  285. END;
  286.  
  287.  
  288.  
  289. (********************************************************)
  290. (* Database Environment Commands -- Function Prototypes *)
  291. (********************************************************)
  292.  
  293.  
  294.  
  295. (* ALTER DATABASE PASSWORD *)
  296. PROCEDURE SQLGALTD(newpwlen : CARDINAL;    (* new password length *)
  297.                    oldpwlen : CARDINAL;    (* old password length *)
  298.                    dbnamlen : CARDINAL;    (* database length *)
  299.                    VAR SQLCA: sqlca;    (* SQLCA *)
  300.                    VAR newpw,    (* new password *)
  301.                        oldpw,    (* old password *)
  302.                        dbnam: ARRAY OF CHAR) : CARDINAL;    (* database *)
  303.  
  304. (* CATALOG DATABASE *)
  305. PROCEDURE SQLGCATD      (commtlen : CARDINAL;    (* comment length *)
  306.                       nodenmlen : CARDINAL;    (* node name length *)
  307.                       aliaslen  : CARDINAL;    (* alias length *)
  308.                       dbnanlen  : CARDINAL;    (* database length *)
  309.                       dirve     : CHAR;        (* drive *)
  310.                       comtcodepg: INTEGER;        (* comment code page *)
  311.                       type      : CHAR;    (* type *)
  312.                       VAR SQLCA : sqlca;     (* SQLCA *)
  313.                       VAR comment,
  314.                           nodename,    (* node name *)
  315.                           alias,    (* alias *)
  316.                           database : ARRAY OF CHAR);    (* database *)
  317.  
  318. (* GENERIC API FOR CATALOG NODE *)
  319. PROCEDURE SQLGCATN      (comtlen    : CARDINAL;    (* comment length *)
  320.                        nodelen    : CARDINAL;    (* mode length *)
  321.                        parlulen   : CARDINAL;    (* partner lu length *)
  322.                        locallulen : CARDINAL;    (* local lu length *)
  323.                        nodenamelen: CARDINAL;    (* node name length *)
  324.                        codepg     : CARDINAL;    (* code page *)
  325.                        VAR SQLCA  : sqlca;    (* SQLCA *)
  326.                        VAR comment,    (* comment *)
  327.                            mode,    (* mode *)
  328.                            partner,    (* partner lu *)
  329.                            locallu,    (* local lu *)
  330.                            nodename : ARRAY OF CHAR): CARDINAL;    (* nodename *)
  331.  
  332. (* CREATE DATABASE *)
  333. PROCEDURE SQLGCRED      (comtlen : CARDINAL;    (* comment length *)
  334.                        spare1: CARDINAL;    (* spare1, was password length *)
  335.                        dbnamlen: CARDINAL;    (* database length *)
  336.                        drive  :CHAR;    (* drive *)
  337.                        comtcdpg: INTEGER;        (* comment code page *)
  338.                        VAR comment :ARRAY OF CHAR;    (* comment *)
  339.                        VAR SQLCA   :sqlca;    (* SQLCA *)
  340.                        spare2  : ADDRESS;    (* spare2, was password *)
  341.                        VAR dbname  :ARRAY OF CHAR): CARDINAL;    (* database *)
  342.  
  343.  
  344.  
  345. (* CHANGE DATABASE COMMENT *)
  346. PROCEDURE SQLGDCHG (comtlen : CARDINAL;    (* comment length *)
  347.                    dbnamlen: CARDINAL;    (* database length *)
  348.                    comtcdpg: INTEGER;        (* comment codepage *)
  349.                    dirve   : CHAR;    (* drive *)
  350.                    VAR SQLCA: sqlca;    (* SQLCA *)
  351.                    VAR comment,    (* comment *)
  352.                        datebase : ARRAY OF CHAR): CARDINAL;    (* database *)
  353.  
  354. (* CLOSE DIRECTORY SCAN *)
  355. PROCEDURE SQLGDCLS      (handle : CARDINAL;    (* handle *)
  356.                        VAR SQLCA :sqlca ): CARDINAL;    (* SQLCA *)
  357.  
  358.  (* GET NEXT DIRECTORY ENTRY *)
  359. PROCEDURE SQLGDGNE      (handle: CARDINAL;    (* handle *)
  360.                        VAR infor : sqledinfo; (* buffer *)
  361.                        VAR SQLCA : sqlca ) : CARDINAL;    (* SQLCA *)
  362.  
  363. (* OPEN DIRECTORY SCAN *)
  364. PROCEDURE SQLGDOPS      (drive  :CHAR;    (* drive *)
  365.                       VAR handle: CARDINAL;    (* handle *)
  366.                       VAR cnt   : CARDINAL;     (* count *)
  367.                       VAR SQLCA : sqlca): CARDINAL;    (* SQLCA *)
  368.  
  369. (* DROP DATABASE *)
  370. PROCEDURE SQLGDRPD      (spare1 : CARDINAL;    (* spare1, was password length *)
  371.                        dbnamlen : CARDINAL;    (* database length *)
  372.                        VAR SQLCA : sqlca;    (* SQLCA *)
  373.                        spare2    : ADDRESS;    (* spare2, was password *)
  374.                        VAR dbname :ARRAY OF CHAR):CARDINAL;    (* database *)
  375.  
  376. (* FREE DATABASE STATUS RESOURCES *)
  377. PROCEDURE SQLGFREE      (VAR SQLCA: sqlca): CARDINAL;    (* SQLCA *)
  378.  
  379. (* INTERRUPT *)
  380. PROCEDURE SQLGINTR () : CARDINAL;
  381.  
  382. (* INSTALL SIGNAL HANDLER *)
  383. PROCEDURE SQLGISIG      (VAR SQLCA :sqlca ): CARDINAL;    (* SQLCA *)
  384.  
  385. (* MIGRATE DATABASE *)
  386. PROCEDURE SQLGMIGD      ( dbnamlen : CARDINAL;    (* Database name length *)
  387.                         pwlen    : CARDINAL;    (* password length *)
  388.                         VAR dbname,             (* database name *)
  389.                             pw   :ARRAY OF CHAR;    (* password *)
  390.                         VAR SQLCA : sqlca ): CARDINAL;    (* SQLCA pointer *)
  391.  
  392. (* CLOSE NODE DIRECTORY SCAN *)
  393. PROCEDURE SQLGNCLS      (handle : CARDINAL;    (* handle *)
  394.                       VAR SLQCA :sqlca ): CARDINAL;    (* sqlca *)
  395.  
  396. (* GET NEXT DATABASE STATUS BLOCK *)
  397. PROCEDURE SQLGNEXT      (VAR cnt : CARDINAL;     (* count pointer *)
  398.                        VAR buff : ARRAY OF CHAR;    (* buffer pointer *)
  399.                        VAR SQLCA: sqlca ):CARDINAL;    (* SQLCA *)
  400.  
  401.     (* GET NEXT NODE ENTRY *)
  402. PROCEDURE SQLGNGNE      (handle : CARDINAL;    (* handle *)
  403.                        VAR infor : sqleninfo; (* buffer *)
  404.                        VAR SQLCA : sqlca ): CARDINAL;    (* SQLCA *)
  405.  
  406. (* OPEN NODE DIRECTORY SCAN *)
  407. PROCEDURE SQLGNOPS      (VAR handle : CARDINAL;     (* handle *)
  408.                        VAR cnd    : CARDINAL;     (* count *)
  409.                        VAR SQLCA  : sqlca ): CARDINAL;    (* SQLCA *)
  410.  
  411. (* COLLECT DATABASE STATUS *)
  412. PROCEDURE SQLGOPST      (statusreq : CARDINAL;    (* status requested *)
  413.                        objtype   : CARDINAL;    (* object type *)
  414.                        objlen    : CARDINAL;    (* length of object *)
  415.                        VAR object:ARRAY OF CHAR;    (* object pointer *)
  416.                        VAR cnd   : CARDINAL;     (* count pointer *)
  417.                        VAR buf   : ARRAY OF CHAR;    (* buffer pointer *)
  418.                        VAR SQLCA : sqlca ):CARDINAL;    (* SQLCA *)
  419.  
  420. (* DB APPLICATION REMOTE INTERFACE *)
  421. PROCEDURE SQLGPROC      (pgmnamlen : CARDINAL;    (* program name length *)
  422.                        VAR SQLCA : sqlca;    (* SQLCA  *)
  423.                        VAR path  : ARRAY OF CHAR;         (* Path Name of program to run *)
  424.                        VAR SQLDAin : sqlda;    (* input SQLDA *)
  425.                        VAR SQLDAout: sqlda;    (* output SQLDA *)
  426.                        VAR SQLCHAR : sqlchar ): CARDINAL;    (* variable length area pointer *)
  427.  
  428. (* RESTART DATABASE *)
  429. PROCEDURE SQLGREST      (spare1 : CARDINAL;    (* spare1, was password length *)
  430.                        dbnamlen : CARDINAL;    (* database length *)
  431.                        VAR SQLCA : sqlca;    (* SQLCA *)
  432.                        spare2    : ADDRESS;    (* spare2, was password *)
  433.                        VAR dbname : ARRAY OF CHAR): CARDINAL;    (* database *)
  434.  
  435. (* START DATABASE MANAGER *)
  436. PROCEDURE SQLGSTAR (): CARDINAL;
  437.  
  438. (* STOP DATABASE MANAGER *)
  439. PROCEDURE SQLGSTDM (VAR SQLCA :  sqlca): CARDINAL;    (* SQLCA *)
  440.  
  441. (* STOP USING DATABASE *)
  442. PROCEDURE SQLGSTPD    (VAR SQLCA : sqlca ): CARDINAL;    (* SQLCA *)
  443.  
  444. (* START USING DATABASE *)
  445. PROCEDURE SQLGSTRD (spare1 : CARDINAL;    (* spare1, was password length *)
  446.                     dbnamlen : CARDINAL;    (* database length *)
  447.                     user   : CHAR;       (* use shared exclusive (S OR X) *)
  448.                     VAR SQLCA : sqlca;    (* SQLCA *)
  449.                     spare2   : ADDRESS;    (* spare2, was password *)
  450.                     VAR dbname : ARRAY OF CHAR): CARDINAL;    (* database *)
  451.  
  452. (* UNCATALOG DATABASE *)
  453. PROCEDURE SQLGUNCD      (dbnmlen : CARDINAL;    (* database length *)
  454.                       VAR SQLCA : sqlca;    (* SQLCA *)
  455.                       VAR database: ARRAY OF CHAR): CARDINAL;    (* database *)
  456.  
  457. (* UNCATALOG NODE *)
  458. PROCEDURE SQLGUNCN    (nodenamlen : CARDINAL;    (* nodename length *)
  459.                      VAR SQLCA :  sqlca;    (* SQLCA *)
  460.                      VAR nodename :ARRAY OF CHAR): CARDINAL;    (* nodename *)
  461.  
  462. (* GET USER STATUS *)
  463. PROCEDURE SQLGUSER      (dbname :  CARDINAL;    (* length of db name *)
  464.                        VAR name,             (* db name pointer *)
  465.                            buffer : ARRAY OF CHAR;    (* buffer pointer *)
  466.                        VAR SQLCA : sqlca ):CARDINAL;    (* SQLCA *)
  467.  
  468.  
  469.  
  470. (* SQL Return Codes in SQLCODE for Environment Commands *)
  471.  
  472. CONST
  473.  
  474.  SQL_RC_INVALID_SQLCA = -1;    (* invalid sqlca    *)
  475.  
  476.    SQLE_RC_W863          = 863;    (* only SBCS data allowed         *)
  477.  
  478.    SQLE_RC_E953          = -953;    (* agent heap too small          *)
  479.    SQLE_RC_E957          = -957;    (* requestor comm heap too small     *)
  480.    SQLE_RC_E959          = -959;    (* server comm heap too small         *)
  481.    SQLE_RC_E961          = -961;    (* rqstr remote svcs heap too small  *)
  482.    SQLE_RC_E962          = -962;    (* svr remote svcs heap too small    *)
  483.  
  484.    SQLE_RC_INVNEWLOGP =  993;    (* New log path is invalid         *)
  485.    SQLE_RC_INVLOGP      =  995;    (* Current log path is invalid         *)
  486.  
  487.  
  488.  
  489.    SQLE_RC_INVALIAS      = -1000; (* invalid alias             *)
  490.    SQLE_RC_INVDBNAME  = -1001; (* invalid database name         *)
  491.    SQLE_RC_INVDRIVE      = -1002; (* invalid drive             *)
  492.    SQLE_RC_INVPSW      = -1003; (* invalid password             *)
  493.    SQLE_RC_INSSTOR      = -1004; (* insuf storage on file system      *)
  494.    SQLE_RC_DUPALIAS      = -1005; (* duplicate alias             *)
  495.    SQLE_RC_WRONGCODEPG=    -1006; (* Appl code page does not match db  *)
  496.    SQLE_RC_INV_NEWPSW =    -1008; (* invalid new password          *)
  497.    SQLE_RC_INVREMOTE  =    -1009; (* invalid remote command         *)
  498.  
  499.    SQLE_RC_INVTYPE      = -1010; (* invalid type              *)
  500.    SQLE_RC_NODRIVE      = -1011; (* no drive for indirect entry         *)
  501.    SQLE_RC_NONODE      = -1012; (* no nodename for remote entry      *)
  502.    SQLE_RC_NODB          = -1013; (* alias or database name not found  *)
  503.    SQLE_RC_NOMORE      =  1014; (* no more entries             *)
  504.    SQLE_RC_DB_RESTART =    -1015; (* database needs restart         *)
  505.    SQLE_RC_INVLLU      = -1016; (* invalid local_lu alias         *)
  506.    SQLE_RC_INVMODE      = -1017; (* invalid mode              *)
  507.    SQLE_RC_DUPNODE      = -1018; (* duplicate node name             *)
  508.    SQLE_RC_INVNODE      = -1019; (* invalid node name             *)
  509.  
  510.    SQLE_RC_MAXNODE      = -1020; (* node could not be cataloged         *)
  511.    SQLE_RC_NOTNODE      = -1021; (* nodename not found             *)
  512.    SQLE_RC_INSSYS      = -1022; (* insufficient system resources     *)
  513.    SQLE_RC_NOCONV      = -1023; (* communication conversation failed *)
  514.    SQLE_RC_NOSUDB      = -1024; (* no start using database issued    *)
  515.    SQLE_RC_DBACT       = -1025; (* databases are active          *)
  516.    SQLE_RC_INVSTRT      = -1026; (* DATABASE MANAGER already started  *)
  517.    SQLE_RC_NONODEDIR  =    -1027; (* node directory not found         *)
  518.    SQLE_RC_INVRLU      = -1029; (* partner lu not specified         *)
  519.  
  520.    SQLE_RC_MAXDB       = -1030; (* database directory full         *)
  521.    SQLE_RC_NODBDIR      = -1031; (* database directory not found      *)
  522.    SQLE_RC_NOSTARTG      = -1032; (* START DATABASE MANAGER not issued *)
  523.    SQLE_RC_DIRBUSY      = -1033; (* database directory being updated  *)
  524.    SQLE_RC_DBBAD       = -1034; (* database is damaged             *)
  525.    SQLE_RC_DB_INUSE      = -1035; (* database already in use         *)
  526.    SQLE_RC_FILEDB      = -1036; (* database file error             *)
  527.    SQLE_RC_FILENODE      = -1038; (* node directory file error         *)
  528.    SQLE_RC_FILEDIR      = -1039; (* directory file error          *)
  529.  
  530.    SQLE_RC_MAXAPPLS      = -1040; (* Maximum Number of applications    *)
  531.    SQLE_RC_MAXDBS      = -1041; (* Maximum Number of DB started      *)
  532.    SQLE_RC_SYSERR      = -1042; (* system error              *)
  533.    SQLE_RC_CATBOOT      = -1043; (* catalog bootstrap failure         *)
  534.    SQLE_RC_INTRRPT      = -1044; (* request interrupted by ctrl+break *)
  535.    SQLE_RC_INVINDIR      = -1045; (* invalid level of indirection      *)
  536.    SQLE_RC_INVAUTHID  = -1046; (* invalid userid             *)
  537.    SQLE_RC_APCONN      = -1047; (* appl already connect to another db*)
  538.    SQLE_RC_USEINVALID =    -1048; (* invalid use specified         *)
  539.    SQLE_RC_APPSERR      = -1049; (* appl state in error             *)
  540.  
  541.  
  542.  
  543.    SQLE_RC_UNCHOME      =-1050; (* cannot uncatalog home database    *)
  544.    SQLE_RC_NODIRDRV      =-1051; (* db direct. drive does not exist   *)
  545.    SQLE_RC_NODBDRV      =-1052; (* database drive does not exist     *)
  546.    SQLE_RC_INTBUSY      =-1053; (* interrupt already in progress     *)
  547.    SQLE_RC_COMMINP      =-1054; (* commit in progress - no int's     *)
  548.    SQLE_RC_ROLLINP      =-1055; (* rollback in progress - no int's   *)
  549.    SQLE_RC_MAXSCAN      =-1056; (* maximum allowable scans exceeded  *)
  550.    SQLE_RC_NODENTRY      = 1057; (* no entries in directory         *)
  551.    SQLE_RC_INVHAND      =-1058; (* invalid input handle          *)
  552.    SQLE_RC_NOSCAN      =-1059; (* open scan not issued          *)
  553.  
  554.    SQLE_RC_NOCONNECT  =-1060; (* user lacks connect privilege      *)
  555.    SQLE_RC_BADPATH      =-1062; (* database path not found         *)
  556.    SQLE_RC_START_OK      =-1063; (* startdbs successful             *)
  557.    SQLE_RC_STOP_OK      =-1064; (* stopdbs successful             *)
  558.    SQLE_RC_DB_BADBINDS= 1065; (* n utilities not bound         *)
  559.    SQLE_RC_NOMSG       =-1068; (* message file not found         *)
  560.    SQLE_RC_INVDROP      =-1069; (* DB invalid type for drop         *)
  561.  
  562.    SQLE_RC_INVDBNAME_PTR = -1070; (* Invalid Database Name ptr         *)
  563.    SQLE_RC_INVALIAS_PTR     = -1071; (* Invalid Alias pointer         *)
  564.    SQLE_RC_INVPSW_PTR     = -1074; (* Invalid Password pointer         *)
  565.    SQLE_RC_INVCOMM_PTR     = -1075; (* Invalid Comment pointer         *)
  566.    SQLE_RC_INVCNT_PTR     = -1076; (* Invalid Count pointer         *)
  567.    SQLE_RC_INVHAND_PTR     = -1077; (* Invalid Handle Pointer         *)
  568.    SQLE_RC_INVBUFF_PTR     = -1078; (* Invalid Buffer pointer         *)
  569.    SQLE_RC_INVNODE_PTR     = -1079; (* Invalid Node Pointer          *)
  570.  
  571.    SQLE_RC_INVLLU_PTR     = -1080; (* Invalid Local Lu Pointer         *)
  572.    SQLE_RC_INVRLU_PTR     = -1081; (* Invalid Remote Lu Pointer         *)
  573.    SQLE_RC_INVMODE_PTR     = -1082; (* Invalid Mode Pointer          *)
  574.    SQLE_RC_BAD_DBDB         = -1083; (* Bad Database Description Block    *)
  575.    SQLE_RC_KSEGSFAIL     = -1084; (* Cannot Allocate Kernel Segments   *)
  576.    SQLE_RC_APPHEAPFAIL     = -1085; (* Cannot Allocate Application heap  *)
  577.    SQLE_RC_OS2ERROR         = -1086; (* Unexpected OS/2 error         *)
  578.    SQLE_RC_BIND_LIST     =  1087; (* Bind list could not be opened     *)
  579.    SQLE_RC_BIND_ERROR     =  1088; (* Error occurred during bind         *)
  580.    SQLE_RC_BIND_INTRRPT     =  1089; (* Binding was interrupted         *)
  581.  
  582.    SQLE_RC_BAD_APP_REL     = -1090; (* Release number of APP is invalid  *)
  583.    SQLE_RC_BAD_DB_REL     = -1091; (* Release number of database bad    *)
  584.  
  585.    SQLE_RC_INSAUTH         = -1092; (* Authorization error             *)
  586.    SQLE_RC_NOLOGON         = -1093; (* User not logged on             *)
  587.    SQLE_RC_NDBUSY         = -1094; (* Node dir being updated         *)
  588.    SQLE_RC_MAX_NDSCAN     = -1095; (* Max node scans open             *)
  589.    SQLE_RC_REQTYPE         = -1096; (* Invalid type for requester node   *)
  590.    SQLE_RC_NODERR         = -1097; (* Node not found for remote db      *)
  591.    SQLE_RC_APCONN_SAME     = -1098; (* appl is already connected to db   *)
  592.    SQLE_RC_WRPROT_ERR     = -1099; (* write protect error on diskette   *)
  593.  
  594.  
  595.  
  596.    SQLE_RC_NODE_WARN      = -100; (* node not cataloged for database   *)
  597.    SQLE_RC_REMCONN_ERR      = -1101; (* remote communications error         *)
  598.    SQLE_RC_MIG_NODB          = -1102; (* No Database Name provided in Call *)
  599.    SQLE_RC_MIG_OK          = -1103; (* Migration Successful Message      *)
  600.    SQLE_RC_INVPROG_PTR      = -1104; (* Invalid program name pointer     *)
  601.    SQLE_RC_INV_SPDB          = -1105; (* Invalid Stop Using Database         *)
  602.    SQLE_RC_INVALID_PROC      = -1106; (* Program invalid             *)
  603.    SQLE_RC_INTRP_PROC      = -1107; (* Program interrupted             *)
  604.    SQLE_RC_SYSERR_PROC      = -1108; (* Unexpected I/O or OS/2 error      *)
  605.    SQLE_RC_NOFILE_PROC      = -1109; (* Program file not found         *)
  606.    SQLE_RC_ERROR_PROC      = -1110; (* Program error             *)
  607.    SQLE_RC_BADPGN_PROC      = -1111; (* Invalid DLL name format         *)
  608.    SQLE_RC_INSMEM_PROC      = -1112; (* No memory loading DLL         *)
  609.    SQLE_RC_SQLDA_DATATYPE = -1113; (* Data type in output SQLDA changed *)
  610.    SQLE_RC_SQLDA_LENGTH      = -1114; (* Data length in output SQLDA change*)
  611.    SQLE_RC_SQLDA_VARS      = -1115; (* Number of sqlvars changed in SQLDA*)
  612.    SQLE_RC_BKP_PEND          = -1116; (* Backup pending             *)
  613.    SQLE_RC_ROLLFWD_PEND      = -1117; (* Roll forward pending          *)
  614.    SQLE_RC_BKP_INPROG      = -1118; (* need to rerun the Backup process  *)
  615.    SQLE_RC_RST_INPROG      = -1119; (* need to rerun the Restore process *)
  616.    SQLE_RC_BR_INPROG      = -1120; (* need to rerun either Backup or    *)
  617.  
  618.    SQLE_RC_INVNODESTR_PTR  = -1121; (* Node strucutre ptr invalid         *)
  619.    SQLE_RC_INVPROTOCOL_PTR = -1122; (* Protocol strucutre ptr invalid    *)
  620.    SQLE_RC_INVPROTOCOL       = -1123; (* Invalid protocol type         *)
  621.    SQLE_RC_INVRNNAME       = -1124; (* Invalid remote workstation name   *)
  622.    SQLE_RC_INVADAPTER       = -1125; (* Invalid adapter number         *)
  623.    SQLE_RC_INVNETID           = -1126; (* Invalid network id             *)
  624.    SQLE_RC_INVPLU           = -1127; (* Invalid real partner LU name      *)
  625.  
  626.    SQLE_RC_INVOS_OBJ       = -1200; (* invalid object specified         *)
  627.    SQLE_RC_INVOS_STAT       = -1201; (* invalid status specified         *)
  628.    SQLE_RC_INVOS_NOSTAT       = -1202; (* status has not been collected     *)
  629.    SQLE_RC_INVOS_NOUSER       = -1203; (* no users connected to database    *)
  630.    SQLE_RC_UNSUPP_CODEPG   = -1204; (* active codepage is not supported  *)
  631.    SQLE_RC_NOUEXIT           = -1267; (* SQLUEXIT file not found         *)
  632.  
  633.    SQLE_RC_FILEDCS           = -1310; (* DCS Directory file access error   *)
  634.    SQLE_RC_DCSDIR_NF       = -1311; (* DCS Directory not found         *)
  635.    SQLE_RC_NO_ENTRY           = -1312; (* DCS Directory is empty         *)
  636.    SQLE_RC_MAX_ENTRY       = -1313; (* DCS Directory is full         *)
  637.    SQLE_RC_INVENTRY_PTR       = -1314; (* Entry parameter pointer invalid   *)
  638.    SQLE_RC_INVLDB           = -1315; (* LDB name has invalid chars         *)
  639.    SQLE_RC_LDB_NF           = -1316; (* DCS Directory entry not found     *)
  640.    SQLE_RC_DUPLDB           = -1317; (* DCS Directory duplicate entry     *)
  641.    SQLE_RC_INVLENGTH       = -1318; (* Invalid element length         *)
  642.    SQLE_RC_ENTRYNOT_COL       = -1319; (* Entries have not been collected   *)
  643.    SQLE_RC_GDBUSY           = -1320; (* Cannot access DCS Dir at this time*)
  644.    SQLE_RC_INVSTRUCT_ID       = -1321; (* Invalid structure ID          *)
  645.    SQLE_RC_DRDANSP           = -1325; (* Remote function not supported     *)
  646.  
  647.  
  648. END SQLEnv.