Annotation of win32/sql/oracle/include/oci/ociextp.h, revision 1.1.1.1

1.1       parser      1: /*
                      2:  * $Header: /var/lib/cvsroot/parser3/parser3/src/sql/oracle/oracle32/include/oci/ociextp.h,v 1.1 2001/08/22 14:02:19 parser Exp $
                      3:  */
                      4: 
                      5: /* Copyright (c) Oracle Corporation 1996, 1997, 1999. All Rights Reserved. */ 
                      6:  
                      7: /* 
                      8:    NAME 
                      9:      ociextp.h - Interface Definitions for PL/SQL External Procedures
                     10: 
                     11:    DESCRIPTION 
                     12:      This header file contains C language callable interface from 
                     13:      PL/SQL External Procedures.
                     14: 
                     15:    PUBLIC FUNCTION(S) 
                     16:      OCIExtProcAllocCallMemory  - Allocate Call memory
                     17:      OCIExtProcRaiseExcp        - Raise Exception
                     18:      OCIExtProcRaiseExcpWithMsg - Raise Exception with message
                     19:      OCIExtProcGetEnv           - Get OCI Environment
                     20: 
                     21:    PRIVATE FUNCTION(S)
                     22:      <list of static functions defined in .c file - with one-line descriptions>
                     23: 
                     24:    EXAMPLES
                     25: 
                     26:    NOTES
                     27:      <other useful comments, qualifications, etc.>
                     28: 
                     29:    MODIFIED   (MM/DD/YY)
                     30:    whe         09/01/99 - 976457:check __cplusplus for C++ code
                     31:    asethi      04/15/99 - Created (by moving ociextp.h from /vobs/plsql/public)
                     32:    rhari       03/25/97 - Use ifndef
                     33:    rhari       12/18/96 - Include oratypes.h
                     34:    rhari       12/11/96 - #416977, Flip values of return codes
                     35:    rhari       12/02/96 - Define Return Code Macros
                     36:    rhari       11/18/96 - Error number is int
                     37:    rhari       10/30/96 - Fix OCIExtProcRaiseExcpWithMsg
                     38:    rhari       10/30/96 - Get rid of warnings
                     39:    rhari       10/04/96 - Fix OCIExtProcRaiseExcpWithMsg
                     40:    rhari       09/23/96 - Creation
                     41: 
                     42: */
                     43: 
                     44:  
                     45: #ifndef OCIEXTP_ORACLE
                     46: # define OCIEXTP_ORACLE
                     47: 
                     48: # ifndef ORATYPES 
                     49: #  include <oratypes.h> 
                     50: # endif
                     51: 
                     52: # ifndef OCI_ORACLE
                     53: #  include <oci.h>
                     54: # endif
                     55: 
                     56: /*---------------------------------------------------------------------------
                     57:                      PUBLIC TYPES AND CONSTANTS
                     58:   ---------------------------------------------------------------------------*/
                     59: 
                     60: 
                     61: /* ----------------------------- Return Codes ----------------------------- */
                     62: /* Success and Error return codes for certain external procedure interface 
                     63:  * functions. If a particular interface function returns OCIEXTPROC_SUCCESS
                     64:  * or OCIEXTPROC_ERROR, then applications must use these macros to check
                     65:  * for return values.
                     66:  *
                     67:  *     OCIEXTPROC_SUCCESS  -- External Procedure Success Return Code 
                     68:  *     OCIEXTPROC_ERROR    -- External Procedure Failure Return Code 
                     69:  */
                     70: #define OCIEXTPROC_SUCCESS 0
                     71: #define OCIEXTPROC_ERROR   1
                     72: 
                     73: 
                     74: /* --------------------------- With-Context Type --------------------------- */
                     75: /*
                     76:  * The C callable interface to PL/SQL External Procedures require the 
                     77:  * With-Context parameter to be passed. The type of this structure is 
                     78:  * OCIExtProcContext is is opaque to the user.
                     79:  *
                     80:  * The user can declare the With-Context parameter in the application as
                     81:  *
                     82:  *    OCIExtProcContext *with_context;
                     83:  */
                     84: typedef struct OCIExtProcContext OCIExtProcContext;
                     85: 
                     86: 
                     87: 
                     88: /* ----------------------- OCIExtProcAllocCallMemory ----------------------- */
                     89: /* OCIExtProcAllocCallMemory
                     90:  *    Allocate N bytes of memory for the duration of the External Procedure.
                     91:  *
                     92:  *    Memory thus allocated will be freed by PL/SQL upon return from the
                     93:  *    External Procedure. You must not use any kind of 'free' function on 
                     94:  *    memory allocated by OCIExtProcAllocCallMemory.
                     95:  *    Use this function to allocate memory for function returns.
                     96:  * 
                     97:  * PARAMETERS
                     98:  * Input : 
                     99:  *    with_context - The with_context pointer that is passed to the C 
                    100:  *                   External Procedure.
                    101:  *                  Type of with_context : OCIExtProcContext *
                    102:  *    amount       - The number of bytes to allocate.
                    103:  *                   Type of amount : size_t
                    104:  *
                    105:  * Output :
                    106:  *    Nothing
                    107:  *
                    108:  * Return :
                    109:  *    An untyped (opaque) Pointer to the allocated memory. 
                    110:  *
                    111:  * Errors :
                    112:  *    A 0 return value should be treated as an error
                    113:  *
                    114:  * EXAMPLE 
                    115:  *  text *ptr = (text *)OCIExtProcAllocCallMemory(wctx, 1024)
                    116:  *
                    117:  */
                    118: #define OCIExtProcAllocCallMemory(with_context, amount) \
                    119: ociepacm(with_context, (size_t)amount)
                    120: 
                    121: 
                    122: 
                    123: 
                    124: /* -------------------------- OCIExtProcRaiseExcp -------------------------- */
                    125: /* OCIExtProcRaiseExcp
                    126:  *    Raise an Exception to PL/SQL.
                    127:  *
                    128:  *  Calling this function signalls an exception back to PL/SQL. After a
                    129:  *  successful return from this function, the External Procedure must start 
                    130:  *  its exit handling and return back to PL/SQL. Once an exception is 
                    131:  *  signalled to PL/SQL, INOUT and OUT arguments, if any, are not processed 
                    132:  *  at all.
                    133:  * 
                    134:  * PARAMETERS
                    135:  * Input :
                    136:  *   with_context - The with_context pointer that is passed to the C
                    137:  *                  External Procedure. 
                    138:  *                  Type of with_context : OCIExtProcContext *
                    139:  *   errnum       - Oracle Error number to signal to PL/SQL. errnum
                    140:  *                  must be a positive number and in the range 1 to 32767
                    141:  *                  Type of errnum : int
                    142:  * Output :
                    143:  *   Nothing
                    144:  *
                    145:  * Return :
                    146:  *   OCIEXTPROC_SUCCESS - If the call was successful.
                    147:  *   OCIEXTPROC_ERROR   - If the call failed.
                    148:  *
                    149:  */
                    150: #define OCIExtProcRaiseExcp(with_context, errnum) \
                    151: ocieperr(with_context, (int)errnum)
                    152: 
                    153: 
                    154: 
                    155: 
                    156: 
                    157: /* ---------------------- OCIExtProcRaiseExcpWithMsg ---------------------- */
                    158: /* OCIExtProcRaiseExcpWithMsg
                    159:  *    Raise an exception to PL/SQL. In addition, substitute the
                    160:  *    following error message string within the standard Oracle error 
                    161:  *    message string. See note for OCIExtProcRaiseExcp
                    162:  * 
                    163:  * PARAMETERS
                    164:  * Input :
                    165:  *   with_context  - The with_context pointer that is passed to the C
                    166:  *                   External Procedure.
                    167:  *                   Type of with_context : OCIExtProcContext *
                    168:  *   errnum        - Oracle Error number to signal to PL/SQL. errnum
                    169:  *                   must be a positive number and in the range 1 to 32767
                    170:  *                   Type of errnum : int
                    171:  *   errmsg        - The error message associated with the errnum.
                    172:  *                   Type of errmsg : char *
                    173:  *   len           - The length of the error message. 0 if errmsg is
                    174:  *                   null terminated string.
                    175:  *                   Type of len : size_t
                    176:  * Output :
                    177:  *   Nothing
                    178:  *
                    179:  * Return :
                    180:  *  OCIEXTPROC_SUCCESS - If the call was successful.
                    181:  *  OCIEXTPROC_ERROR   - If the call failed.
                    182:  *
                    183:  */
                    184: #define OCIExtProcRaiseExcpWithMsg(with_context, errnum, errmsg, msglen) \
                    185: ociepmsg(with_context, (int)errnum, errmsg, (size_t)msglen)
                    186: 
                    187: 
                    188: 
                    189: /* --------------------------- OCIExtProcGetEnv --------------------------- */
                    190: /* OCIExtProcGetEnv
                    191:  *    Get OCI Environment
                    192:  * 
                    193:  * PARAMETERS
                    194:  * Input :
                    195:  *    with_context - The with_context pointer that is passed to the C
                    196:  *                   External Procedure.
                    197:  *
                    198:  * Output :
                    199:  *    envh - The OCI Environment handle.
                    200:  *    svch - The OCI Service handle.
                    201:  *    errh - The OCI Error handle.
                    202:  *
                    203:  * Return :
                    204:  *  OCI_SUCCESS - Successful completion of the function.
                    205:  *  OCI_ERROR   - Error.
                    206:  *
                    207:  */
                    208: #define OCIExtProcGetEnv(with_context, envh, svch, errh) \
                    209: ociepgoe(with_context, envh, svch, errh)
                    210: 
                    211: 
                    212: 
                    213: 
                    214: /*---------------------------------------------------------------------------
                    215:                      PRIVATE TYPES AND CONSTANTS
                    216:   ---------------------------------------------------------------------------*/
                    217: 
                    218: 
                    219: /*---------------------------------------------------------------------------
                    220:                            PUBLIC FUNCTIONS
                    221:   ---------------------------------------------------------------------------*/
                    222: 
                    223: 
                    224: /*---------------------------------------------------------------------------
                    225:                           PRIVATE FUNCTIONS
                    226:   ---------------------------------------------------------------------------*/
                    227: 
                    228: 
                    229: 
                    230: #if !defined(__STDC__) && !defined(__cplusplus)        /* K&R C - not ANSI C */
                    231: dvoid *ociepacm(/*_ OCIExtProcContext *with_context, size_t amount _*/);
                    232: #else                                                              /* ANSI C */
                    233: dvoid *ociepacm(OCIExtProcContext *with_context, size_t amount);
                    234: #endif
                    235: 
                    236: 
                    237: 
                    238: #if !defined(__STDC__) && !defined(__cplusplus)        /* K&R C - not ANSI C */
                    239: size_t ocieperr(/*_ OCIExtProcContext *with_context, int error_number _*/);
                    240: #else                                                              /* ANSI C */
                    241: size_t ocieperr(OCIExtProcContext *with_context, int error_number);
                    242: #endif
                    243: 
                    244: 
                    245: 
                    246: #if !defined(__STDC__) && !defined(__cplusplus)        /* K&R C - not ANSI C */
                    247: size_t ociepmsg(/*_ OCIExtProcContext *with_context, int error_number,
                    248:                  text *error_message, size_t len _*/);
                    249: #else                                                              /* ANSI C */
                    250: size_t ociepmsg(OCIExtProcContext *with_context, int error_number,
                    251:                 text *error_message, size_t len );
                    252: #endif
                    253: 
                    254: 
                    255: 
                    256: #if !defined(__STDC__) && !defined(__cplusplus)        /* K&R C - not ANSI C */
                    257: sword ociepgoe(/*_ OCIExtProcContext *with_context, OCIEnv **envh, 
                    258:                OCISvcCtx **svch, OCIError **errh _*/);
                    259: #else                                                              /* ANSI C */
                    260: sword ociepgoe(OCIExtProcContext *with_context, OCIEnv **envh, 
                    261:                OCISvcCtx **svch, OCIError **errh);
                    262: #endif
                    263: 
                    264: 
                    265: #endif                                                     /* OCIEXTP_ORACLE */

E-mail: