home *** CD-ROM | disk | FTP | other *** search
/ Datatid 1999 #6 / Datatid_1999-06.iso / internet / Tango352Promo / P.SQL / PTKPKG.1 / SQLAPIP.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-01-03  |  30.4 KB  |  993 lines

  1. {*************************************************************************
  2. **
  3. **  Copyright 1982-1997 Pervasive Software Inc. All Rights Reserved
  4. **
  5. *************************************************************************}
  6. {***********************************************************************
  7.    SQLAPIP.PAS
  8.       This is the Scalable SQL Pascal unit for DOS Protected Mode to be
  9.       called by Borland Pascal for DOS or Borland Turbo Pascal for DOS.
  10.  
  11.    Additional information for using Borland 16-Bit
  12.    protected mode is provided below.
  13.  
  14.    1. SYSTEM REQUIREMENTS
  15.    ----------------------
  16.    You must have Borland Pascal with Objects, Version 7.0 installed
  17.    on your system for application development and you will need access
  18.    to Borland's protected mode components (RTM.EXE and DPMI16BI.OVL)
  19.    for application execution.
  20.  
  21.    For more detailed information on DOS protected mode programming,
  22.    refer to Chapter 17, Programming in DOS protected mode, in Borland's
  23.    Pascal with Objects, Version 7.0, Language Guide.
  24.  
  25.    2. NEEDED MODULES
  26.    -----------------
  27.    SQL16B.DLL   -  Scalable SQL DOS protected mode interface
  28.                    16-bit dynamic link library.
  29.  
  30.    SQLAPIP.PAS  -  Scalable SQL DOS protected mode function prototypes.
  31.                    You will need to compile this into a .tpp file.
  32.  
  33.    SQLSAMPP.PAS -  Scalable SQL DOS protected mode sample Pascal
  34.                    program.
  35.  
  36.    SQLSAMPP.MAK -  Scalable SQL DOS protected mode sample Pascal
  37.                    program makefile.
  38.  
  39.    Copy these files from the installation diskette to your development
  40.    directory.
  41.  
  42.    The SQL sample files (SQLSAMPP.PAS and SQLSAMPP.MAK) provide
  43.    an example of how to create a DOS protected mode application.
  44.  
  45.    3. APPLICATION DEVELOPMENT
  46.    --------------------------
  47.    If you are developing a Scalable SQL DOS protected mode application,
  48.    the following steps may help you.
  49.  
  50.    a. Make sure that the directory pathanme to Borland's protected mode
  51.       components (RTM.EXE and DPMI16BI.OVL) and /bin directory are
  52.       on your path.
  53.  
  54.    b. Make sure that your Pascal application references the prototype
  55.       unit by including the file name in you USES section as follows
  56.  
  57.        USES SQLAPIP;
  58.  
  59.    c. Make sure that the SQL16B.DLL and SQLAPIP.TPP files are in your
  60.       current working directory or their directory pathnames are on
  61.       your path.
  62.  
  63.   d. Compile your application as protected mode by specifying the /cp
  64.      compiler switch as follows
  65.  
  66.        bcp /cp <application.PAS>
  67.  
  68.    If you are developing a Scalable SQL DOS protected mode application
  69.    from a real mode application you must first delete any reference to
  70.    the SQLAPID unit in your application USES section.  Follow steps
  71.    'a' through 'd', above, to complete the effort.
  72. ************************************************************************}
  73.  
  74. UNIT sqlapip;
  75.  
  76. {***********************************************************************
  77.    PASCAL INTERFACE SECTION
  78. ************************************************************************}
  79. INTERFACE
  80. {***********************************************************************
  81.    SESSION MANAGEMENT PRIMITIVES
  82.       The following primitives are required by applications which
  83.       want to use multiple SQL logins:
  84.          xGetSessionID
  85.          xPutSessionID
  86. ************************************************************************}
  87.    FUNCTION xGetSessionID(
  88.                VAR session : INTEGER ) : INTEGER;
  89.  
  90.    FUNCTION xPutSessionID(
  91.                session : INTEGER ) : INTEGER;
  92.  
  93. {***********************************************************************
  94.    MISCELLANEOUS FUNCTIONS
  95.       SQLGetCountDatabaseNames
  96.       SQLGetDatabaseNames
  97.       SQLUnloadDBNames
  98. ************************************************************************}
  99. FUNCTION SQLGetCountDatabaseNames(
  100.            VAR iCount : INTEGER ) : INTEGER;
  101.  
  102. FUNCTION SQLGetDatabaseNames(
  103.            VAR iBufLen  : INTEGER;
  104.            VAR bDataBuf : CHAR ) : INTEGER;
  105.  
  106. FUNCTION SQLUnloadDBNAMES(
  107.            iReserved : INTEGER ) : INTEGER;
  108.  
  109. {***********************************************************************
  110.    SQL-LEVEL FUNCTIONS
  111.       XQLCursor     XQLFetch    XQLSPUtility   XQLVersion
  112.       XQLCompile    XQLFormat   XQLStatus      XQLConvert
  113.       XQLDescribe   XQLFree     XQLStop        XQLValidate
  114.       XQLExec       XQLLogin    XQLSubst       XQLMask
  115.                     XQLLogout
  116. ***********************************************************************}
  117.    FUNCTION XQLCursor(
  118.                VAR CURSOR : INTEGER ) : INTEGER;
  119.  
  120.    FUNCTION XQLCompile(
  121.                CURSOR    : INTEGER;
  122.            VAR LEN       : INTEGER;
  123.            VAR STMNT )   : INTEGER;
  124.  
  125.    FUNCTION XQLDescribe(
  126.                CURSOR  : INTEGER;
  127.                POS     : INTEGER;
  128.            VAR DTYPE   : INTEGER;
  129.            VAR SIZE    : INTEGER;
  130.            VAR DEC     : INTEGER;
  131.            VAR DSIZE   : INTEGER;
  132.            VAR NLENGTH : INTEGER;
  133.            VAR NAME    : CHAR ) : INTEGER;
  134.  
  135.     FUNCTION XQLExec(
  136.                 CURSOR : INTEGER ) : INTEGER;
  137.  
  138.    FUNCTION XQLFetch(
  139.                CURSOR : INTEGER;
  140.                OP     : INTEGER;
  141.            VAR DLEN   : INTEGER;
  142.            VAR BUF;
  143.            VAR SEL    : LONGINT;
  144.                ASCII  : INTEGER;
  145.                SPACES : INTEGER ) : INTEGER;
  146.  
  147.    FUNCTION XQLFormat(
  148.                CURSOR : INTEGER;
  149.                POS    : INTEGER;
  150.                LENGTH : INTEGER;
  151.            VAR MASKBUF ) : INTEGER;
  152.  
  153.    FUNCTION XQLFree(
  154.                CURSOR : INTEGER ) : INTEGER;
  155.  
  156.    FUNCTION XQLLogin(
  157.                VAR USERID;
  158.                VAR PSWDNAME;
  159.                VAR DD;
  160.                VAR DATAPATH;
  161.                VAR SRES;
  162.                    iFeaturesUsed : INTEGER ) : INTEGER;
  163.  
  164.    FUNCTION XQLLogout : INTEGER;
  165.  
  166.    FUNCTION XQLSPUtility(
  167.                CURSOR    : INTEGER;
  168.                OPTION    : INTEGER;
  169.            VAR STMNTCNT  : INTEGER;
  170.            VAR STMNTEXEC : INTEGER;
  171.            VAR BUFLEN    : INTEGER;
  172.            VAR STATBUF ) : INTEGER;
  173.  
  174.    FUNCTION XQLStatus(
  175.                CURSOR : INTEGER;
  176.                OPTION : INTEGER;
  177.            VAR STATBUF ) : INTEGER;
  178.  
  179.    FUNCTION XQLStop : INTEGER;
  180.  
  181.    FUNCTION XQLSubst(
  182.                CURSOR  : INTEGER;
  183.                SCOUNT  : INTEGER;
  184.                NAMELEN : INTEGER;
  185.            VAR VARNAME;
  186.                TEXTLEN : INTEGER;
  187.            VAR VARTEXT ) : INTEGER;
  188.  
  189.    FUNCTION XQLVersion(
  190.                VAR VBUFFER ) : INTEGER;
  191.  
  192.    FUNCTION XQLConvert(
  193.                OPTION : INTEGER;
  194.                DTYPE  : INTEGER;
  195.                SIZE   : INTEGER;
  196.                DEC    : INTEGER;
  197.                DSIZE  : INTEGER;
  198.            VAR VALUE;
  199.            VAR RETVALUE;
  200.            VAR MASK;
  201.                JUST : INTEGER ) : INTEGER;
  202.  
  203.    FUNCTION XQLValidate(
  204.                VAR COUNT : INTEGER;
  205.                VAR FIELDNAME;
  206.                    BUFLEN : INTEGER;
  207.                VAR DATA ) : INTEGER;
  208.  
  209.    FUNCTION XQLMask(
  210.                OPTION : INTEGER;
  211.                DTYPE  : INTEGER;
  212.                SIZE   : INTEGER;
  213.                DEC    : INTEGER;
  214.            VAR MLEN   : INTEGER;
  215.            VAR MASK ) : INTEGER;
  216.  
  217. {***********************************************************************
  218.    HISTORICAL RELATIONAL PRIMITIVES
  219.       The following functions will be phased out over time.  They
  220.       are included here to support existing applications.  New applications
  221.       should not use these functions.
  222.  
  223.       xCompute    xOrder         xDD            xAccess
  224.       xDescribe   xRemall        xDDAttr        xPassword
  225.       xMovefld    xRemove        xDDModify      xSecurity
  226.       xFetch      xReset         xDDCreate      xUser
  227.       xField      xRestrict      xDDDrop        xChar
  228.       xFree       xStop          xDDField       xVersion
  229.       xInsert     xTrans         xDDFile        xStatus
  230.       xJoin       xStore         xDDIndex       xConvert
  231.       xLogin      xRecall        xDDPath        xValidate
  232.       xLogout     xUpdate        xDDView        xMask
  233.       xNew        xUpdall
  234. ***********************************************************************}
  235.    FUNCTION xCompute(
  236.                VHANDLE   : INTEGER;
  237.            VAR FNAME;
  238.                DATA_TYPE : INTEGER;
  239.                DATA_SIZE : INTEGER;
  240.                DEC       : INTEGER;
  241.            VAR ELEN      : INTEGER;
  242.            VAR EBUF )    : INTEGER;
  243.  
  244.    FUNCTION xDescribe(
  245.                VHANDLE : INTEGER;
  246.                SUBF    : INTEGER;
  247.            VAR DLEN    : INTEGER;
  248.                POS     : INTEGER;
  249.            VAR CNT     : INTEGER;
  250.            VAR BUF )   : INTEGER;
  251.  
  252.    FUNCTION xMovefld(
  253.                VHANDLE : INTEGER;
  254.                FPOS    : INTEGER;
  255.                TPOS    : INTEGER ) : INTEGER;
  256.  
  257.    FUNCTION xFetch(
  258.                VHANDLE : INTEGER;
  259.            VAR DLEN    : INTEGER;
  260.                FETCH_OP: INTEGER;
  261.            VAR SELCNT  : LONGINT;
  262.            VAR REJCNT  : LONGINT;
  263.            VAR BUF )   : INTEGER;
  264.  
  265.    FUNCTION xField(
  266.                VHANDLE : INTEGER;
  267.                SUBF    : INTEGER;
  268.                POS     : INTEGER;
  269.            VAR CNT     : INTEGER;
  270.            VAR BUF )   : INTEGER;
  271.  
  272.    FUNCTION xFree(
  273.                VHANDLE : INTEGER) : INTEGER;
  274.  
  275.    FUNCTION xInsert(
  276.                VHANDLE  : INTEGER;
  277.            VAR COUNT    : INTEGER;
  278.            VAR FILES;
  279.            VAR EDITCNT  : LONGINT;
  280.            VAR BUFFER ) : INTEGER;
  281.  
  282.    FUNCTION xJoin(
  283.                VHANDLE  : INTEGER;
  284.            VAR NEWFILE;
  285.            VAR OWNERNAME;
  286.                JTYPE    : INTEGER;
  287.                VCOUNT   : INTEGER;
  288.            VAR VNAMES;
  289.                NCOUNT   : INTEGER;
  290.            VAR NNAMES ) : INTEGER;
  291.  
  292.    FUNCTION xLogin(
  293.            VAR USERID;
  294.            VAR PASSWORD;
  295.            VAR DPATH;
  296.            VAR FPATH;
  297.            VAR SRES;
  298.                iFeaturesUsed : INTEGER ) : INTEGER;
  299.  
  300.    FUNCTION xLogout : INTEGER;
  301.  
  302.    FUNCTION xNew(
  303.            VAR VHANDLE : INTEGER;
  304.            VAR FNAME;
  305.            VAR OWNERNAME;
  306.                MODE : INTEGER ) : INTEGER;
  307.  
  308.    FUNCTION xOrder(
  309.                VHANDLE : INTEGER;
  310.                CNT     : INTEGER;
  311.            VAR BUF )   : INTEGER;
  312.  
  313.    FUNCTION xRemall(
  314.                VHANDLE : INTEGER;
  315.            VAR COUNT   : INTEGER;
  316.            VAR FILES;
  317.                ROP     : INTEGER;
  318.            VAR SELCNT  : LONGINT;
  319.                REJCNT  : LONGINT ) : INTEGER;
  320.  
  321.    FUNCTION xRemove(
  322.                VHANDLE : INTEGER;
  323.            VAR COUNT   : INTEGER;
  324.            VAR FILES;
  325.            VAR EDITCNT : LONGINT ) : INTEGER;
  326.  
  327.    FUNCTION xReset(
  328.            VAR SRESERVED ) : INTEGER;
  329.  
  330.    FUNCTION xRestrict(
  331.                VHANDLE : INTEGER;
  332.                NEW_EXP : INTEGER;
  333.            VAR ELEN    : INTEGER;
  334.            VAR EBUF )  : INTEGER;
  335.  
  336.    FUNCTION xStop : INTEGER;
  337.  
  338.    FUNCTION xTrans(
  339.                OPERATION : INTEGER ) : INTEGER;
  340.  
  341.    FUNCTION xStore(
  342.                VHANDLE : INTEGER;
  343.            VAR VNAME;
  344.                BLEN    : INTEGER;
  345.            VAR VBUF )  : INTEGER;
  346.  
  347.    FUNCTION xRecall(
  348.            VAR VHANDLE : INTEGER;
  349.            VAR VNAME;
  350.                ONUM    : INTEGER;
  351.            VAR OLST;
  352.                MODE    : INTEGER;
  353.            VAR BLEN    : INTEGER;
  354.            VAR VBUF )  : INTEGER;
  355.  
  356.    FUNCTION xUpdate(
  357.                VHANDLE  : INTEGER;
  358.            VAR COUNT    : INTEGER;
  359.            VAR FILES;
  360.            VAR EDITCNT  : LONGINT;
  361.            VAR BUFFER ) : INTEGER;
  362.  
  363.    FUNCTION xUpdall(
  364.                VHANDLE   : INTEGER;
  365.            VAR UPDCOUNT  : INTEGER;
  366.            VAR FILES;
  367.                UOP       : INTEGER;
  368.            VAR SELCNT    : LONGINT;
  369.            VAR REJCNT    : LONGINT;
  370.                COLCNT    : INTEGER;
  371.            VAR RESULT;
  372.            VAR COMPARE ) : INTEGER;
  373.  
  374.    FUNCTION xDD(
  375.            VAR DIRPATH;
  376.            FNCTION : INTEGER ) : INTEGER;
  377.  
  378.    FUNCTION xDDAttr(
  379.                OPTION    : INTEGER;
  380.             VAR FLDNAME;
  381.                 ATTRIB   : INTEGER;
  382.             VAR BSIZE    : INTEGER;
  383.             VAR ABUF )   : INTEGER;
  384.  
  385.    FUNCTION xDDModify(
  386.                OPTION      : INTEGER;
  387.            VAR FNAME;
  388.                CREATE_FILE : INTEGER;
  389.            VAR PATH;
  390.            VAR OWNERNAME;
  391.                OACC        : INTEGER;
  392.                FLDCOUNT    : INTEGER;
  393.            VAR FLDLIST;
  394.                KEYCOUNT    : INTEGER;
  395.            VAR KLIST )     : INTEGER;
  396.  
  397.    FUNCTION xDDCreate(
  398.                OPTION      : INTEGER;
  399.            VAR FNAME;
  400.                CREATE_FILE : INTEGER;
  401.            VAR PATH;
  402.            VAR OWNERNAME;
  403.                OACC        : INTEGER;
  404.                FLDCOUNT    : INTEGER;
  405.            VAR FLDLIST;
  406.                KEYCOUNT    : INTEGER;
  407.            VAR KLIST;
  408.                BLEN        : INTEGER;
  409.            VAR CRPARMS )   : INTEGER;
  410.  
  411.    FUNCTION xDDDrop(
  412.            VAR FILENAME;
  413.                FILETYPE   : INTEGER;
  414.                DELETEPATH : INTEGER ) : INTEGER;
  415.  
  416.     FUNCTION xDDField(
  417.                 OPTION : INTEGER;
  418.             VAR FCOUNT : INTEGER;
  419.             VAR FBUF;
  420.             VAR BLEN   : INTEGER;
  421.             VAR OBUF ) : INTEGER;
  422.  
  423.    FUNCTION xDDFile(
  424.                OPTION : INTEGER;
  425.            VAR FCOUNT : INTEGER;
  426.            VAR FBUF;
  427.            VAR BLEN   : INTEGER;
  428.            VAR OBUF ) : INTEGER;
  429.  
  430.    FUNCTION xDDIndex(
  431.                OPTION : INTEGER;
  432.            VAR FCOUNT : INTEGER;
  433.            VAR FBUF;
  434.            VAR BLEN   : INTEGER;
  435.            VAR OBUF ) : INTEGER;
  436.  
  437.    FUNCTION xDDPath(
  438.                DIRTYPE    : INTEGER;
  439.            VAR PATHNAME ) : INTEGER;
  440.  
  441.    FUNCTION xDDView(
  442.            VAR FCOUNT : INTEGER;
  443.            VAR VNAME;
  444.            VAR BLEN   : INTEGER;
  445.            VAR OBUF ) : INTEGER;
  446.  
  447.    FUNCTION xAccess(
  448.            VAR MASTERPSWD;
  449.            VAR UNAME;
  450.                OPTION      : INTEGER;
  451.                ARIGHTS     : INTEGER;
  452.            VAR FNAME;
  453.            VAR FCOUNT      : INTEGER;
  454.            VAR FIELDNAME;
  455.            VAR BLEN        : INTEGER;
  456.            VAR OBUF )      : INTEGER;
  457.  
  458.    FUNCTION xPassword(
  459.            VAR UNAME;
  460.            VAR PASSWORD ) : INTEGER;
  461.  
  462.    FUNCTION xSecurity(
  463.            VAR MPSWD;
  464.            FLAG : INTEGER ) : INTEGER;
  465.  
  466.    FUNCTION xUser(
  467.            VAR MASTERPSWD;
  468.                OPTION      : INTEGER;
  469.            VAR UNAME;
  470.            VAR PASSWORD;
  471.                UGRIGHTS    : INTEGER;
  472.            VAR FCOUNT      : INTEGER;
  473.            VAR BLEN        : INTEGER;
  474.            VAR UBUF )      : INTEGER;
  475.  
  476.    FUNCTION xChar(
  477.                CHARFCN  : INTEGER;
  478.                CHARTYPE : INTEGER;
  479.            VAR VALUE  ) : INTEGER;
  480.  
  481.    FUNCTION xVersion(
  482.            VAR BUFFER ) : INTEGER;
  483.  
  484.    FUNCTION xStatus(
  485.                VHANDLE   : INTEGER;
  486.                SUBFUNC   : INTEGER;
  487.            VAR LEN       : INTEGER;
  488.            VAR STATBUF ) : INTEGER;
  489.  
  490.    FUNCTION xConvert(
  491.                OPTION     : INTEGER;
  492.                DTYPE      : INTEGER;
  493.                SIZE       : INTEGER;
  494.                DEC        : INTEGER;
  495.                DSIZE      : INTEGER;
  496.            VAR VALUE;
  497.            VAR RETVALUE;
  498.            VAR MASK;
  499.                JUST       : INTEGER ) : INTEGER;
  500.  
  501.    FUNCTION xValidate(
  502.            VAR COUNT       : INTEGER;
  503.            VAR FIELDNAME;
  504.                BUFLEN      : INTEGER;
  505.            VAR DATA )      : INTEGER;
  506.  
  507.    FUNCTION xMask(
  508.                OPTION : INTEGER;
  509.                DTYPE  : INTEGER;
  510.                SIZE   : INTEGER;
  511.                DEC    : INTEGER;
  512.            VAR MLEN   : INTEGER;
  513.            VAR MASK ) : INTEGER;
  514.  
  515. {***********************************************************************
  516.    PASCAL IMPLEMENTATION SECTION
  517. ************************************************************************}
  518. IMPLEMENTATION
  519. {***********************************************************************
  520.    SESSION MANAGEMENT PRIMITIVES
  521. ************************************************************************}
  522.    FUNCTION xGetSessionID(
  523.                VAR session : INTEGER ) : INTEGER;
  524.                external 'SQL16B' name 'XGETSESSIONID';
  525.  
  526.    FUNCTION xPutSessionID(
  527.                session : INTEGER ) : INTEGER;
  528.                external 'SQL16B' name 'XPUTSESSIONID';
  529.  
  530. {***********************************************************************
  531.    MISCELLANEOUS FUNCTIONS
  532. ************************************************************************}
  533. FUNCTION SQLGetCountDatabaseNames(
  534.            VAR iCount : INTEGER ) : INTEGER;
  535.            external 'SQL16B' name 'SQLGETCOUNTDATABASENAMES';
  536.  
  537. FUNCTION SQLGetDatabaseNames(
  538.            VAR iBufLen  : INTEGER;
  539.            VAR bDataBuf : CHAR ) : INTEGER;
  540.            external 'SQL16B' name 'SQLGETDATABASENAMES';
  541.  
  542. FUNCTION SQLUnloadDBNAMES(
  543.            iReserved : INTEGER ) : INTEGER;
  544.            external 'SQL16B' name 'SQLUNLOADDBNAMES';
  545.  
  546. {************************************************************************
  547.     SQL-Level Functions Implementation
  548.  ************************************************************************}
  549.    FUNCTION XQLCursor(
  550.                VAR CURSOR : INTEGER ) : INTEGER;
  551.                external 'SQL16B' name 'XQLCURSOR';
  552.  
  553.    FUNCTION XQLCompile(
  554.                CURSOR    : INTEGER;
  555.            VAR LEN       : INTEGER;
  556.            VAR STMNT )   : INTEGER;
  557.                external 'SQL16B' name 'XQLCOMPILE';
  558.  
  559.    FUNCTION XQLDescribe(
  560.                CURSOR  : INTEGER;
  561.                POS     : INTEGER;
  562.            VAR DTYPE   : INTEGER;
  563.            VAR SIZE    : INTEGER;
  564.            VAR DEC     : INTEGER;
  565.            VAR DSIZE   : INTEGER;
  566.            VAR NLENGTH : INTEGER;
  567.            VAR NAME    : CHAR ) : INTEGER;
  568.                external 'SQL16B' name 'XQLDESCRIBE';
  569.  
  570.     FUNCTION XQLExec(
  571.                 CURSOR : INTEGER ) : INTEGER;
  572.                 external 'SQL16B' name 'XQLEXEC';
  573.  
  574.    FUNCTION XQLFetch(
  575.                CURSOR : INTEGER;
  576.                OP     : INTEGER;
  577.            VAR DLEN   : INTEGER;
  578.            VAR BUF;
  579.            VAR SEL    : LONGINT;
  580.                ASCII  : INTEGER;
  581.                SPACES : INTEGER ) : INTEGER;
  582.                external 'SQL16B' name 'XQLFETCH';
  583.  
  584.    FUNCTION XQLFormat(
  585.                CURSOR : INTEGER;
  586.                POS    : INTEGER;
  587.                LENGTH : INTEGER;
  588.            VAR MASKBUF ) : INTEGER;
  589.                external 'SQL16B' name 'XQLFORMAT';
  590.  
  591.    FUNCTION XQLFree(
  592.                CURSOR : INTEGER ) : INTEGER;
  593.                external 'SQL16B' name 'XQLFREE';
  594.  
  595.    FUNCTION XQLLogin(
  596.                VAR USERID;
  597.                VAR PSWDNAME;
  598.                VAR DD;
  599.                VAR DATAPATH;
  600.                VAR SRES;
  601.                    iFeaturesUsed : INTEGER ) : INTEGER;
  602.                external 'SQL16B' name 'XQLLOGIN';
  603.  
  604.    FUNCTION XQLLogout : INTEGER;
  605.                external 'SQL16B' name 'XQLLOGOUT';
  606.  
  607.    FUNCTION XQLSPUtility(
  608.                CURSOR    : INTEGER;
  609.                OPTION    : INTEGER;
  610.            VAR STMNTCNT  : INTEGER;
  611.            VAR STMNTEXEC : INTEGER;
  612.            VAR BUFLEN    : INTEGER;
  613.            VAR STATBUF ) : INTEGER;
  614.                external 'SQL16B' name 'XQLSPUTILITY';
  615.  
  616.    FUNCTION XQLStatus(
  617.                CURSOR : INTEGER;
  618.                OPTION : INTEGER;
  619.            VAR STATBUF ) : INTEGER;
  620.                external 'SQL16B' name 'XQLSTATUS';
  621.  
  622.    FUNCTION XQLStop : INTEGER;
  623.                external 'SQL16B' name 'XQLSTOP';
  624.  
  625.    FUNCTION XQLSubst(
  626.                CURSOR  : INTEGER;
  627.                SCOUNT  : INTEGER;
  628.                NAMELEN : INTEGER;
  629.            VAR VARNAME;
  630.                TEXTLEN : INTEGER;
  631.            VAR VARTEXT ) : INTEGER;
  632.                external 'SQL16B' name 'XQLSUBST';
  633.  
  634.    FUNCTION XQLVersion(
  635.                VAR VBUFFER ) : INTEGER;
  636.                external 'SQL16B' name 'XQLVERSION';
  637.  
  638.    FUNCTION XQLConvert(
  639.                OPTION : INTEGER;
  640.                DTYPE  : INTEGER;
  641.                SIZE   : INTEGER;
  642.                DEC    : INTEGER;
  643.                DSIZE  : INTEGER;
  644.            VAR VALUE;
  645.            VAR RETVALUE;
  646.            VAR MASK;
  647.                JUST : INTEGER ) : INTEGER;
  648.                external 'SQL16B' name 'XQLCONVERT';
  649.  
  650.    FUNCTION XQLValidate(
  651.                VAR COUNT : INTEGER;
  652.                VAR FIELDNAME;
  653.                    BUFLEN : INTEGER;
  654.                VAR DATA ) : INTEGER;
  655.                external 'SQL16B' name 'XQLVALIDATE';
  656.  
  657.    FUNCTION XQLMask(
  658.                OPTION : INTEGER;
  659.                DTYPE  : INTEGER;
  660.                SIZE   : INTEGER;
  661.                DEC    : INTEGER;
  662.            VAR MLEN   : INTEGER;
  663.            VAR MASK ) : INTEGER;
  664.                external 'SQL16B' name 'XQLMASK';
  665.  
  666. {************************************************************************
  667.    Primitive-Level Functions Implementation
  668.  ************************************************************************}
  669.    FUNCTION xCompute(
  670.                VHANDLE   : INTEGER;
  671.            VAR FNAME;
  672.                DATA_TYPE : INTEGER;
  673.                DATA_SIZE : INTEGER;
  674.                DEC       : INTEGER;
  675.            VAR ELEN      : INTEGER;
  676.            VAR EBUF )    : INTEGER;
  677.                external 'SQL16B' name 'XCOMPUTE';
  678.  
  679.    FUNCTION xDescribe(
  680.                VHANDLE : INTEGER;
  681.                SUBF    : INTEGER;
  682.            VAR DLEN    : INTEGER;
  683.                POS     : INTEGER;
  684.            VAR CNT     : INTEGER;
  685.            VAR BUF )   : INTEGER;
  686.                external 'SQL16B' name 'XDESCRIBE';
  687.  
  688.    FUNCTION xMovefld(
  689.                VHANDLE : INTEGER;
  690.                FPOS    : INTEGER;
  691.                TPOS    : INTEGER ) : INTEGER;
  692.                external 'SQL16B' name 'XMOVEFLD';
  693.  
  694.    FUNCTION xFetch(
  695.                VHANDLE : INTEGER;
  696.            VAR DLEN    : INTEGER;
  697.                FETCH_OP: INTEGER;
  698.            VAR SELCNT  : LONGINT;
  699.            VAR REJCNT  : LONGINT;
  700.            VAR BUF )   : INTEGER;
  701.                external 'SQL16B' name 'XFETCH';
  702.  
  703.    FUNCTION xField(
  704.                VHANDLE : INTEGER;
  705.                SUBF    : INTEGER;
  706.                POS     : INTEGER;
  707.            VAR CNT     : INTEGER;
  708.            VAR BUF )   : INTEGER;
  709.                external 'SQL16B' name 'XFIELD';
  710.  
  711.    FUNCTION xFree(
  712.                VHANDLE : INTEGER) : INTEGER;
  713.                external 'SQL16B' name 'XFREE';
  714.  
  715.    FUNCTION xInsert(
  716.                VHANDLE  : INTEGER;
  717.            VAR COUNT    : INTEGER;
  718.            VAR FILES;
  719.            VAR EDITCNT  : LONGINT;
  720.            VAR BUFFER ) : INTEGER;
  721.                external 'SQL16B' name 'XINSERT';
  722.  
  723.    FUNCTION xJoin(
  724.                VHANDLE  : INTEGER;
  725.            VAR NEWFILE;
  726.            VAR OWNERNAME;
  727.                JTYPE    : INTEGER;
  728.                VCOUNT   : INTEGER;
  729.            VAR VNAMES;
  730.                NCOUNT   : INTEGER;
  731.            VAR NNAMES ) : INTEGER;
  732.                external 'SQL16B' name 'XJOIN';
  733.  
  734.    FUNCTION xLogin(
  735.            VAR USERID;
  736.            VAR PASSWORD;
  737.            VAR DPATH;
  738.            VAR FPATH;
  739.            VAR SRES;
  740.                iFeaturesUsed : INTEGER ) : INTEGER;
  741.             external 'SQL16B' name 'XLOGIN';
  742.  
  743.    FUNCTION xLogout : INTEGER;
  744.             external 'SQL16B' name 'XLOGOUT';
  745.  
  746.    FUNCTION xNew(
  747.            VAR VHANDLE : INTEGER;
  748.            VAR FNAME;
  749.            VAR OWNERNAME;
  750.                MODE : INTEGER ) : INTEGER;
  751.                external 'SQL16B' name 'XNEW';
  752.  
  753.    FUNCTION xOrder(
  754.                VHANDLE : INTEGER;
  755.                CNT     : INTEGER;
  756.            VAR BUF )   : INTEGER;
  757.                external 'SQL16B' name 'XORDER';
  758.  
  759.    FUNCTION xRemall(
  760.                VHANDLE : INTEGER;
  761.            VAR COUNT   : INTEGER;
  762.            VAR FILES;
  763.                ROP     : INTEGER;
  764.            VAR SELCNT  : LONGINT;
  765.                REJCNT  : LONGINT ) : INTEGER;
  766.                external 'SQL16B' name 'XREMALL';
  767.  
  768.    FUNCTION xRemove(
  769.                VHANDLE : INTEGER;
  770.            VAR COUNT   : INTEGER;
  771.            VAR FILES;
  772.            VAR EDITCNT : LONGINT ) : INTEGER;
  773.                external 'SQL16B' name 'XREMOVE';
  774.  
  775.    FUNCTION xReset(
  776.            VAR SRESERVED ) : INTEGER;
  777.                external 'SQL16B' name 'XRESET';
  778.  
  779.    FUNCTION xRestrict(
  780.                VHANDLE : INTEGER;
  781.                NEW_EXP : INTEGER;
  782.            VAR ELEN    : INTEGER;
  783.            VAR EBUF )  : INTEGER;
  784.                external 'SQL16B' name 'XRESTRICT';
  785.  
  786.    FUNCTION xStop : INTEGER;
  787.                external 'SQL16B' name 'XSTOP';
  788.  
  789.    FUNCTION xTrans(
  790.                OPERATION : INTEGER ) : INTEGER;
  791.                external 'SQL16B' name 'XTRANS';
  792.  
  793.    FUNCTION xStore(
  794.                VHANDLE : INTEGER;
  795.            VAR VNAME;
  796.                BLEN    : INTEGER;
  797.            VAR VBUF )  : INTEGER;
  798.                external 'SQL16B' name 'XSTORE';
  799.  
  800.    FUNCTION xRecall(
  801.            VAR VHANDLE : INTEGER;
  802.            VAR VNAME;
  803.                ONUM    : INTEGER;
  804.            VAR OLST;
  805.                MODE    : INTEGER;
  806.            VAR BLEN    : INTEGER;
  807.            VAR VBUF )  : INTEGER;
  808.                external 'SQL16B' name 'XRECALL';
  809.  
  810.    FUNCTION xUpdate(
  811.                VHANDLE  : INTEGER;
  812.            VAR COUNT    : INTEGER;
  813.            VAR FILES;
  814.            VAR EDITCNT  : LONGINT;
  815.            VAR BUFFER ) : INTEGER;
  816.                external 'SQL16B' name 'XUPDATE';
  817.  
  818.    FUNCTION xUpdall(
  819.                VHANDLE   : INTEGER;
  820.            VAR UPDCOUNT  : INTEGER;
  821.            VAR FILES;
  822.                UOP       : INTEGER;
  823.            VAR SELCNT    : LONGINT;
  824.            VAR REJCNT    : LONGINT;
  825.                COLCNT    : INTEGER;
  826.            VAR RESULT;
  827.            VAR COMPARE ) : INTEGER;
  828.                external 'SQL16B' name 'XUPDALL';
  829.  
  830.    FUNCTION xDD(
  831.            VAR DIRPATH;
  832.            FNCTION : INTEGER ) : INTEGER;
  833.                external 'SQL16B' name 'XDD';
  834.  
  835.    FUNCTION xDDAttr(
  836.                OPTION    : INTEGER;
  837.             VAR FLDNAME;
  838.                 ATTRIB   : INTEGER;
  839.             VAR BSIZE    : INTEGER;
  840.             VAR ABUF )   : INTEGER;
  841.                external 'SQL16B' name 'XDDATTR';
  842.  
  843.    FUNCTION xDDModify(
  844.                OPTION      : INTEGER;
  845.            VAR FNAME;
  846.                CREATE_FILE : INTEGER;
  847.            VAR PATH;
  848.            VAR OWNERNAME;
  849.                OACC        : INTEGER;
  850.                FLDCOUNT    : INTEGER;
  851.            VAR FLDLIST;
  852.                KEYCOUNT    : INTEGER;
  853.            VAR KLIST )     : INTEGER;
  854.                external 'SQL16B' name 'XDDMODIFY';
  855.  
  856.    FUNCTION xDDCreate(
  857.                OPTION      : INTEGER;
  858.            VAR FNAME;
  859.                CREATE_FILE : INTEGER;
  860.            VAR PATH;
  861.            VAR OWNERNAME;
  862.                OACC        : INTEGER;
  863.                FLDCOUNT    : INTEGER;
  864.            VAR FLDLIST;
  865.                KEYCOUNT    : INTEGER;
  866.            VAR KLIST;
  867.                BLEN        : INTEGER;
  868.            VAR CRPARMS )   : INTEGER;
  869.                external 'SQL16B' name 'XDDCREATE';
  870.  
  871.    FUNCTION xDDDrop(
  872.            VAR FILENAME;
  873.                FILETYPE   : INTEGER;
  874.                DELETEPATH : INTEGER ) : INTEGER;
  875.                external 'SQL16B' name 'XDDDROP';
  876.  
  877.     FUNCTION xDDField(
  878.                 OPTION : INTEGER;
  879.             VAR FCOUNT : INTEGER;
  880.             VAR FBUF;
  881.             VAR BLEN   : INTEGER;
  882.             VAR OBUF ) : INTEGER;
  883.                 external 'SQL16B' name 'XDDFIELD';
  884.  
  885.    FUNCTION xDDFile(
  886.                OPTION : INTEGER;
  887.            VAR FCOUNT : INTEGER;
  888.            VAR FBUF;
  889.            VAR BLEN   : INTEGER;
  890.            VAR OBUF ) : INTEGER;
  891.                external 'SQL16B' name 'XDDFILE';
  892.  
  893.    FUNCTION xDDIndex(
  894.                OPTION : INTEGER;
  895.            VAR FCOUNT : INTEGER;
  896.            VAR FBUF;
  897.            VAR BLEN   : INTEGER;
  898.            VAR OBUF ) : INTEGER;
  899.                external 'SQL16B' name 'XDDINDEX';
  900.  
  901.    FUNCTION xDDPath(
  902.                DIRTYPE    : INTEGER;
  903.            VAR PATHNAME ) : INTEGER;
  904.                external 'SQL16B' name 'XDDPATH';
  905.  
  906.    FUNCTION xDDView(
  907.            VAR FCOUNT : INTEGER;
  908.            VAR VNAME;
  909.            VAR BLEN   : INTEGER;
  910.            VAR OBUF ) : INTEGER;
  911.                external 'SQL16B' name 'XDDVIEW';
  912.  
  913.    FUNCTION xAccess(
  914.            VAR MASTERPSWD;
  915.            VAR UNAME;
  916.                OPTION      : INTEGER;
  917.                ARIGHTS     : INTEGER;
  918.            VAR FNAME;
  919.            VAR FCOUNT      : INTEGER;
  920.            VAR FIELDNAME;
  921.            VAR BLEN        : INTEGER;
  922.            VAR OBUF )      : INTEGER;
  923.                external 'SQL16B' name 'XACCESS';
  924.  
  925.    FUNCTION xPassword(
  926.            VAR UNAME;
  927.            VAR PASSWORD ) : INTEGER;
  928.                external 'SQL16B' name 'XPASSWORD';
  929.  
  930.    FUNCTION xSecurity(
  931.            VAR MPSWD;
  932.                FLAG : INTEGER ) : INTEGER;
  933.                external 'SQL16B' name 'XSECURITY';
  934.  
  935.    FUNCTION xUser(
  936.            VAR MASTERPSWD;
  937.                OPTION      : INTEGER;
  938.            VAR UNAME;
  939.            VAR PASSWORD;
  940.                UGRIGHTS    : INTEGER;
  941.            VAR FCOUNT      : INTEGER;
  942.            VAR BLEN        : INTEGER;
  943.            VAR UBUF )      : INTEGER;
  944.                external 'SQL16B' name 'XUSER';
  945.  
  946.    FUNCTION xChar(
  947.                CHARFCN  : INTEGER;
  948.                CHARTYPE : INTEGER;
  949.            VAR VALUE  ) : INTEGER;
  950.                external 'SQL16B' name 'XCHAR';
  951.  
  952.    FUNCTION xVersion(
  953.            VAR BUFFER ) : INTEGER;
  954.                external 'SQL16B' name 'XVERSION';
  955.  
  956.    FUNCTION xStatus(
  957.                VHANDLE   : INTEGER;
  958.                SUBFUNC   : INTEGER;
  959.            VAR LEN       : INTEGER;
  960.            VAR STATBUF ) : INTEGER;
  961.                external 'SQL16B' name 'XSTATUS';
  962.  
  963.    FUNCTION xConvert(
  964.                OPTION     : INTEGER;
  965.                DTYPE      : INTEGER;
  966.                SIZE       : INTEGER;
  967.                DEC        : INTEGER;
  968.                DSIZE      : INTEGER;
  969.            VAR VALUE;
  970.            VAR RETVALUE;
  971.            VAR MASK;
  972.                JUST       : INTEGER ) : INTEGER;
  973.                external 'SQL16B' name 'XCONVERT';
  974.  
  975.    FUNCTION xValidate(
  976.            VAR COUNT       : INTEGER;
  977.            VAR FIELDNAME;
  978.                BUFLEN      : INTEGER;
  979.            VAR DATA )      : INTEGER;
  980.                external 'SQL16B' name 'XVALIDATE';
  981.  
  982.    FUNCTION xMask(
  983.                OPTION : INTEGER;
  984.                DTYPE  : INTEGER;
  985.                SIZE   : INTEGER;
  986.                DEC    : INTEGER;
  987.            VAR MLEN   : INTEGER;
  988.            VAR MASK ) : INTEGER;
  989.                external 'SQL16B' name 'XMASK';
  990.  
  991. END.
  992.  
  993.