#SQLCLI

#SQLCLI

      *  RPG include file for SQL Call-Level Interface APIs.


      *  The following table is a mapping of SQL data types
      *  to RPG data types.
      *
      *    SQL Data Type           How to declare on a D-spec
      *    -------------------     --------------------------
      *    SQLCHAR                 nnnnA
      *    SQLINTEGER                10i 0
      *    SQLSMALLINT                5i 0
      *    SQLDOUBLE               No Equivalent
      *    SQLREAL                 No Equivalent
      *    PTR                         *
      *    SQLPOINTER                  *
      *    HENV                      10i 0
      *    HDBC                      10i 0
      *    HSTMT                     10i 0
      *    HDESC                     10i 0
      *    SQLHENV                   10i 0
      *    SQLHDBC                   10i 0
      *    SQLHSTMT                  10i 0
      *    SQLHDESC                  10i 0
      *    RETCODE                   10i 0
      *    SQLRETURN                 10i 0


      *  Generally useful constants.
     d  #SQLFalse      c                   Const(0)
     d  #SQLTrue       c                   Const(1)
     d  #NullHandl     c                   Const(0)
     d  #SQLNTS        c                   Const(-3)
     d  #SQLState      c                   Const(5)

      *  Return Code constants
     d  #SQLOK         c                   Const(0  )
     d  #OKwInfo       c                   Const(1  )
     d  #NoDataFnd     c                   Const(100)
     d  #NeedData      c                   Const(99 )
     d  #NoData        c                   Const(100)
     d  #SQLError      c                   Const(-1 )
     d  #BadHandle     c                   Const(-2 )

      *  Data type constants
     d  #SQLChar       c                   Const(1 )
     d  #SQLNum        c                   Const(2 )
     d  #SQLZoned      c                   Const(2 )
     d  #SQLDec        c                   Const(3 )
     d  #SQLPacked     c                   Const(3 )
     d  #SQLInt        c                   Const(4 )
     d  #SQLSmlInt     c                   Const(5 )
     d  #SQLFloat      c                   Const(6 )
     d  #SQLReal       c                   Const(7 )
     d  #SQLDouble     c                   Const(8 )
     d  #SQLDatTim     c                   Const(9 )
     d  #SQLVChar      c                   Const(12)
     d  #SQLGraphc     c                   Const(95)
     d  #SQLVGraph     c                   Const(96)
     d  #SQLDate       c                   Const(91)
     d  #SQLTime       c                   Const(92)
     d  #SQLTimStm     c                   Const(93)
     d  #SQLDfault     c                   Const(99)

      *  Valid environment attributes
     d  #OutputNTS     c                   Const(10001)
     d  #SysNaming     c                   Const(10002)

      *  SQLTransact option values
     d  #SQLCommit     c                   Const(0)
     d  #SQLRollbk     c                   Const(1)

      *  Codes used in FetchScroll and ExtendedFetch
     d  #FetchNext     c                   Const(1)
     d  #FtchFirst     c                   Const(2)
     d  #FetchLast     c                   Const(3)
     d  #FtchPrior     c                   Const(4)
     d  #FAbsolute     c                   Const(5)
     d  #FRelative     c                   Const(6)

      *  SQLFreeStmt option values
     d  #SQLClose      c                   Const(0)
     d  #SQLDrop       c                   Const(1)
     d  #SQLUnbind     c                   Const(2)
     d  #SQLResetP     c                   Const(3)

      *  Valid values for connect attribute (ie, commitment control)
     d  #Commit        c                   Const(0)
     d  #CmtNone       s             10i 0 Inz(1)
     d  #CmtChange     s             10i 0 Inz(2)
     d  #CommitCS      s             10i 0 Inz(3)
     d  #CommitALL     s             10i 0 Inz(4)
     d  #CommitRR      s             10i 0 Inz(5)


      *  SQL CLI function prototypes.

     d SQLAlcEnv       PR            10i 0 ExtProc('SQLAllocEnv')
     d   EnvHandle                   10i 0

     d SQLAlcCon       PR            10i 0 ExtProc('SQLAllocConnect')
     d   EnvHandle                   10i 0 Value
     d   ConHandle                   10i 0

     d SQLConnect      PR            10i 0 ExtProc('SQLConnect')
     d   ConHandle                   10i 0 Value
     d   DBName                    9999a   Options(*VarSize)
     d   DBNameLen                   10i 0 Value
     d   UserID                    9999a   Options(*VarSize: *Omit)
     d   UserIDLen                   10i 0 Value
     d   PassWord                  9999a   Options(*VarSize: *Omit)
     d   PassWordL                   10i 0 Value

     d SQLAlcStmt      PR            10i 0 ExtProc('SQLAllocStmt')
     d   ConHandle                   10i 0 Value
     d   StmtHandle                  10i 0


     d SQLExecDir      PR            10i 0 ExtProc('SQLExecDirect')
     d   StmtHandle                  10i 0 Value
     d   SQLString                 9999a   Options(*VarSize)
     d   SQLStrLen                   10i 0 Value

     d SQLPrepare      PR            10i 0 ExtProc('SQLPrepare')
     d   StmtHandle                  10i 0 Value
     d   SQLString                 9999a   Options(*VarSize)
     d   SQLStrLen                   10i 0 Value

     d SQLExecute      PR            10i 0 ExtProc('SQLExecute')
     d   StmtHandle                  10i 0 Value


     d SQLBindCol      PR            10i 0 ExtProc('SQLBindCol')
     d   StmtHandle                  10i 0 Value
     d   Column#                     10i 0 Value
     d   ColumnType                  10i 0 Value
     d   pColVar                       *   Value
     d   ColVarLen                   10i 0 Value
     d   pColDtaLen                    *   Value

     d SQLExFetch      PR            10i 0 ExtProc('SQLExtendedFetch')
     d   StmtHandle                  10i 0 Value
     d   OrientFlag                   5i 0 Value
     d   Offset                      10i 0 Value
     d   CurrentRow                  10i 0
     d   RowStatus                    5i 0

     d SQLFetch        PR            10i 0 ExtProc('SQLFetch')
     d   StmtHandle                  10i 0 Value

     d SQLFetchS       PR            10i 0 ExtProc('SQLFetchScroll')
     d   StmtHandle                  10i 0 Value
     d   OrientFlag                   5i 0 Value
     d   Offset                      10i 0 Value

     d SQLNbrCols      PR            10i 0 ExtProc('SQLNumResultCols')
     d   StmtHandle                  10i 0 Value
     d   NbrCols                      5i 0

     d SQLDescCol      PR            10i 0 ExtProc('SQLDescribeCol')
     d   StmtHandle                  10i 0 Value
     d   Column#                     10i 0 Value
     d   pColName                      *   Value
     d   ColNameMax                  10i 0 Value
     d   ColNameLen                   5i 0
     d   ColumnType                   5i 0
     d   ColumnLen                   10i 0
     d   ColScale                     5i 0
     d   Nullable                     5i 0


     d SQLFreeStm      PR            10i 0 ExtProc('SQLFreeStmt')
     d   StmtHandle                  10i 0 Value
     d   OptionFlag                   5i 0 Value


     d SQLDiscon       PR            10i 0 ExtProc('SQLDisconnect')
     d   ConHandle                   10i 0 Value

     d SQLFreeEnv      PR            10i 0 ExtProc('SQLFreeEnv')
     d   EnvHandle                   10i 0 Value

     d SQLFreeCon      PR            10i 0 ExtProc('SQLFreeConnect')
     d   ConHandle                   10i 0 Value


     d SQLSetCon       PR            10i 0 ExtProc('SQLSetConnectOption')
     d   ConHandle                   10i 0 Value
     d   Attribute                   10i 0 Value
     d   ParmVal                     10i 0

     d SQLSetEnvA      PR            10i 0 ExtProc('SQLSetEnvAttr')
     d   EnvHandle                   10i 0 Value
     d   Attribute                   10i 0 Value
     d   pParmVal                      *   Value
     d   ParmValLen                  10i 0 Value