• Main Page
  • Modules
  • Data Structures
  • Files
  • File List

D:/Perso/dev/ocilib/ocilib/src/oci_api.h

00001 /*
00002     +-----------------------------------------------------------------------------------------+
00003     |                                                                                         |
00004     |                               OCILIB - C Driver for Oracle                              |
00005     |                                                                                         |
00006     |                                (C Wrapper for Oracle OCI)                               |
00007     |                                                                                         |
00008     |                              Website : http://www.ocilib.net                            |
00009     |                                                                                         |
00010     |             Copyright (c) 2007-2010 Vincent ROGIER <vince.rogier@ocilib.net>            |
00011     |                                                                                         |
00012     +-----------------------------------------------------------------------------------------+
00013     |                                                                                         |
00014     |             This library is free software; you can redistribute it and/or               |
00015     |             modify it under the terms of the GNU Lesser General Public                  |
00016     |             License as published by the Free Software Foundation; either                |
00017     |             version 2 of the License, or (at your option) any later version.            |
00018     |                                                                                         |
00019     |             This library is distributed in the hope that it will be useful,             |
00020     |             but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00021     |             MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU           |
00022     |             Lesser General Public License for more details.                             |
00023     |                                                                                         |
00024     |             You should have received a copy of the GNU Lesser General Public            |
00025     |             License along with this library; if not, write to the Free                  |
00026     |             Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          |
00027     |                                                                                         |
00028     +-----------------------------------------------------------------------------------------+
00029 
00030     +-----------------------------------------------------------------------------------------+
00031     |                                                                                         |
00032     |                                       IMPORTANT NOTICE                                  |
00033     |                                                                                         |
00034     +-----------------------------------------------------------------------------------------+
00035     |                                                                                         |
00036     |             THIS FILE CONTAINS CONSTANTS AND STRUCTURES DECLARATIONS THAT WERE          |
00037     |             PICKED UP FROM ORACLE PUBLIC HEADER FILES.                                  |
00038     |                                                                                         |
00039     |             SO THE CONTENT OF THIS FILE IS UNDER ORACLE COPYRIGHT AND THE               |
00040     |             DECLARATIONS REPRODUCED HERE ARE ORIGINALLY WRITTEN BY ORACLE               |
00041     |             CORPORATION.                                                                |
00042     |                                                                                         |
00043     |             THE AUTHOR OF OCILIB LIBRARY HAS NOT WRITTEN THE CONTENT OF THIS            |
00044     |             FILE AND HAS PARTIALLY INTEGRATED SOME ORACLE OCI DEFINITONS TO             |
00045     |             ALLOW COMPILATION OF THIS OPEN SOURCE LIBRARY WITHOUT HAVING                |
00046     |             ORACLE PRODUCTS INSTALLED ON DEVELOPMENT ENVIRONMENTS                       |
00047     |                                                                                         |
00048     +-----------------------------------------------------------------------------------------+
00049 */
00050 
00051 /* --------------------------------------------------------------------------------------------- *
00052  * $Id: oci_api.h, v 3.8.0 2010-10-24 21:53 Vincent Rogier $
00053  * --------------------------------------------------------------------------------------------- */
00054 
00055 #ifndef OCILIB_OCI_API_H_INCLUDED
00056 #define OCILIB_OCI_API_H_INCLUDED
00057 
00058 #include "oci_defs.h"
00059 
00060 /* ********************************************************************************************* *
00061  *                         PUBLIC OCI API PROTOTYPES
00062  * ********************************************************************************************* */
00063 
00064 /* API introduced in 8.0 */
00065 
00066 typedef sword (*OCIENVCREATE)
00067 (
00068     OCIEnv **envhpp,
00069     ub4 mode,
00070     void *ctxp,
00071     void    *(*malocfp)(void *ctxp, size_t size),
00072     void    *(*ralocfp)(void *ctxp, void *memptr, size_t newsize),
00073     void (*mfreefp)
00074     (
00075         void *ctxp,
00076         void *memptr
00077     ),
00078     size_t xtramem_sz,
00079     void   **usrmempp
00080 );
00081 
00082 typedef sword (*OCIHANDLEALLOC)
00083 (
00084     const void  *parenth,
00085     void       **hndlpp,
00086     const ub4    type,
00087     const size_t xtramem_sz,
00088     void       **usrmempp
00089 );
00090 
00091 typedef sword (*OCIHANDLEFREE)
00092 (
00093     void     *hndlp,
00094     const ub4 type
00095 );
00096 
00097 typedef sword (*OCIDESCRIPTORALLOC)
00098 (
00099     const void  *parenth,
00100     void       **descpp,
00101     const ub4    type,
00102     const size_t xtramem_sz,
00103     void       **usrmempp
00104 );
00105 
00106 typedef sword (*OCIDESCRIPTORFREE)
00107 (
00108     void     *descp,
00109     const ub4 type
00110 );
00111 
00112 typedef sword (*OCIENVINIT)
00113 (
00114     OCIEnv **envp,
00115     ub4      mode,
00116     size_t   xtramem_sz,
00117     void   **usrmempp
00118 );
00119 
00120 typedef sword (*OCISERVERATTACH)
00121 (
00122     OCIServer     *srvhp,
00123     OCIError      *errhp,
00124     const OraText *dblink,
00125     sb4            dblink_len,
00126     ub4            mode
00127 );
00128 
00129 typedef sword (*OCISERVERDETACH)
00130 (
00131     OCIServer *srvhp,
00132     OCIError  *errhp,
00133     ub4        mode
00134 );
00135 
00136 typedef sword (*OCISESSIONBEGIN)
00137 (
00138     OCISvcCtx  *svchp,
00139     OCIError   *errhp,
00140     OCISession *usrhp,
00141     ub4         credt,
00142     ub4         mode
00143 );
00144 
00145 typedef sword (*OCISESSIONEND)
00146 (
00147     OCISvcCtx  *svchp,
00148     OCIError   *errhp,
00149     OCISession *usrhp,
00150     ub4         mode
00151 );
00152 
00153 typedef sword (*OCIPASSWORDCHANGE)
00154 (
00155     OCISvcCtx     *svchp,
00156     OCIError      *errhp,
00157     CONST OraText *user_name,
00158     ub4            usernm_len,
00159     CONST OraText *opasswd,
00160     ub4            opasswd_len,
00161     CONST OraText *npasswd,
00162     ub4            npasswd_len,
00163     ub4            mode
00164 );
00165 
00166 typedef sword (*OCISTMTPREPARE)
00167 (
00168     OCIStmt       *stmtp,
00169     OCIError      *errhp,
00170     const OraText *stmt,
00171     ub4            stmt_len,
00172     ub4            language,
00173     ub4            mode
00174 );
00175 
00176 typedef sword (*OCIBINDBYPOS)
00177 (
00178     OCIStmt  *stmtp,
00179     OCIBind **bindp,
00180     OCIError *errhp,
00181     ub4       position,
00182     void     *valuep,
00183     sb4       value_sz,
00184     ub2       dty,
00185     void     *indp,
00186     ub2      *alenp,
00187     ub2      *rcodep,
00188     ub4       maxarr_len,
00189     ub4      *curelep,
00190     ub4       mode
00191 );
00192 
00193 typedef sword (*OCIBINDBYNAME)
00194 (
00195     OCIStmt       *stmtp,
00196     OCIBind      **bindp,
00197     OCIError      *errhp,
00198     const OraText *placeholder,
00199     sb4            placeh_len,
00200     void          *valuep,
00201     sb4            value_sz,
00202     ub2            dty,
00203     void          *indp,
00204     ub2           *alenp,
00205     ub2           *rcodep,
00206     ub4            maxarr_len,
00207     ub4           *curelep,
00208     ub4            mode
00209 );
00210 
00211 typedef sword (*OCIBINDDYNAMIC)
00212 (
00213     OCIBind     *bindp,
00214     OCIError    *errhp,
00215     dvoid       *ictxp,
00216     sb4          (*icbfp)
00217     (
00218         dvoid   *ictxp,
00219         OCIBind *bindp,
00220         ub4      iter,
00221         ub4      index,
00222         dvoid  **bufpp,
00223         ub4     *alenp,
00224         ub1     *piecep,
00225         dvoid  **indp
00226     ),
00227     dvoid       *octxp,
00228     sb4          (*ocbfp)
00229     (
00230         dvoid   *octxp,
00231         OCIBind *bindp,
00232         ub4      iter,
00233         ub4      index,
00234         dvoid  **bufpp,
00235         ub4    **alenp,
00236         ub1     *piecep,
00237         dvoid  **indp,
00238         ub2    **rcodep
00239     )
00240 );
00241 
00242 typedef sword (*OCIBINDOBJECT)
00243 (
00244     OCIBind       *bindp,
00245     OCIError      *errhp,
00246     CONST OCIType *type,
00247     dvoid        **pgvpp,
00248     ub4           *pvszsp,
00249     dvoid        **indpp,
00250     ub4           *indszp
00251 );
00252 
00253 typedef sword (*OCISTMTGETPIECEINFO)
00254 (
00255     OCIStmt  *stmtp,
00256     OCIError *errhp,
00257     void    **hndlpp,
00258     ub4      *typep,
00259     ub1      *in_outp,
00260     ub4      *iterp,
00261     ub4      *idxp,
00262     ub1      *piecep
00263 );
00264 
00265 typedef sword (*OCISTMTSETPIECEINFO)
00266 (
00267     void       *hndlp,
00268     ub4         type,
00269     OCIError   *errhp,
00270     const void *bufp,
00271     ub4        *alenp,
00272     ub1         piece,
00273     const void *indp,
00274     ub2        *rcodep
00275 );
00276 
00277 typedef sword (*OCISTMTEXECUTE)
00278 (
00279     OCISvcCtx         *svchp,
00280     OCIStmt           *stmtp,
00281     OCIError          *errhp,
00282     ub4                iters,
00283     ub4                rowoff,
00284     const OCISnapshot *snap_in,
00285     OCISnapshot       *snap_out,
00286     ub4                mode
00287 );
00288 
00289 typedef sword (*OCIDEFINEBYPOS)
00290 (
00291     OCIStmt    *stmtp,
00292     OCIDefine **defnp,
00293     OCIError   *errhp,
00294     ub4         position,
00295     void       *valuep,
00296     sb4         value_sz,
00297     ub2         dty,
00298     void       *indp,
00299     ub2        *rlenp,
00300     ub2        *rcodep,
00301     ub4         mode
00302 );
00303 
00304 typedef sword (*OCIDEFINEOBJECT)
00305 (
00306     OCIDefine     *defnp,
00307     OCIError      *errhp,
00308     CONST OCIType *type,
00309     dvoid        **pgvpp,
00310     ub4           *pvszsp,
00311     dvoid        **indpp,
00312     ub4           *indszp
00313 );
00314 
00315 typedef sword (*OCISTMTFETCH )
00316 (
00317     OCIStmt  *stmtp,
00318     OCIError *errhp,
00319     ub4       nrows,
00320     ub2       orientation,
00321     ub4       mode
00322 );
00323 
00324 typedef sword (*OCIPARAMGET)
00325 (
00326     const void *hndlp,
00327     ub4         htype,
00328     OCIError   *errhp,
00329     void      **parmdpp,
00330     ub4         pos
00331 );
00332 
00333 typedef sword (*OCIPARAMSET)
00334 (
00335     void       *hdlp,
00336     ub4         htyp,
00337     OCIError   *errhp,
00338     const void *dscp,
00339     ub4         dtyp,
00340     ub4         pos
00341 );
00342 
00343 typedef sword (*OCITRANSSTART)
00344 (
00345     OCISvcCtx *svchp,
00346     OCIError  *errhp,
00347     uword      timeout,
00348     ub4        flags
00349 );
00350 
00351 typedef sword (*OCITRANSDETACH)
00352 (
00353     OCISvcCtx *svchp,
00354     OCIError  *errhp,
00355     ub4        flags
00356 );
00357 
00358 typedef sword (*OCITRANSPREPARE)
00359 (
00360     OCISvcCtx *svchp,
00361     OCIError  *errhp,
00362     ub4        flags
00363 );
00364 
00365 typedef sword (*OCITRANSFORGET)
00366 (
00367     OCISvcCtx *svchp,
00368     OCIError  *errhp,
00369     ub4        flags
00370 );
00371 
00372 typedef sword (*OCITRANSCOMMIT)
00373 (
00374     OCISvcCtx *svchp,
00375     OCIError  *errhp,
00376     ub4        flags
00377 );
00378 
00379 typedef sword (*OCITRANSROLLBACK)
00380 (
00381     OCISvcCtx *svchp,
00382     OCIError  *errhp,
00383     ub4        flags
00384 );
00385 
00386 typedef sword (*OCIERRORGET)
00387 (
00388     void    *hndlp,
00389     ub4      recordno,
00390     OraText *sqlstate,
00391     sb4     *errcodep,
00392     OraText *bufp,
00393     ub4      bufsiz,
00394     ub4      type
00395 );
00396 
00397 typedef sword (*OCILOBCREATETEMPORARY)
00398 (
00399     OCISvcCtx     *svchp,
00400     OCIError      *errhp,
00401     OCILobLocator *locp,
00402     ub2            csid,
00403     ub1            csfrm,
00404     ub1            lobtype,
00405     boolean        cache,
00406     OCIDuration    duration
00407 );
00408 
00409 typedef sword (*OCILOBFREETEMPORARY)
00410 (
00411     OCISvcCtx     *svchp,
00412     OCIError      *errhp,
00413     OCILobLocator *locp
00414 );
00415 
00416 typedef sword (*OCILOBISTEMPORARY)
00417 (
00418     OCIEnv        *envp,
00419     OCIError      *errhp,
00420     OCILobLocator *locp,
00421     boolean       *is_temporary
00422 );
00423 
00424 typedef sword (*OCILOBAPPEND)
00425 (
00426     OCISvcCtx     *svchp,
00427     OCIError      *errhp,
00428     OCILobLocator *dst_locp,
00429     OCILobLocator *src_locp
00430 );
00431 
00432 typedef sword (*OCILOBCOPY)
00433 (
00434     OCISvcCtx     *svchp,
00435     OCIError      *errhp,
00436     OCILobLocator *dst_locp,
00437     OCILobLocator *src_locp,
00438     ub4            amount,
00439     ub4            dst_offset,
00440     ub4            src_offset
00441 );
00442 
00443 typedef sword (*OCILOBREAD)
00444 (
00445     OCISvcCtx      *svchp,
00446     OCIError       *errhp,
00447     OCILobLocator  *locp,
00448     ub4            *amtp,
00449     ub4             offset,
00450     void           *bufp,
00451     ub4             bufl,
00452     void           *ctxp,
00453     sb4             (*cbfp)
00454     (
00455         void       *ctxp,
00456         const void *bufp,
00457         ub4         len,
00458         ub1         piece
00459     ),
00460     ub2             csid,
00461     ub1             csfrm
00462 );
00463 
00464 typedef sword (*OCILOBTRIM)
00465 (
00466     OCISvcCtx     *svchp,
00467     OCIError      *errhp,
00468     OCILobLocator *locp,
00469     ub4            newlen
00470 );
00471 
00472 typedef sword (*OCILOBERASE)
00473 (
00474     OCISvcCtx     *svchp,
00475     OCIError      *errhp,
00476     OCILobLocator *locp,
00477     ub4           *amount,
00478     ub4            offset
00479 );
00480 
00481 typedef sword (*OCILOBWRITE)
00482 (
00483     OCISvcCtx     *svchp,
00484     OCIError      *errhp,
00485     OCILobLocator *locp,
00486     ub4           *amtp,
00487     ub4            offset,
00488     void          *bufp,
00489     ub4            buflen,
00490     ub1            piece,
00491     void          *ctxp,
00492     sb4            (*cbfp)
00493     (
00494         void      *ctxp,
00495         void      *bufp,
00496         ub4       *len,
00497         ub1       *piece
00498     ),
00499     ub2            csid,
00500     ub1            csfrm
00501 );
00502 
00503 typedef sword (*OCILOBGETLENGTH)
00504 (
00505     OCISvcCtx     *svchp,
00506     OCIError      *errhp,
00507     OCILobLocator *locp,
00508     ub4           *lenp
00509 );
00510 
00511 typedef sword (*OCILOBGETCHUNKSIZE)
00512 (
00513     OCISvcCtx     *svchp,
00514     OCIError      *errhp,
00515     OCILobLocator *locp,
00516     ub4           *chunksizep
00517 );
00518 
00519 typedef sword (*OCILOBOPEN)
00520 (
00521     OCISvcCtx     *svchp,
00522     OCIError      *errhp,
00523     OCILobLocator *locp,
00524     ub1            mode
00525 );
00526 
00527 typedef sword (*OCILOBCLOSE)
00528 (
00529     OCISvcCtx     *svchp,
00530     OCIError      *errhp,
00531     OCILobLocator *locp
00532 );
00533 
00534 typedef sword (*OCILOBLOCATORASSIGN)
00535 (
00536     OCISvcCtx           *svchp,
00537     OCIError            *errhp,
00538     CONST OCILobLocator *src_locp,
00539     OCILobLocator      **dst_locpp
00540 );
00541 
00542 typedef sword (*OCILOBASSIGN)
00543 (
00544     OCIEnv              *envhp,
00545     OCIError            *errhp,
00546     CONST OCILobLocator *src_locp,
00547     OCILobLocator      **dst_locpp
00548 );
00549 
00550 typedef sword (*OCILOBENABLEBUFFERING)
00551 (
00552     OCISvcCtx     *svchp,
00553     OCIError      *errhp,
00554     OCILobLocator *locp
00555 );
00556 
00557 typedef sword (*OCILOBDISABLEBUFFERING)
00558 (
00559     OCISvcCtx     *svchp,
00560     OCIError      *errhp,
00561     OCILobLocator *locp
00562 );
00563 
00564 typedef sword (*OCILOBFILEOPEN)
00565 (
00566     OCISvcCtx     *svchp,
00567     OCIError      *errhp,
00568     OCILobLocator *filep,
00569     ub1            mode
00570 );
00571 
00572 typedef sword (*OCILOBFILECLOSE)
00573 (
00574     OCISvcCtx     *svchp,
00575     OCIError      *errhp,
00576     OCILobLocator *filep
00577 );
00578 
00579 typedef sword (*OCILOBFILECLOSEALL)
00580 (
00581     OCISvcCtx *svchp,
00582     OCIError  *errhp
00583 );
00584 
00585 typedef sword (*OCILOBFILEISOPEN)
00586 (
00587     OCISvcCtx     *svchp,
00588     OCIError      *errhp,
00589     OCILobLocator *filep,
00590     boolean       *flag
00591 );
00592 
00593 typedef sword (*OCILOBFILEEXISTS)
00594 (
00595     OCISvcCtx     *svchp,
00596     OCIError      *errhp,
00597     OCILobLocator *filep,
00598     boolean       *flag
00599 );
00600 
00601 typedef sword (*OCILOBFIELGETNAME)
00602 (
00603     OCIEnv              *envhp,
00604     OCIError            *errhp,
00605     CONST OCILobLocator *filep,
00606     OraText             *dir_alias,
00607     ub2                 *d_length,
00608     OraText             *filename,
00609     ub2                 *f_length
00610 );
00611 
00612 typedef sword (*OCILOBFILESETNAME)
00613 (
00614     OCIEnv         *envhp,
00615     OCIError       *errhp,
00616     OCILobLocator **filepp,
00617     CONST OraText  *dir_alias,
00618     ub2             d_length,
00619     CONST OraText  *filename,
00620     ub2             f_length
00621 );
00622 
00623 typedef sword (*OCILOBLOADFROMFILE)
00624 (
00625     OCISvcCtx     *svchp,
00626     OCIError      *errhp,
00627     OCILobLocator *dst_locp,
00628     OCILobLocator *src_filep,
00629     ub4            amount,
00630     ub4            dst_offset,
00631     ub4            src_offset
00632 );
00633 
00634 typedef sword (*OCILOBWRITEAPPEND)
00635 (
00636     OCISvcCtx     *svchp,
00637     OCIError      *errhp,
00638     OCILobLocator *lobp,
00639     ub4           *amtp,
00640     dvoid         *bufp,
00641     ub4            bufl,
00642     ub1            piece,
00643     dvoid         *ctxp,
00644     sb4            (*cbfp)
00645     (
00646         void      *ctxp,
00647         void      *bufp,
00648         ub4       *len,
00649         ub1       *piece
00650     ),
00651     ub2            csid,
00652     ub1            csfrm
00653 );
00654 
00655 typedef sword (*OCILOBISEQUAL)
00656 (
00657     OCIEnv              *envhp,
00658     CONST OCILobLocator *x,
00659     CONST OCILobLocator *y,
00660     boolean             *is_equal
00661 );
00662 
00663 typedef sword (*OCILOBFLUSHBUFFER)
00664 (
00665     OCISvcCtx     *svchp,
00666     OCIError      *errhp,
00667     OCILobLocator *locp,
00668     ub4            flag
00669 );
00670 
00671 typedef sword (*OCISERVERVERSION)
00672 (
00673     void     *hndlp,
00674     OCIError *errhp,
00675     OraText  *bufp,
00676     ub4       bufsz,
00677     ub1       hndltype
00678 );
00679 
00680 typedef sword (*OCIBREAK)
00681 (
00682     dvoid    *hndlp,
00683     OCIError *errhp
00684 );
00685 
00686 typedef sword (*OCIATTRGET)
00687 (
00688     const void *trgthndlp,
00689     ub4         trghndltyp,
00690     void       *attributep,
00691     ub4        *sizep,
00692     ub4         attrtype,
00693     OCIError   *errhp
00694 );
00695 
00696 typedef sword (*OCIATTRSET)
00697 (
00698     void     *trgthndlp,
00699     ub4       trghndltyp,
00700     void     *attributep,
00701     ub4       size,
00702     ub4       attrtype,
00703     OCIError *errhp
00704 );
00705 
00706 typedef sword (*OCIDATEASSIGN)
00707 (
00708     OCIError      *err,
00709     CONST OCIDate *from,
00710     OCIDate       *to
00711 );
00712 
00713 typedef sword (*OCIDATETOTEXT)
00714 (
00715     OCIError      *err,
00716     CONST OCIDate *date,
00717     CONST text    *fmt,
00718     ub1            fmt_length,
00719     CONST text    *lang_name,
00720     ub4            lang_length,
00721     ub4           *buf_size,
00722     text          *buf
00723 );
00724 
00725 typedef sword (*OCIDATEFROMTEXT)
00726 (
00727     OCIError   *err,
00728     CONST text *date_str,
00729     ub4         d_str_length,
00730     CONST text *fmt,
00731     ub1         fmt_length,
00732     CONST text *lang_name,
00733     ub4         lang_length,
00734     OCIDate    *date
00735 );
00736 
00737 typedef sword (*OCIDATECOMPARE)
00738 (
00739     OCIError      *err,
00740     CONST OCIDate *date1,
00741     CONST OCIDate *date2,
00742     sword         *result
00743 );
00744 
00745 typedef sword (*OCIDATEADDMONTHS)
00746 (
00747     OCIError      *err,
00748     CONST OCIDate *date,
00749     sb4            num_months,
00750     OCIDate       *result
00751 );
00752 
00753 typedef sword (*OCIDATEADDDAYS)
00754 (
00755     OCIError      *err,
00756     CONST OCIDate *date,
00757     sb4            num_days,
00758     OCIDate       *result
00759 );
00760 
00761 typedef sword (*OCIDATELASTDAY)
00762 (
00763     OCIError      *err,
00764     CONST OCIDate *date,
00765     OCIDate       *last_day
00766 );
00767 
00768 typedef sword (*OCIDATEDAYSBETWEEN)
00769 (
00770     OCIError      *err,
00771     CONST OCIDate *date1,
00772     CONST OCIDate *date2,
00773     sb4           *num_days
00774 );
00775 
00776 typedef sword (*OCIDATEZONETOZONE)
00777 (
00778     OCIError      *err,
00779     CONST OCIDate *date1,
00780     CONST text    *zon1,
00781     ub4            zon1_length,
00782     CONST text    *zon2,
00783     ub4            zon2_length,
00784     OCIDate       *date2
00785 );
00786 
00787 typedef sword (*OCIDATENEXTDAY)
00788 (
00789     OCIError      *err,
00790     CONST OCIDate *date,
00791     CONST text    *day_p,
00792     ub4            day_length,
00793     OCIDate       *next_day
00794 );
00795 
00796 typedef sword (*OCIDATECHECK)
00797 (
00798     OCIError      *err,
00799     CONST OCIDate *date,
00800     uword         *valid
00801 );
00802 
00803 typedef sword (*OCIDATESYSDATE)
00804 (
00805     OCIError *err,
00806     OCIDate  *sys_date
00807 );
00808 
00809 typedef sword (*OCIDESCRIBEANY)
00810 (
00811     OCISvcCtx   *svchp,
00812     OCIError    *errhp,
00813     dvoid       *objptr,
00814     ub4          objnm_len,
00815     ub1          objptr_typ,
00816     ub1          info_level,
00817     ub1          objtyp,
00818     OCIDescribe *dschp
00819 );
00820 
00821 typedef sword (*OCIINTERVALASSIGN)
00822 (
00823     dvoid             *hndl,
00824     OCIError          *err,
00825     CONST OCIInterval *inpinter,
00826     OCIInterval       *outinter
00827 );
00828 
00829 typedef sword (*OCIINTERVALCHECK)
00830 (
00831     dvoid             *hndl,
00832     OCIError          *err,
00833     CONST OCIInterval *interval,
00834     ub4               *valid
00835 );
00836 
00837 typedef sword (*OCIINTERVALCOMPARE)
00838 (
00839     dvoid       *hndl,
00840     OCIError    *err,
00841     OCIInterval *inter1,
00842     OCIInterval *inter2,
00843     sword       *result
00844 );
00845 
00846 typedef sword (*OCIINTERVALTOTEXT)
00847 (
00848     dvoid             *hndl,
00849     OCIError          *err,
00850     CONST OCIInterval *interval,
00851     ub1                lfprec,
00852     ub1                fsprec,
00853     OraText           *buffer,
00854     size_t             buflen,
00855     size_t            *resultlen
00856 );
00857 
00858 typedef sword (*OCIINTERVALFROMTEXT)
00859 (
00860     dvoid         *hndl,
00861     OCIError      *err,
00862     CONST OraText *inpstring,
00863     size_t         str_len,
00864     OCIInterval   *result
00865 );
00866 
00867 typedef sword (*OCIINTERVALFROMTZ)
00868 (
00869     dvoid         *hndl,
00870     OCIError      *err,
00871     CONST oratext *inpstring,
00872     size_t         str_len,
00873     OCIInterval   *result
00874 ) ;
00875 
00876 typedef sword (*OCIINTERVALGETDAYSECOND)
00877 (
00878     dvoid             *hndl,
00879     OCIError          *err,
00880     sb4               *dy,
00881     sb4               *hr,
00882     sb4               *mm,
00883     sb4               *ss,
00884     sb4               *fsec,
00885     CONST OCIInterval *interval
00886 );
00887 
00888 typedef sword (*OCIINTERVALGETYEARMONTH)
00889 (
00890     dvoid             *hndl,
00891     OCIError          *err,
00892     sb4               *yr,
00893     sb4               *mnth,
00894     CONST OCIInterval *interval
00895 );
00896 
00897 typedef sword (*OCIINTERVALSETDAYSECOND)
00898 (
00899     dvoid       *hndl,
00900     OCIError    *err,
00901     sb4          dy,
00902     sb4          hr,
00903     sb4          mm,
00904     sb4          ss,
00905     sb4          fsec,
00906     OCIInterval *result
00907 );
00908 
00909 typedef sword (*OCIINTERVALSETYEARMONTH)
00910 (
00911     dvoid       *hndl,
00912     OCIError    *err,
00913     sb4          yr,
00914     sb4          mnth,
00915     OCIInterval *result
00916 );
00917 
00918 typedef sword (*OCIINTERVALADD)
00919 (
00920     dvoid       *hndl,
00921     OCIError    *err,
00922     OCIInterval *addend1,
00923     OCIInterval *addend2,
00924     OCIInterval *result
00925 );
00926 
00927 typedef sword (*OCIINTERVALSUBTRACT)
00928 (
00929     dvoid       *hndl,
00930     OCIError    *err,
00931     OCIInterval *minuend,
00932     OCIInterval *subtrahend,
00933     OCIInterval *result
00934 );
00935 
00936 typedef sword (*OCIDATETIMEASSIGN)
00937 (
00938     dvoid             *hndl,
00939     OCIError          *err,
00940     CONST OCIDateTime *from,
00941     OCIDateTime       *to
00942 );
00943 
00944 typedef sword (*OCIDATETIMECHECK)
00945 (
00946     dvoid             *hndl,
00947     OCIError          *err,
00948     CONST OCIDateTime *date,
00949     ub4               *valid
00950 );
00951 
00952 typedef sword (*OCIDATETIMECOMPARE)
00953 (
00954     dvoid             *hndl,
00955     OCIError          *err,
00956     CONST OCIDateTime *date1,
00957     CONST OCIDateTime *date2,
00958     sword             *result
00959 );
00960 
00961 typedef sword (*OCIDATETIMECONSTRUCT)
00962 (
00963     dvoid       *hndl,
00964     OCIError    *err,
00965     OCIDateTime *datetime,
00966     sb2          year,
00967     ub1          month,
00968     ub1          day,
00969     ub1          hour,
00970     ub1          min,
00971     ub1          sec,
00972     ub4          fsec,
00973     OraText     *timezone,
00974     size_t       timezone_length
00975 );
00976 
00977 typedef sword (*OCIDATETIMECONVERT)
00978 (
00979     dvoid       *hndl,
00980     OCIError    *err,
00981     OCIDateTime *indate,
00982     OCIDateTime *outdate
00983 );
00984 
00985 typedef sword (*OCIDATETIMEFROMARRAY)
00986 (
00987     dvoid             *hndl,
00988     OCIError          *err,
00989     CONST ub1         *inarray,
00990     ub4               *len,
00991     ub1                type,
00992     OCIDateTime       *datetime,
00993     CONST OCIInterval *reftz,
00994     ub1                fsprec
00995 );
00996 
00997 typedef sword (*OCIDATETIMETOARRAY)
00998 (
00999     dvoid             *hndl,
01000     OCIError          *err,
01001     CONST OCIDateTime *datetime,
01002     CONST OCIInterval *reftz,
01003     ub1               *outarray,
01004     ub4               *len,
01005     ub1                fsprec
01006 );
01007 
01008 typedef sword (*OCIDATETIMEFROMTEXT)
01009 (
01010     dvoid         *hndl,
01011     OCIError      *err,
01012     CONST OraText *date_str,
01013     size_t         dstr_length,
01014     CONST OraText *fmt,
01015     ub1            fmt_length,
01016     CONST OraText *lang_name,
01017     size_t         lang_length,
01018     OCIDateTime   *datetime
01019 );
01020 
01021 typedef sword (*OCIDATETIMETOTEXT)
01022 (
01023     dvoid             *hndl,
01024     OCIError          *err,
01025     CONST OCIDateTime *date,
01026     CONST OraText     *fmt,
01027     ub1                fmt_length,
01028     ub1                fsprec,
01029     CONST OraText     *lang_name,
01030     size_t             lang_length,
01031     ub4               *buf_size,
01032     OraText           *buf
01033 );
01034 
01035 typedef sword (*OCIDATETIMEGETDATE)
01036 (
01037     dvoid             *hndl,
01038     OCIError          *err,
01039     CONST OCIDateTime *datetime,
01040     sb2               *year,
01041     ub1               *month,
01042     ub1               *day
01043 );
01044 
01045 typedef sword (*OCIDATETIMEGETTIME)
01046 (
01047     dvoid       *hndl,
01048     OCIError    *err,
01049     OCIDateTime *datetime,
01050     ub1         *hour,
01051     ub1         *min,
01052     ub1         *sec,
01053     ub4         *fsec
01054 );
01055 
01056 typedef sword (*OCIDATETIMEGETTIMEZONENAME)
01057 (
01058     dvoid             *hndl,
01059     OCIError          *err,
01060     CONST OCIDateTime *datetime,
01061     ub1               *buf,
01062     ub4               *buflen
01063 );
01064 
01065 typedef sword (*OCIDATETIMEGETTIMEZONEOFFSET)
01066 (
01067     dvoid             *hndl,
01068     OCIError          *err,
01069     CONST OCIDateTime *datetime,
01070     sb1               *hour,
01071     sb1               *min
01072 );
01073 
01074 typedef sword (*OCIDATETIMEINTERVALADD)
01075 (
01076     dvoid       *hndl,
01077     OCIError    *err,
01078     OCIDateTime *datetime,
01079     OCIInterval *inter,
01080     OCIDateTime *outdatetime
01081 );
01082 
01083 typedef sword (*OCIDATETIMEINTERVALSUB)
01084 (
01085     dvoid       *hndl,
01086     OCIError    *err,
01087     OCIDateTime *datetime,
01088     OCIInterval *inter,
01089     OCIDateTime *outdatetime
01090 );
01091 
01092 typedef sword (*OCIDATETIMESUBTRACT)
01093 (
01094     dvoid       *hndl,
01095     OCIError    *err,
01096     OCIDateTime *indate1,
01097     OCIDateTime *indate2,
01098     OCIInterval *inter
01099 );
01100 
01101 typedef sword (*OCIDATETIMESYSTIMESTAMP)
01102 (
01103     dvoid       *hndl,
01104     OCIError    *err,
01105     OCIDateTime *sys_date
01106 );
01107 
01108 typedef sword (*OCITYPEBYNAME)
01109 (
01110     OCIEnv          *env,
01111     OCIError        *err,
01112     CONST OCISvcCtx *svc,
01113     CONST text      *schema_name,
01114     ub4              s_length,
01115     CONST text      *type_name,
01116     ub4              t_length,
01117     CONST text      *version_name,
01118     ub4              v_length,
01119     OCIDuration      pin_duration,
01120     OCITypeGetOpt    get_option,
01121     OCIType        **tdo
01122 );
01123 
01124 typedef sword (*OCIOBJECTNEW)
01125 (
01126     OCIEnv          *env,
01127     OCIError        *err,
01128     CONST OCISvcCtx *svc,
01129     OCITypeCode      typecode,
01130     OCIType         *tdo,
01131     dvoid           *table,
01132     OCIDuration      duration,
01133     boolean          value,
01134     dvoid          **instance
01135 );
01136 
01137 typedef sword (*OCIOBJECTFREE)
01138 (
01139     OCIEnv   *env,
01140     OCIError *err,
01141     dvoid    *instance,
01142     ub2       flags
01143 );
01144 
01145 typedef sword (*OCIOBJECTGETATTR)
01146 (
01147     OCIEnv          *env,
01148     OCIError        *err,
01149     dvoid           *instance,
01150     dvoid           *null_struct,
01151     struct OCIType  *tdo,
01152     CONST text     **names,
01153     CONST ub4       *lengths,
01154     CONST ub4        name_count,
01155     CONST ub4       *indexes,
01156     CONST ub4        index_count,
01157     OCIInd          *attr_null_status,
01158     dvoid          **attr_null_struct,
01159     dvoid          **attr_value,
01160     struct OCIType **attr_tdo
01161 );
01162 
01163 typedef sword (*OCIOBJECTSETATTR)
01164 (
01165     OCIEnv         *env,
01166     OCIError       *err,
01167     dvoid          *instance,
01168     dvoid          *null_struct,
01169     struct OCIType *tdo,
01170     CONST text    **names,
01171     CONST ub4      *lengths,
01172     CONST ub4       name_count,
01173     CONST ub4      *indexes,
01174     CONST ub4       index_count,
01175     CONST OCIInd    null_status,
01176     CONST dvoid    *attr_null_struct,
01177     CONST dvoid    *attr_value
01178 );
01179 
01180 typedef sword (*OCIOBJECTPIN)
01181 (
01182     OCIEnv           *env,
01183     OCIError         *err,
01184     OCIRef           *object_ref,
01185     OCIComplexObject *corhdl,
01186     OCIPinOpt         pin_option,
01187     OCIDuration       pin_duration,
01188     OCILockOpt        lock_option,
01189     dvoid           **object
01190 );
01191 
01192 typedef sword (*OCIOBJECTUNPIN)
01193 (
01194     OCIEnv   *env,
01195     OCIError *err,
01196     dvoid    *object
01197 );
01198 
01199 typedef sword (*OCIOBJECTCOPY)
01200 (
01201     OCIEnv          *env,
01202     OCIError        *err,
01203     CONST OCISvcCtx *svc,
01204     dvoid           *source,
01205     dvoid           *null_source,
01206     dvoid           *target,
01207     dvoid           *null_target,
01208     OCIType         *tdo,
01209     OCIDuration      duration,
01210     ub1              option
01211 );
01212 
01213 typedef sword (*OCIOBJECTGETOBJECTREF)
01214 (
01215     OCIEnv   *env,
01216     OCIError *err,
01217     dvoid    *object,
01218     OCIRef   *object_ref
01219 );
01220 
01221 typedef sword (*OCIOBJECTGETPROPERTY)
01222 (
01223     OCIEnv         *envh,
01224     OCIError       *errh,
01225     const void     *obj,
01226     OCIObjectPropId propertyId,
01227     void           *property,
01228     ub4            *size
01229 );
01230 
01231 typedef sword (*OCIOBJECTGETIND)
01232 (
01233     OCIEnv   *env,
01234     OCIError *err,
01235     dvoid    *instance,
01236     dvoid   **null_struct
01237 );
01238 
01239 typedef sword (*OCIREFASSIGN)
01240 (
01241     OCIEnv       *env,
01242     OCIError     *err,
01243     CONST OCIRef *source,
01244     OCIRef      **target
01245 );
01246 
01247 typedef boolean (*OCIREFISNULL)
01248 (
01249     OCIEnv       *env,
01250     CONST OCIRef *ref
01251 );
01252 
01253 typedef void (*OCIREFCLEAR)
01254 (
01255     OCIEnv *env,
01256     OCIRef *ref
01257 );
01258 
01259 typedef sword (*OCIREFTOHEX)
01260 (
01261     OCIEnv       *env,
01262     OCIError     *err,
01263     CONST OCIRef *ref,
01264     oratext      *hex,
01265     ub4          *hex_length
01266 );
01267 
01268 typedef ub4 (*OCIREFHEXSIZE)
01269 (
01270     OCIEnv       *env,
01271     const OCIRef *ref
01272 );
01273 
01274 typedef sword (*OCINUMBERTOINT)
01275 (
01276     OCIError        *err,
01277     CONST OCINumber *number,
01278     uword            rsl_length,
01279     uword            rsl_flag,
01280     dvoid           *rsl
01281 );
01282 
01283 typedef sword (*OCINUMBERFROMINT)
01284 (
01285     OCIError    *err,
01286     CONST dvoid *inum,
01287     uword        inum_length,
01288     uword        inum_s_flag,
01289     OCINumber   *number
01290 );
01291 
01292 typedef sword (*OCINUMBERFROMREAL)
01293 (
01294     OCIError    *err,
01295     CONST dvoid *rnum,
01296     uword        rnum_length,
01297     OCINumber   *number
01298 );
01299 
01300 typedef sword (*OCINUMBERTOREAL)
01301 (
01302     OCIError        *err,
01303     CONST OCINumber *number,
01304     uword            rsl_length,
01305     dvoid           *rsl
01306 );
01307 
01308 typedef sword (*OCINUMBERTOTEXT)
01309 (
01310     OCIError        *err,
01311     CONST OCINumber *number,
01312     CONST text      *fmt,
01313     ub4              fmt_length,
01314     CONST text      *nls_params,
01315     ub4              nls_p_length,
01316     ub4             *buf_size,
01317     text            *buf
01318 );
01319 
01320 typedef sword (*OCINUMBERFROMTEXT)
01321 (
01322     OCIError      *err,
01323     CONST oratext *str,
01324     ub4            str_length,
01325     CONST oratext *fmt,
01326     ub4            fmt_length,
01327     CONST oratext *nls_params,
01328     ub4            nls_p_length,
01329     OCINumber     *number
01330 );
01331 
01332 typedef oratext * (*OCISTRINGPTR)
01333 (
01334     OCIEnv          *env,
01335     CONST OCIString *vs
01336 );
01337 
01338 typedef sword (*OCISTRINGASSIGNTEXT)
01339 (
01340     OCIEnv        *env,
01341     OCIError      *err,
01342     CONST oratext *rhs,
01343     ub4            rhs_len,
01344     OCIString    **lhs
01345 );
01346 
01347 typedef ub1 * (*OCIRAWPTR)
01348 (
01349     OCIEnv      * env,
01350     CONST OCIRaw *raw
01351 );
01352 
01353 typedef sword (*OCIRAWASSIGNBYTES)
01354 (
01355     OCIEnv    *env,
01356     OCIError  *err,
01357     CONST ub1 *rhs,
01358     ub4        rhs_len,
01359     OCIRaw   **lhs
01360 );
01361 
01362 typedef sword (*OCIRAWALLOCSIZE)
01363 (
01364     OCIEnv       *env,
01365     OCIError     *err,
01366     CONST OCIRaw *raw,
01367     ub4          *allocsize
01368 );
01369 
01370 typedef ub4 (*OCIRAWSIZE)
01371 (
01372     OCIEnv       *env,
01373     const OCIRaw *raw
01374 );
01375 
01376 typedef sword (*OCICONNECTIONPOOLCREATE)
01377 (
01378     OCIEnv        *envhp,
01379     OCIError      *errhp,
01380     OCICPool      *poolhp,
01381     OraText      **poolName,
01382     sb4           *poolNameLen,
01383     CONST OraText *dblink,
01384     sb4            dblinkLen,
01385     ub4            connMin,
01386     ub4            connMax,
01387     ub4            connIncr,
01388     CONST OraText *poolUserName,
01389     sb4            poolUserLen,
01390     CONST OraText *poolPassword,
01391     sb4            poolPassLen,
01392     ub4            mode
01393 );
01394 
01395 typedef sword (*OCICONNECTIONPOOLDESTROY)
01396 (
01397     OCICPool *poolhp,
01398     OCIError *errhp,
01399     ub4       mode
01400 );
01401 
01402 typedef sword (*OCISESSIONPOOLCREATE)
01403 (
01404     OCIEnv        *envhp,
01405     OCIError      *errhp,
01406     OCISPool      *spoolhp,
01407     OraText      **poolName,
01408     ub4           *poolNameLen,
01409     CONST OraText *connStr,
01410     ub4            connStrLen,
01411     ub4            sessMin,
01412     ub4            sessMax,
01413     ub4            sessIncr,
01414     OraText       *userid,
01415     ub4            useridLen,
01416     OraText       *password,
01417     ub4            passwordLen,
01418     ub4            mode
01419 );
01420 
01421 typedef sword (*OCISESSIONPOOLDESTROY)
01422 (
01423     OCISPool *spoolhp,
01424     OCIError *errhp,
01425     ub4       mode
01426 );
01427 
01428 typedef sword (*OCISESSIONGET)
01429 (
01430     OCIEnv        *envhp,
01431     OCIError      *errhp,
01432     OCISvcCtx    **svchp,
01433     OCIAuthInfo   *authhp,
01434     OraText       *poolName,
01435     ub4            poolName_len,
01436     CONST OraText *tagInfo,
01437     ub4            tagInfo_len,
01438     OraText      **retTagInfo,
01439     ub4           *retTagInfo_len,
01440     boolean       *found,
01441     ub4            mode
01442 );
01443 
01444 typedef sword (*OCISESSIONRELEASE)
01445 (
01446     OCISvcCtx *svchp,
01447     OCIError  *errhp,
01448     OraText   *tag,
01449     ub4        tag_len,
01450     ub4        mode
01451 );
01452 
01453 typedef sword (*OCICOLLSIZE)
01454 (
01455     OCIEnv        *env,
01456     OCIError      *err,
01457     CONST OCIColl *coll,
01458     sb4           *size
01459 );
01460 
01461 typedef sb4 (*OCICOLLMAX)
01462 (
01463     OCIEnv        *env,
01464     CONST OCIColl *coll
01465 );
01466 
01467 typedef sword (*OCICOLLGETITEM)
01468 (
01469     OCIEnv        *env,
01470     OCIError      *err,
01471     CONST OCIColl *coll,
01472     sb4            index,
01473     boolean       *exists,
01474     dvoid        **elem,
01475     dvoid        **elemind
01476 );
01477 
01478 typedef sword (*OCICOLLASSIGNELEM)
01479 (
01480     OCIEnv      *env,
01481     OCIError    *err,
01482     sb4          index,
01483     CONST dvoid *elem,
01484     CONST dvoid *elemind,
01485     OCIColl     *coll
01486 );
01487 
01488 typedef sword (*OCICOLLASSIGN)
01489 (
01490     OCIEnv        *env,
01491     OCIError      *err,
01492     CONST OCIColl *rhs,
01493     OCIColl       *lhs
01494 );
01495 
01496 typedef sword (*OCICOLLAPPEND)
01497 (
01498     OCIEnv      *env,
01499     OCIError    *err,
01500     CONST dvoid *elem,
01501     CONST dvoid *elemind,
01502     OCIColl     *coll
01503 );
01504 
01505 typedef sword (*OCICOLLTRIM)
01506 (
01507     OCIEnv   *env,
01508     OCIError *err,
01509     sb4       trim_num,
01510     OCIColl  *coll
01511 );
01512 
01513 typedef sword (*OCIITERCREATE)
01514 (
01515     OCIEnv        *env,
01516     OCIError      *err,
01517     CONST OCIColl *coll,
01518     OCIIter      **itr
01519 );
01520 
01521 typedef sword (*OCIITERDELETE)
01522 (
01523     OCIEnv   *env,
01524     OCIError *err,
01525     OCIIter **itr
01526 );
01527 
01528 typedef sword (*OCIITERINIT)
01529 (
01530     OCIEnv        *env,
01531     OCIError      *err,
01532     CONST OCIColl *coll,
01533     OCIIter       *itr
01534 );
01535 
01536 typedef sword (*OCIITERNEXT)
01537 (
01538     OCIEnv   *env,
01539     OCIError *err,
01540     OCIIter  *itr,
01541     void    **elem,
01542     dvoid   **elemind,
01543     boolean  *eoc
01544 );
01545 
01546 typedef sword (*OCIITERPREV)
01547 (
01548     OCIEnv   *env,
01549     OCIError *err,
01550     OCIIter  *itr,
01551     dvoid   **elem,
01552     dvoid   **elemind,
01553     boolean  *boc
01554 );
01555 
01556 typedef sword (*OCIAQENQ)
01557 (
01558     OCISvcCtx          *svchp,
01559     OCIError           *errhp,
01560     OraText            *queue_name,
01561     OCIAQEnqOptions    *enqopt,
01562     OCIAQMsgProperties *msgprop,
01563     OCIType            *payload_tdo,
01564     dvoid             **payload,
01565     dvoid             **payload_ind,
01566     OCIRaw            **msgid,
01567     ub4                 flags
01568 );
01569 
01570 typedef sword (*OCIAQDEQ)
01571 (
01572     OCISvcCtx          *svchp,
01573     OCIError           *errhp,
01574     OraText            *queue_name,
01575     OCIAQDeqOptions    *deqopt,
01576     OCIAQMsgProperties *msgprop,
01577     OCIType            *payload_tdo,
01578     dvoid             **payload,
01579     dvoid             **payload_ind,
01580     OCIRaw            **msgid,
01581     ub4                 flags
01582 );
01583 
01584 typedef sword (*OCIAQLISTEN)
01585 (
01586     OCISvcCtx   *svchp,
01587     OCIError    *errhp,
01588     OCIAQAgent **agent_list,
01589     ub4          num_agents,
01590     sb4          wait,
01591     OCIAQAgent **agent,
01592     ub4          flags
01593 );
01594 
01595 /* API introduced in 8.1 */
01596 
01597 typedef void (*OCITHREADPROCESSINIT)
01598 (
01599 );
01600 
01601 typedef sword (*OCITHREADINIT)
01602 (
01603     dvoid    *hndl,
01604     OCIError *err
01605 );
01606 
01607 typedef sword (*OCITHREADTERM)
01608 (
01609     dvoid    *hndl,
01610     OCIError *err
01611 );
01612 
01613 typedef sword (*OCITHREADIDINIT)
01614 (
01615     dvoid        *hndl,
01616     OCIError     *err,
01617     OCIThreadId **tid
01618 );
01619 
01620 typedef sword (*OCITHREADIDDESTROY)
01621 (
01622     dvoid        *hndl,
01623     OCIError     *err,
01624     OCIThreadId **tid
01625 );
01626 
01627 typedef sword (*OCITHREADHNDINIT)
01628 (
01629     dvoid            *hndl,
01630     OCIError         *err,
01631     OCIThreadHandle **thnd
01632 );
01633 
01634 typedef sword (*OCITHREADHNDDESTROY)
01635 (
01636     dvoid            *hndl,
01637     OCIError         *err,
01638     OCIThreadHandle **thnd
01639 );
01640 
01641 typedef sword (*OCITHREADCREATE)
01642 (
01643     dvoid           *hndl,
01644     OCIError        *err,
01645     void             (*start)
01646     (
01647         dvoid *
01648     ),
01649     dvoid           *arg,
01650     OCIThreadId     *tid,
01651     OCIThreadHandle *tHnd
01652 );
01653 
01654 typedef sword (*OCITHREADJOIN)
01655 (
01656     dvoid           *hndl,
01657     OCIError        *err,
01658     OCIThreadHandle *tHnd
01659 );
01660 
01661 typedef sword (*OCITHREADCLOSE)
01662 (
01663     dvoid           *hndl,
01664     OCIError        *err,
01665     OCIThreadHandle *tHnd
01666 );
01667 
01668 typedef sword (*OCITHREADMUTEXINIT)
01669 (
01670     dvoid           *hndl,
01671     OCIError        *err,
01672     OCIThreadMutex **mutex
01673 );
01674 
01675 typedef sword (*OCITHREADMUTEXDESTROY)
01676 (
01677     dvoid           *hndl,
01678     OCIError        *err,
01679     OCIThreadMutex **mutex
01680 );
01681 
01682 typedef sword (*OCITHREADMUTEXACQUIRE)
01683 (
01684     dvoid          *hndl,
01685     OCIError       *err,
01686     OCIThreadMutex *mutex
01687 );
01688 
01689 typedef sword (*OCITHREADMUTEXRELEASE)
01690 (
01691     dvoid          *hndl,
01692     OCIError       *err,
01693     OCIThreadMutex *mutex
01694 );
01695 
01696 typedef sword (*OCITHREADKEYINIT)
01697 (
01698     dvoid         *hndl,
01699     OCIError      *err,
01700     OCIThreadKey **key,
01701     void           (*destFn)
01702     (
01703         void *
01704     )
01705 );
01706 
01707 typedef sword (*OCITHREADKEYDESTROY)
01708 (
01709     dvoid         *hndl,
01710     OCIError      *err,
01711     OCIThreadKey **key
01712 );
01713 
01714 typedef sword (*OCITHREADKEYSET)
01715 (
01716     dvoid        *hndl,
01717     OCIError     *err,
01718     OCIThreadKey *key,
01719     dvoid       **pValue
01720 );
01721 
01722 typedef sword (*OCITHREADKEYGET)
01723 (
01724     dvoid        *hndl,
01725     OCIError     *err,
01726     OCIThreadKey *key,
01727     dvoid        *value
01728 );
01729 
01730 typedef sword (*OCIDIRPATHABORT)
01731 (
01732     OCIDirPathCtx *dpctx,
01733     OCIError      *errhp
01734 );
01735 
01736 typedef sword (*OCIDIRPATHDATASAVE)
01737 (
01738     OCIDirPathCtx *dpctx,
01739     OCIError      *errhp,
01740     ub4            action
01741 );
01742 
01743 typedef sword (*OCIDIRPATHFINISH)
01744 (
01745     OCIDirPathCtx *dpctx,
01746     OCIError      *errhp
01747 );
01748 
01749 typedef sword (*OCIDIRPATHPREPARE)
01750 (
01751     OCIDirPathCtx *dpctx,
01752     OCISvcCtx     *svchp,
01753     OCIError      *errhp
01754 );
01755 
01756 typedef sword (*OCIDIRPATHLOADSTREAM)
01757 (
01758     OCIDirPathCtx    *dpctx,
01759     OCIDirPathStream *dpstr,
01760     OCIError         *errhp
01761 );
01762 
01763 typedef sword (*OCIDIRPATHCOLARRAYENTRYSET)
01764 (
01765     OCIDirPathColArray *dpca,
01766     OCIError           *errhp,
01767     ub4                 rownum,
01768     ub2                 colIdx,
01769     ub1                *cvalp,
01770     ub4                 clen,
01771     ub1                 cflg
01772 );
01773 
01774 typedef sword (*OCIDIRPATHCOLARRAYRESET)
01775 (
01776     OCIDirPathColArray *dpca,
01777     OCIError           *errhp
01778 );
01779 
01780 typedef sword (*OCIDIRPATHCOLARRAYTOSTREAM)
01781 (
01782     OCIDirPathColArray *dpca,
01783     OCIDirPathCtx      *dpctx,
01784     OCIDirPathStream   *dpstr,
01785     OCIError           *errhp,
01786     ub4                 rowcnt,
01787     ub4                 rowoff
01788 );
01789 
01790 typedef sword (*OCIDIRPATHSTREAMRESET)
01791 (
01792     OCIDirPathStream *dpstr,
01793     OCIError         *errhp
01794 );
01795 
01796 typedef sword (*OCIDIRPATHFLUSHROW)
01797 (
01798     OCIDirPathCtx *dpctx,
01799     OCIError      *errhp
01800 );
01801 
01802 typedef sword (*OCICACHEFREE)
01803 (
01804     OCIEnv          *env,
01805     OCIError        *err,
01806     CONST OCISvcCtx *svc
01807 );
01808 
01809 typedef sword (*OCISUBSCRIPTIONREGISTER)
01810 (
01811     OCISvcCtx        *svchp,
01812     OCISubscription **subscrhpp,
01813     ub2               count,
01814     OCIError         *errhp,
01815     ub4               mode
01816 );
01817 
01818 typedef sword (*OCISUBSCRIPTIONUNREGISTER)
01819 (
01820     OCISvcCtx       *svchp,
01821     OCISubscription *subscrhp,
01822     OCIError        *errhp,
01823     ub4              mode
01824 );
01825 
01826 /* API introduced in 9.1 */
01827 
01828 typedef sword (*OCISTMTFETCH2 )
01829 (
01830     OCIStmt  *stmtp,
01831     OCIError *errhp,
01832     ub4       nrows,
01833     ub2       orientation,
01834     sb4       fetchOffset,
01835     ub4       mode
01836 );
01837 
01838 /* API introduced in 9.2 */
01839 
01840 typedef sword (*OCISTMTPREPARE2)
01841 (
01842     OCISvcCtx     *svchp,
01843     OCIStmt      **stmtp,
01844     OCIError      *errhp,
01845     CONST OraText *stmt,
01846     ub4            stmt_len,
01847     CONST OraText *key,
01848     ub4            key_len,
01849     ub4            language,
01850     ub4            mode
01851 );
01852 
01853 typedef sword (*OCISTMTRELEASE)
01854 (
01855     OCIStmt       *stmtp,
01856     OCIError      *errhp,
01857     CONST OraText *key,
01858     ub4            key_len,
01859     ub4            mode
01860 );
01861 
01862 /* API introduced in 10.1 */
01863 
01864 #ifdef ORAXB8_DEFINED
01865 
01866 typedef sword (*OCILOBGETSTORAGELIMIT)
01867 (
01868     OCISvcCtx     *svchp,
01869     OCIError      *errhp,
01870     OCILobLocator *lobp,
01871     oraub8        *limitp
01872 );
01873 
01874 typedef sword (*OCILOBCOPY2)
01875 (
01876     OCISvcCtx     *svchp,
01877     OCIError      *errhp,
01878     OCILobLocator *dst_locp,
01879     OCILobLocator *src_locp,
01880     oraub8         amount,
01881     oraub8         dst_offset,
01882     oraub8         src_offset
01883 );
01884 
01885 typedef sword (*OCILOBERASE2)
01886 (
01887     OCISvcCtx     *svchp,
01888     OCIError      *errhp,
01889     OCILobLocator *locp,
01890     oraub8        *amount,
01891     oraub8         offset
01892 );
01893 
01894 typedef sword (*OCILOBGETLENGTH2)
01895 (
01896     OCISvcCtx     *svchp,
01897     OCIError      *errhp,
01898     OCILobLocator *locp,
01899     oraub8        *lenp
01900 );
01901 
01902 typedef sword (*OCILOBLOADFROMFILE2)
01903 (
01904     OCISvcCtx     *svchp,
01905     OCIError      *errhp,
01906     OCILobLocator *dst_locp,
01907     OCILobLocator *src_filep,
01908     oraub8         amount,
01909     oraub8         dst_offset,
01910     oraub8         src_offset
01911 );
01912 
01913 typedef sword (*OCILOBREAD2)
01914 (
01915     OCISvcCtx       *svchp,
01916     OCIError        *errhp,
01917     OCILobLocator   *locp,
01918     oraub8          *byte_amtp,
01919     oraub8          *char_amtp,
01920     oraub8           offset,
01921     dvoid           *bufp,
01922     oraub8           bufl,
01923     ub1              piece,
01924     dvoid           *ctxp,
01925     sb4              (*cbfp)
01926     (
01927         dvoid       *ctxp,
01928         CONST dvoid *bufp,
01929         oraub8       len,
01930         ub1          piece,
01931         dvoid      **changed_bufpp,
01932         oraub8      *changed_lenp
01933     ),
01934     ub2              csid,
01935     ub1              csfrm
01936 );
01937 
01938 typedef sword (*OCILOBTRIM2)
01939 (
01940     OCISvcCtx     *svchp,
01941     OCIError      *errhp,
01942     OCILobLocator *locp,
01943     oraub8         newlen
01944 );
01945 
01946 typedef sword (*OCILOBWRITE2)
01947 (
01948     OCISvcCtx       *svchp,
01949     OCIError        *errhp,
01950     OCILobLocator   *locp,
01951     oraub8          *byte_amtp,
01952     oraub8          *char_amtp,
01953     oraub8           offset,
01954     dvoid           *bufp,
01955     oraub8           buflen,
01956     ub1              piece,
01957     dvoid           *ctxp,
01958     sb4              (*cbfp)
01959     (
01960         dvoid       *ctxp,
01961         CONST dvoid *bufp,
01962         oraub8       len,
01963         ub1          piece,
01964         dvoid      **changed_bufpp,
01965         oraub8      *changed_lenp
01966     ),
01967     ub2              csid,
01968     ub1              csfrm
01969 );
01970 
01971 typedef sword (*OCILOBWRITEAPPEND2)
01972 (
01973     OCISvcCtx     *svchp,
01974     OCIError      *errhp,
01975     OCILobLocator *lobp,
01976     oraub8        *byte_amtp,
01977     oraub8        *char_amtp,
01978     dvoid         *bufp,
01979     oraub8         bufl,
01980     ub1            piece,
01981     dvoid         *ctxp,
01982     sb4            (*cbfp)
01983     (
01984         dvoid     *ctxp,
01985         dvoid     *bufp,
01986         oraub8    *lenp,
01987         ub1       *piece,
01988         dvoid    **changed_bufpp,
01989         oraub8    *changed_lenp
01990     ),
01991     ub2            csid,
01992     ub1            csfrm
01993 );
01994 
01995 #endif /* ORAXB8_DEFINED */
01996 
01997 /* API introduced in 10.2 */
01998 
01999 /* Oracle 10g test */
02000 
02001 typedef void (*OCICLIENTVERSION)
02002 (
02003     sword *major_version,
02004     sword *minor_version,
02005     sword *update_num,
02006     sword *patch_num,
02007     sword *port_update_num
02008 );
02009 
02010 typedef sword (*OCIDBSTARTUP)
02011 (
02012     OCISvcCtx *svchp,
02013     OCIError  *errhp,
02014     OCIAdmin  *admhp,
02015     ub4        mode,
02016     ub4        flags
02017 );
02018 
02019 typedef sword (*OCIDBSHUTDOWN)
02020 (
02021     OCISvcCtx *svchp,
02022     OCIError  *errhp,
02023     OCIAdmin  *admhp,
02024     ub4        mode
02025 );
02026 
02027 typedef sword (*OCIPING)
02028 (
02029     OCISvcCtx *svchp,
02030     OCIError  *errhp,
02031     ub4        mode
02032 );
02033 
02034 /* API introduced in 11.1 */
02035 
02036 typedef sword (*OCIARRAYDESCRIPTORALLOC)
02037 (
02038     const void  *parenth,
02039     void       **descpp,
02040     const ub4    type,
02041     ub4          array_size,
02042     const size_t xtramem_sz,
02043     void       **usrmempp
02044 );
02045 
02046 typedef sword (*OCIARRAYDESCRIPTORFREE)
02047 (
02048     void    **descp,
02049     const ub4 type
02050 );
02051 
02052 /* API introduced in 11.2 */
02053 
02054 #endif /* OCILIB_OCI_API_H_INCLUDED */
02055 

Generated on Sun Oct 24 2010 22:02:54 for OCILIB (C Driver for Oracle) by  doxygen 1.7.1