Viewing file: ocixmldb.h (7.95 KB) -r-xr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.*/ /* NAME ocixmldb.h - XDB public functions
DESCRIPTION This file contains XDB specific public functions required for DOM C-API.
RELATED DOCUMENTS
EXPORT FUNCTION(S) struct xmlctx *OCIXmlDbInitXmlCtx(OCIEnv *, OCISvcCtx *, OCIError *, ocixmldbparam *params, int num_params);
void OCIXmlDbFreeXmlCtx(struct xmlctx *xctx);
------------------------------------------------------------------------ EXAMPLES NOTES
MODIFIED (MM/DD/YY) stirmizi 06/05/14 - OCI properties for client side binary XML processing alejgarc 05/29/14 - 18857660 - added OCIXmlGetDiffBndVersion. tojhuan 07/10/13 - Update OCIXmlDr_DEF revision tojhuan 06/05/13 - 16318092: add csform and csid to OCIXmlDiffBnd tojhuan 12/17/12 - fwd merge 15980280 expose table alias parameters of qmudxRewriteXMLDiffRaw for OCIXmlDbRewriteXMLDiff srirkris 06/15/11 - Add OCIXmlDr_DEF srirkris 03/01/11 - OCIXmlDbRewriteXMLDiff definition change vmedi 01/14/11 - OCIXmlDbGetFullyQualifiedSchemaUrl sipatel 03/08/10 - add lob arg to OCIXmlDbRewriteXMLDiff samane 01/20/10 - Bug 9302227 yifeng 11/05/09 - add OCIXmlDbRewriteXMLDiff samane 08/05/09 - Bug 8661204 ataracha 12/11/03 - remove redundant definitions ataracha 05/28/03 - change names ataracha 02/18/03 - add oratypes, remove XMLERR_* imacky 02/01/03 - remove xml.h; xdbs fix ataracha 01/24/03 - use "struct xmlctx" instead of xmlctx imacky 01/28/03 - fix XMLERR defs ataracha 01/21/03 - ataracha_uni_capi_cleanup ataracha 01/09/03 - Creation
*/
#ifndef ORATYPES #include <oratypes.h> #endif #ifndef OCI_ORACLE # include <oci.h> #endif
#ifndef OCIXMLDB_ORACLE # define OCIXMLDB_ORACLE
/*--------------------------------------------------------------------------- PUBLIC TYPES AND CONSTANTS ---------------------------------------------------------------------------*/
#ifndef XMLCTX_DEFINED # define XMLCTX_DEFINED /* DATATYPE xmlctx - XML top-level context */ struct xmlctx; typedef struct xmlctx xmlctx; #endif
typedef struct OCIXmlDiffBnd { oratext *bndnmp; ub1 bndnml; ub2 bndpos; ub2 bndnum; ub2 bnddty; void *bndvalp; ub4 bndvallen; ub2 bndcsid; ub1 bndcsform; } OCIXmlDiffBnd;
struct xmldrctx; typedef struct xmldrctx xmldrctx;
typedef enum { XCTXINIT_OCIDUR = 1, XCTXINIT_ERRHDL = 2 } ocixmldbpname;
typedef struct ocixmldbparam { ocixmldbpname name_ocixmldbparam; void *value_ocixmldbparam; } ocixmldbparam;
#define NUM_OCIXMLDBPARAMS 2
#define OCIXMLDB_BINDBYNAME 1 #define OCIXMLDB_BINDBYNUM 2
#define OCIMAXXQUBNDLMT 1000
#define OCIXmlDr_DEF 2
/* property names for client-side encoding/decoding of binary XML */ #define OCIXMLDB_ENCODE "XML_ENCODE_ON" #define OCIXMLDB_DECODEL 13 #define OCIXMLDB_DECODE "XML_DECODE_ON" #define OCIXMLDB_DECODEL 13
/* * At version 2, OCIXmlDiffBnd has attributes bndcsid, bndcsform */
/*--------------------------------------------------------------------------- PRIVATE TYPES AND CONSTANTS ---------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------- EXPORT FUNCTIONS ---------------------------------------------------------------------------*/ /***************************************************************************** DESCRIPTION
-----------------------------OCIXmlDbInitXmlCtx--------------------------------- Name OCIXmlDbInitXmlCtx Purpose To get a xmlctx structure initialized with error-handler and XDB callbacks. Syntax struct xmlctx *OCIXmlDbInitXmlCtx (OCIEnv *envhp, OCISvcCtx *svchp, OCIError *err, params_ocixmldb *params, int num_params); Parameters envhp (IN) - The OCI environment handle svchp (IN) - The OCI service handle errhp (IN) - The OCI error handle params (IN)- This contains the following optional parameters : (a) OCIDuration dur (IN - The OCI Duration (Default: OCI_DURATION_SESSION) (b) void (*err_handler) (sword, (const oratext *) (IN) - Pointer to the error handling function (Default: null) num_params (IN) - Number of parameters to be read from parameter params. If the value of num_params exceeds the size of array "params", unexpected behavior will result.
Returns A pointer to xmlctx structure, with xdb context, error handler and callbacks populated with appropriate values. This is later used for all API calls. NULL if no database connection available.
-----------------------------OCIXmlDbFreeXmlCtx---------------------------- Name OCIXmlDbFreeXmlCtx Pupose To free any allocations done during OCIXmlDbInitXmlCtx. Syntax void OCIXmlDbFreeXmlCtx (struct xmlctx *xctx) Parameters xctx (IN) - The xmlctx to terminate Returns - ------------------------OCIXmlDbOrastreamFromLob--------------------------- Name OCIXmlDbOrastreamFromLob Pupose To create an orastream from a lob. This orastream can be used by functions like XMLLoadDom(). Syntax sword OCIXmlDbOrastreamFromLob(OCIError *errhp, xmlctx *xctx, void **stream, OCILobLocator *lobloc) Parameters envhp (IN) - The OCI environment handle xctx (IN) - XML context stream (IN/OUT) - A pointer to orastream lobloc (IN) - The OCI lob locator Returns The orastream created on top of the lob is returned in the parameter 'stream'. ******************************************************************************/
struct xmlctx *OCIXmlDbInitXmlCtx(OCIEnv *, OCISvcCtx *, OCIError *, ocixmldbparam *, int);
void OCIXmlDbFreeXmlCtx(struct xmlctx *xctx); sword OCIXmlDbStreamFromXMLType(OCIError *errhp, void **stream, OCIXMLType *doc, ub4 mode); sword OCIXmlDbOrastreamFromLob(OCIError *errhp, xmlctx *xctx, void **stream, OCILobLocator *lobloc); sword OCIXmlDbStreamRead(OCIError *errhp, void *stream, void *bufp, sb8 *len, ub4 mode); sword OCIXmlDbStreamClose(OCIError *errhp, void *stream);
/*--------------------------------------------------------------------------- INTERNAL FUNCTIONS ---------------------------------------------------------------------------*/ /* This function is for internal usage only */ sword OCIXmlDbRewriteXMLDiff(OCIEnv *envhp, OCIError *errhp, OCISvcCtx *svchp, xmldrctx *xctx , oratext* colname, ub4 colnamelen, const void* xmldiff, ub4 xmldifflen, OCILobLocator *xdiff_locator, oratext** updstmt, ub2 binditerator, ub2 *colvalbndcount, OCIXmlDiffBnd **bindlist, oratext *obj_tab_prefix, ub2 obj_tab_prefix_len);
struct xmldrctx *OCIXmlInitDRCtx(OCIEnv *env, OCISvcCtx *svc, OCIError *err, ub1 bindtyp);
void OCIXmlFreeDRCtx(xmldrctx *xctx);
ub1 OCIXmlGetDiffBndVersion();
sword OCIXmlDbGetFullyQualifiedSchemaUrl(OCIError *errhp, oratext *schema_url, ub2 schema_url_len, oratext *schema_owner, ub2 schema_owner_len, oratext **fq_schema_url, ub4 *fs_schema_url_len);
void *OCIXmlDbMemCallback(void *ctx, size_t size);
#endif /* OCIXMLDB_ORACLE */
|