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

Generated on Thu Jul 30 17:41:53 2009 for OCILIB (C Driver for Oracle) by  doxygen 1.5.4