Annotation of win32/sql/oracle/include/oci/cdemodp0.h, revision 1.1

1.1     ! parser      1: /*
        !             2:  * $Header: /var/lib/cvsroot/parser3/parser3/src/sql/oracle/oracle32/include/oci/cdemodp0.h,v 1.1 2001/08/22 14:02:18 parser Exp $
        !             3:  */
        !             4: 
        !             5: /* Copyright (c) 1998, 1999, Oracle Corporation.  All rights reserved.
        !             6: */
        !             7: 
        !             8: /*
        !             9:    NAME
        !            10:      cdemodp0.h - C Demo program for Direct Path api
        !            11: 
        !            12:    DESCRIPTION
        !            13:      - Internal data structs, macros, & defines for cdemodp driver.
        !            14: 
        !            15:    NOTES
        !            16:      Structures, macros, constants used only by cdemodp.c.
        !            17: 
        !            18:    MODIFIED   (MM/DD/YY)
        !            19:    mjaeger     07/14/99 - bug 808870: OCCS: convert tabs, no long lines
        !            20:    abrumm      12/22/98 - lint
        !            21:    cmlim       11/17/98 - take away hardcoded MAX_RECLEN; now a session parm
        !            22:    cmlim       10/06/98 - correct typo
        !            23:    cmlim       10/02/98 - added externref
        !            24:    cmlim       09/16/98 - internal data structs, macros, & defines for cdemodp
        !            25:    cmlim       09/16/98 - Creation (abrumm 04/07/98)
        !            26: 
        !            27: */
        !            28: 
        !            29: 
        !            30: #ifndef cdemodp0_ORACLE
        !            31: # define cdemodp0_ORACLE
        !            32: 
        !            33: # include <oratypes.h>
        !            34: # include <oci.h>
        !            35: 
        !            36: /* partial field context structure, maintained by field setting function */
        !            37: struct pctx
        !            38: {
        !            39:   ub1   valid_pctx;                              /* partial context is valid */
        !            40:   ub4   pieceCnt_pctx;                            /* count of partial pieces */
        !            41:   ub4   row_pctx;                               /* which row in column array */
        !            42:   ub4   col_pctx;                            /* which column in column array */
        !            43:   ub4   len_pctx;                            /* length of this column so far */
        !            44:   int   fd_pctx;                 /* open file descriptor data is coming from */
        !            45:   char *fnm_pctx;                                /* filename for data source */
        !            46: };
        !            47: 
        !            48: /* CLEAR_PCTX(struct pctx pctx)
        !            49:  *   Macro to clear the partial context state
        !            50:  */
        !            51: #define CLEAR_PCTX(pctx) \
        !            52:   ((pctx).valid_pctx = FALSE,   (pctx).pieceCnt_pctx = 0,    \
        !            53:    (pctx).row_pctx = UB4MAXVAL, (pctx).col_pctx = UB4MAXVAL, \
        !            54:    (pctx).len_pctx = 0,         (pctx).fd_pctx  = -1,        \
        !            55:    (pctx).fnm_pctx = (char *)0)
        !            56: 
        !            57: #define SET_PCTX(pctx, rowoff, coloff, clen, fd, fnm) \
        !            58:   ((pctx).valid_pctx = TRUE,   (pctx).pieceCnt_pctx++,     \
        !            59:    (pctx).row_pctx = (rowoff), (pctx).col_pctx = (coloff), \
        !            60:    (pctx).len_pctx += (ub4)(clen), (pctx).fd_pctx = (fd),  \
        !            61:    (pctx).fnm_pctx = (fnm))
        !            62: 
        !            63: #define LEN_PCTX(pctx) ((pctx).len_pctx)
        !            64: 
        !            65: /* Does the input record correspond to the first piece of a row?
        !            66:  * Note that a row which is not pieced is a first piece too.
        !            67:  */
        !            68: #define FIRST_PIECE(pctx)       \
        !            69: ( (pctx).valid_pctx == FALSE || \
        !            70:  ((pctx).valid_pctx == TRUE  && ((pctx).pieceCnt_pctx == 1)))
        !            71: 
        !            72: /* return values from field_set() */
        !            73: #define FIELD_SET_COMPLETE   0
        !            74: #define FIELD_SET_ERROR      1
        !            75: #define FIELD_SET_BUF        2
        !            76: #define FIELD_SET_PARTIAL    3
        !            77: 
        !            78: /* return values from do_convert() */
        !            79: #define CONVERT_SUCCESS      0
        !            80: #define CONVERT_ERROR        1
        !            81: #define CONVERT_NEED_DATA    2
        !            82: #define CONVERT_CONTINUE     3
        !            83: 
        !            84: /* return values from do_load() */
        !            85: #define LOAD_SUCCESS     0
        !            86: #define LOAD_ERROR       1
        !            87: #define LOAD_NEED_DATA   2
        !            88: #define LOAD_NO_DATA     3
        !            89: 
        !            90: /* state values for simple_load() */
        !            91: #define RESET             1 /* initial state, reset data structures to empty */
        !            92: #define GET_RECORD        2                             /* get input records */
        !            93: #define FIELD_SET         3     /* assign fields of input records to columns */
        !            94: #define DO_CONVERT        4   /* convert column array input to stream format */
        !            95: #define DO_LOAD           5                        /* load the direct stream */
        !            96: #define END_OF_INPUT      6                            /* no more input data */
        !            97: 
        !            98: /* Secondary buffer sizes for OUTOFLINE fields; no science here, just a WAG */
        !            99: #define SECONDARY_BUF_SIZE (1024*1024)           /* size of secondary buffer */
        !           100: #define SECONDARY_BUF_SLOP (8*1024)  /* get another field if this much avail */
        !           101: 
        !           102: #define STATICF
        !           103: 
        !           104: #ifndef externref
        !           105: # define externref extern
        !           106: #endif
        !           107: 
        !           108: 
        !           109: #endif                                              /* cdemodp0_ORACLE */

E-mail: