OCILIB (C Driver for Oracle) 3.9.1
|
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-2011 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.9.1 2011-07-08 00:00 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 (*OCIRAWRESIZE) 01363 ( 01364 OCIEnv *env, 01365 OCIError *err, 01366 ub4 new_size, 01367 OCIRaw **raw 01368 ); 01369 01370 typedef sword (*OCIRAWALLOCSIZE) 01371 ( 01372 OCIEnv *env, 01373 OCIError *err, 01374 CONST OCIRaw *raw, 01375 ub4 *allocsize 01376 ); 01377 01378 typedef ub4 (*OCIRAWSIZE) 01379 ( 01380 OCIEnv *env, 01381 const OCIRaw *raw 01382 ); 01383 01384 typedef sword (*OCICONNECTIONPOOLCREATE) 01385 ( 01386 OCIEnv *envhp, 01387 OCIError *errhp, 01388 OCICPool *poolhp, 01389 OraText **poolName, 01390 sb4 *poolNameLen, 01391 CONST OraText *dblink, 01392 sb4 dblinkLen, 01393 ub4 connMin, 01394 ub4 connMax, 01395 ub4 connIncr, 01396 CONST OraText *poolUserName, 01397 sb4 poolUserLen, 01398 CONST OraText *poolPassword, 01399 sb4 poolPassLen, 01400 ub4 mode 01401 ); 01402 01403 typedef sword (*OCICONNECTIONPOOLDESTROY) 01404 ( 01405 OCICPool *poolhp, 01406 OCIError *errhp, 01407 ub4 mode 01408 ); 01409 01410 typedef sword (*OCISESSIONPOOLCREATE) 01411 ( 01412 OCIEnv *envhp, 01413 OCIError *errhp, 01414 OCISPool *spoolhp, 01415 OraText **poolName, 01416 ub4 *poolNameLen, 01417 CONST OraText *connStr, 01418 ub4 connStrLen, 01419 ub4 sessMin, 01420 ub4 sessMax, 01421 ub4 sessIncr, 01422 OraText *userid, 01423 ub4 useridLen, 01424 OraText *password, 01425 ub4 passwordLen, 01426 ub4 mode 01427 ); 01428 01429 typedef sword (*OCISESSIONPOOLDESTROY) 01430 ( 01431 OCISPool *spoolhp, 01432 OCIError *errhp, 01433 ub4 mode 01434 ); 01435 01436 typedef sword (*OCISESSIONGET) 01437 ( 01438 OCIEnv *envhp, 01439 OCIError *errhp, 01440 OCISvcCtx **svchp, 01441 OCIAuthInfo *authhp, 01442 OraText *poolName, 01443 ub4 poolName_len, 01444 CONST OraText *tagInfo, 01445 ub4 tagInfo_len, 01446 OraText **retTagInfo, 01447 ub4 *retTagInfo_len, 01448 boolean *found, 01449 ub4 mode 01450 ); 01451 01452 typedef sword (*OCISESSIONRELEASE) 01453 ( 01454 OCISvcCtx *svchp, 01455 OCIError *errhp, 01456 OraText *tag, 01457 ub4 tag_len, 01458 ub4 mode 01459 ); 01460 01461 typedef sword (*OCICOLLSIZE) 01462 ( 01463 OCIEnv *env, 01464 OCIError *err, 01465 CONST OCIColl *coll, 01466 sb4 *size 01467 ); 01468 01469 typedef sb4 (*OCICOLLMAX) 01470 ( 01471 OCIEnv *env, 01472 CONST OCIColl *coll 01473 ); 01474 01475 typedef sword (*OCICOLLGETITEM) 01476 ( 01477 OCIEnv *env, 01478 OCIError *err, 01479 CONST OCIColl *coll, 01480 sb4 index, 01481 boolean *exists, 01482 dvoid **elem, 01483 dvoid **elemind 01484 ); 01485 01486 typedef sword (*OCICOLLASSIGNELEM) 01487 ( 01488 OCIEnv *env, 01489 OCIError *err, 01490 sb4 index, 01491 CONST dvoid *elem, 01492 CONST dvoid *elemind, 01493 OCIColl *coll 01494 ); 01495 01496 typedef sword (*OCICOLLASSIGN) 01497 ( 01498 OCIEnv *env, 01499 OCIError *err, 01500 CONST OCIColl *rhs, 01501 OCIColl *lhs 01502 ); 01503 01504 typedef sword (*OCICOLLAPPEND) 01505 ( 01506 OCIEnv *env, 01507 OCIError *err, 01508 CONST dvoid *elem, 01509 CONST dvoid *elemind, 01510 OCIColl *coll 01511 ); 01512 01513 typedef sword (*OCICOLLTRIM) 01514 ( 01515 OCIEnv *env, 01516 OCIError *err, 01517 sb4 trim_num, 01518 OCIColl *coll 01519 ); 01520 01521 typedef sword (*OCIITERCREATE) 01522 ( 01523 OCIEnv *env, 01524 OCIError *err, 01525 CONST OCIColl *coll, 01526 OCIIter **itr 01527 ); 01528 01529 typedef sword (*OCIITERDELETE) 01530 ( 01531 OCIEnv *env, 01532 OCIError *err, 01533 OCIIter **itr 01534 ); 01535 01536 typedef sword (*OCIITERINIT) 01537 ( 01538 OCIEnv *env, 01539 OCIError *err, 01540 CONST OCIColl *coll, 01541 OCIIter *itr 01542 ); 01543 01544 typedef sword (*OCIITERNEXT) 01545 ( 01546 OCIEnv *env, 01547 OCIError *err, 01548 OCIIter *itr, 01549 void **elem, 01550 dvoid **elemind, 01551 boolean *eoc 01552 ); 01553 01554 typedef sword (*OCIITERPREV) 01555 ( 01556 OCIEnv *env, 01557 OCIError *err, 01558 OCIIter *itr, 01559 dvoid **elem, 01560 dvoid **elemind, 01561 boolean *boc 01562 ); 01563 01564 typedef sword (*OCIAQENQ) 01565 ( 01566 OCISvcCtx *svchp, 01567 OCIError *errhp, 01568 OraText *queue_name, 01569 OCIAQEnqOptions *enqopt, 01570 OCIAQMsgProperties *msgprop, 01571 OCIType *payload_tdo, 01572 dvoid **payload, 01573 dvoid **payload_ind, 01574 OCIRaw **msgid, 01575 ub4 flags 01576 ); 01577 01578 typedef sword (*OCIAQDEQ) 01579 ( 01580 OCISvcCtx *svchp, 01581 OCIError *errhp, 01582 OraText *queue_name, 01583 OCIAQDeqOptions *deqopt, 01584 OCIAQMsgProperties *msgprop, 01585 OCIType *payload_tdo, 01586 dvoid **payload, 01587 dvoid **payload_ind, 01588 OCIRaw **msgid, 01589 ub4 flags 01590 ); 01591 01592 typedef sword (*OCIAQLISTEN) 01593 ( 01594 OCISvcCtx *svchp, 01595 OCIError *errhp, 01596 OCIAQAgent **agent_list, 01597 ub4 num_agents, 01598 sb4 wait, 01599 OCIAQAgent **agent, 01600 ub4 flags 01601 ); 01602 01603 typedef OCISvcCtx * (*XAOSVCCTX) 01604 ( 01605 OraText *dbname 01606 ); 01607 01608 typedef OCIEnv * (*XAOENV) 01609 ( 01610 OraText *dbname 01611 ); 01612 01613 /* API introduced in 8.1 */ 01614 01615 typedef void (*OCITHREADPROCESSINIT) 01616 ( 01617 void 01618 ); 01619 01620 typedef sword (*OCITHREADINIT) 01621 ( 01622 dvoid *hndl, 01623 OCIError *err 01624 ); 01625 01626 typedef sword (*OCITHREADTERM) 01627 ( 01628 dvoid *hndl, 01629 OCIError *err 01630 ); 01631 01632 typedef sword (*OCITHREADIDINIT) 01633 ( 01634 dvoid *hndl, 01635 OCIError *err, 01636 OCIThreadId **tid 01637 ); 01638 01639 typedef sword (*OCITHREADIDDESTROY) 01640 ( 01641 dvoid *hndl, 01642 OCIError *err, 01643 OCIThreadId **tid 01644 ); 01645 01646 typedef sword (*OCITHREADHNDINIT) 01647 ( 01648 dvoid *hndl, 01649 OCIError *err, 01650 OCIThreadHandle **thnd 01651 ); 01652 01653 typedef sword (*OCITHREADHNDDESTROY) 01654 ( 01655 dvoid *hndl, 01656 OCIError *err, 01657 OCIThreadHandle **thnd 01658 ); 01659 01660 typedef sword (*OCITHREADCREATE) 01661 ( 01662 dvoid *hndl, 01663 OCIError *err, 01664 void (*start) 01665 ( 01666 dvoid * 01667 ), 01668 dvoid *arg, 01669 OCIThreadId *tid, 01670 OCIThreadHandle *tHnd 01671 ); 01672 01673 typedef sword (*OCITHREADJOIN) 01674 ( 01675 dvoid *hndl, 01676 OCIError *err, 01677 OCIThreadHandle *tHnd 01678 ); 01679 01680 typedef sword (*OCITHREADCLOSE) 01681 ( 01682 dvoid *hndl, 01683 OCIError *err, 01684 OCIThreadHandle *tHnd 01685 ); 01686 01687 typedef sword (*OCITHREADMUTEXINIT) 01688 ( 01689 dvoid *hndl, 01690 OCIError *err, 01691 OCIThreadMutex **mutex 01692 ); 01693 01694 typedef sword (*OCITHREADMUTEXDESTROY) 01695 ( 01696 dvoid *hndl, 01697 OCIError *err, 01698 OCIThreadMutex **mutex 01699 ); 01700 01701 typedef sword (*OCITHREADMUTEXACQUIRE) 01702 ( 01703 dvoid *hndl, 01704 OCIError *err, 01705 OCIThreadMutex *mutex 01706 ); 01707 01708 typedef sword (*OCITHREADMUTEXRELEASE) 01709 ( 01710 dvoid *hndl, 01711 OCIError *err, 01712 OCIThreadMutex *mutex 01713 ); 01714 01715 typedef sword (*OCITHREADKEYINIT) 01716 ( 01717 dvoid *hndl, 01718 OCIError *err, 01719 OCIThreadKey **key, 01720 void (*destFn) 01721 ( 01722 void * 01723 ) 01724 ); 01725 01726 typedef sword (*OCITHREADKEYDESTROY) 01727 ( 01728 dvoid *hndl, 01729 OCIError *err, 01730 OCIThreadKey **key 01731 ); 01732 01733 typedef sword (*OCITHREADKEYSET) 01734 ( 01735 dvoid *hndl, 01736 OCIError *err, 01737 OCIThreadKey *key, 01738 dvoid **pValue 01739 ); 01740 01741 typedef sword (*OCITHREADKEYGET) 01742 ( 01743 dvoid *hndl, 01744 OCIError *err, 01745 OCIThreadKey *key, 01746 dvoid *value 01747 ); 01748 01749 typedef sword (*OCIDIRPATHABORT) 01750 ( 01751 OCIDirPathCtx *dpctx, 01752 OCIError *errhp 01753 ); 01754 01755 typedef sword (*OCIDIRPATHDATASAVE) 01756 ( 01757 OCIDirPathCtx *dpctx, 01758 OCIError *errhp, 01759 ub4 action 01760 ); 01761 01762 typedef sword (*OCIDIRPATHFINISH) 01763 ( 01764 OCIDirPathCtx *dpctx, 01765 OCIError *errhp 01766 ); 01767 01768 typedef sword (*OCIDIRPATHPREPARE) 01769 ( 01770 OCIDirPathCtx *dpctx, 01771 OCISvcCtx *svchp, 01772 OCIError *errhp 01773 ); 01774 01775 typedef sword (*OCIDIRPATHLOADSTREAM) 01776 ( 01777 OCIDirPathCtx *dpctx, 01778 OCIDirPathStream *dpstr, 01779 OCIError *errhp 01780 ); 01781 01782 typedef sword (*OCIDIRPATHCOLARRAYENTRYSET) 01783 ( 01784 OCIDirPathColArray *dpca, 01785 OCIError *errhp, 01786 ub4 rownum, 01787 ub2 colIdx, 01788 ub1 *cvalp, 01789 ub4 clen, 01790 ub1 cflg 01791 ); 01792 01793 typedef sword (*OCIDIRPATHCOLARRAYRESET) 01794 ( 01795 OCIDirPathColArray *dpca, 01796 OCIError *errhp 01797 ); 01798 01799 typedef sword (*OCIDIRPATHCOLARRAYTOSTREAM) 01800 ( 01801 OCIDirPathColArray *dpca, 01802 OCIDirPathCtx *dpctx, 01803 OCIDirPathStream *dpstr, 01804 OCIError *errhp, 01805 ub4 rowcnt, 01806 ub4 rowoff 01807 ); 01808 01809 typedef sword (*OCIDIRPATHSTREAMRESET) 01810 ( 01811 OCIDirPathStream *dpstr, 01812 OCIError *errhp 01813 ); 01814 01815 typedef sword (*OCIDIRPATHFLUSHROW) 01816 ( 01817 OCIDirPathCtx *dpctx, 01818 OCIError *errhp 01819 ); 01820 01821 typedef sword (*OCICACHEFREE) 01822 ( 01823 OCIEnv *env, 01824 OCIError *err, 01825 CONST OCISvcCtx *svc 01826 ); 01827 01828 typedef sword (*OCISUBSCRIPTIONREGISTER) 01829 ( 01830 OCISvcCtx *svchp, 01831 OCISubscription **subscrhpp, 01832 ub2 count, 01833 OCIError *errhp, 01834 ub4 mode 01835 ); 01836 01837 typedef sword (*OCISUBSCRIPTIONUNREGISTER) 01838 ( 01839 OCISvcCtx *svchp, 01840 OCISubscription *subscrhp, 01841 OCIError *errhp, 01842 ub4 mode 01843 ); 01844 01845 /* API introduced in 9.1 */ 01846 01847 typedef sword (*OCISTMTFETCH2 ) 01848 ( 01849 OCIStmt *stmtp, 01850 OCIError *errhp, 01851 ub4 nrows, 01852 ub2 orientation, 01853 sb4 fetchOffset, 01854 ub4 mode 01855 ); 01856 01857 /* API introduced in 9.2 */ 01858 01859 typedef sword (*OCISTMTPREPARE2) 01860 ( 01861 OCISvcCtx *svchp, 01862 OCIStmt **stmtp, 01863 OCIError *errhp, 01864 CONST OraText *stmt, 01865 ub4 stmt_len, 01866 CONST OraText *key, 01867 ub4 key_len, 01868 ub4 language, 01869 ub4 mode 01870 ); 01871 01872 typedef sword (*OCISTMTRELEASE) 01873 ( 01874 OCIStmt *stmtp, 01875 OCIError *errhp, 01876 CONST OraText *key, 01877 ub4 key_len, 01878 ub4 mode 01879 ); 01880 01881 /* API introduced in 10.1 */ 01882 01883 #ifdef ORAXB8_DEFINED 01884 01885 typedef sword (*OCILOBGETSTORAGELIMIT) 01886 ( 01887 OCISvcCtx *svchp, 01888 OCIError *errhp, 01889 OCILobLocator *lobp, 01890 oraub8 *limitp 01891 ); 01892 01893 typedef sword (*OCILOBCOPY2) 01894 ( 01895 OCISvcCtx *svchp, 01896 OCIError *errhp, 01897 OCILobLocator *dst_locp, 01898 OCILobLocator *src_locp, 01899 oraub8 amount, 01900 oraub8 dst_offset, 01901 oraub8 src_offset 01902 ); 01903 01904 typedef sword (*OCILOBERASE2) 01905 ( 01906 OCISvcCtx *svchp, 01907 OCIError *errhp, 01908 OCILobLocator *locp, 01909 oraub8 *amount, 01910 oraub8 offset 01911 ); 01912 01913 typedef sword (*OCILOBGETLENGTH2) 01914 ( 01915 OCISvcCtx *svchp, 01916 OCIError *errhp, 01917 OCILobLocator *locp, 01918 oraub8 *lenp 01919 ); 01920 01921 typedef sword (*OCILOBLOADFROMFILE2) 01922 ( 01923 OCISvcCtx *svchp, 01924 OCIError *errhp, 01925 OCILobLocator *dst_locp, 01926 OCILobLocator *src_filep, 01927 oraub8 amount, 01928 oraub8 dst_offset, 01929 oraub8 src_offset 01930 ); 01931 01932 typedef sword (*OCILOBREAD2) 01933 ( 01934 OCISvcCtx *svchp, 01935 OCIError *errhp, 01936 OCILobLocator *locp, 01937 oraub8 *byte_amtp, 01938 oraub8 *char_amtp, 01939 oraub8 offset, 01940 dvoid *bufp, 01941 oraub8 bufl, 01942 ub1 piece, 01943 dvoid *ctxp, 01944 sb4 (*cbfp) 01945 ( 01946 dvoid *ctxp, 01947 CONST dvoid *bufp, 01948 oraub8 len, 01949 ub1 piece, 01950 dvoid **changed_bufpp, 01951 oraub8 *changed_lenp 01952 ), 01953 ub2 csid, 01954 ub1 csfrm 01955 ); 01956 01957 typedef sword (*OCILOBTRIM2) 01958 ( 01959 OCISvcCtx *svchp, 01960 OCIError *errhp, 01961 OCILobLocator *locp, 01962 oraub8 newlen 01963 ); 01964 01965 typedef sword (*OCILOBWRITE2) 01966 ( 01967 OCISvcCtx *svchp, 01968 OCIError *errhp, 01969 OCILobLocator *locp, 01970 oraub8 *byte_amtp, 01971 oraub8 *char_amtp, 01972 oraub8 offset, 01973 dvoid *bufp, 01974 oraub8 buflen, 01975 ub1 piece, 01976 dvoid *ctxp, 01977 sb4 (*cbfp) 01978 ( 01979 dvoid *ctxp, 01980 CONST dvoid *bufp, 01981 oraub8 len, 01982 ub1 piece, 01983 dvoid **changed_bufpp, 01984 oraub8 *changed_lenp 01985 ), 01986 ub2 csid, 01987 ub1 csfrm 01988 ); 01989 01990 typedef sword (*OCILOBWRITEAPPEND2) 01991 ( 01992 OCISvcCtx *svchp, 01993 OCIError *errhp, 01994 OCILobLocator *lobp, 01995 oraub8 *byte_amtp, 01996 oraub8 *char_amtp, 01997 dvoid *bufp, 01998 oraub8 bufl, 01999 ub1 piece, 02000 dvoid *ctxp, 02001 sb4 (*cbfp) 02002 ( 02003 dvoid *ctxp, 02004 dvoid *bufp, 02005 oraub8 *lenp, 02006 ub1 *piece, 02007 dvoid **changed_bufpp, 02008 oraub8 *changed_lenp 02009 ), 02010 ub2 csid, 02011 ub1 csfrm 02012 ); 02013 02014 #endif /* ORAXB8_DEFINED */ 02015 02016 /* API introduced in 10.2 */ 02017 02018 /* Oracle 10g test */ 02019 02020 typedef void (*OCICLIENTVERSION) 02021 ( 02022 sword *major_version, 02023 sword *minor_version, 02024 sword *update_num, 02025 sword *patch_num, 02026 sword *port_update_num 02027 ); 02028 02029 typedef sword (*OCIDBSTARTUP) 02030 ( 02031 OCISvcCtx *svchp, 02032 OCIError *errhp, 02033 OCIAdmin *admhp, 02034 ub4 mode, 02035 ub4 flags 02036 ); 02037 02038 typedef sword (*OCIDBSHUTDOWN) 02039 ( 02040 OCISvcCtx *svchp, 02041 OCIError *errhp, 02042 OCIAdmin *admhp, 02043 ub4 mode 02044 ); 02045 02046 typedef sword (*OCIPING) 02047 ( 02048 OCISvcCtx *svchp, 02049 OCIError *errhp, 02050 ub4 mode 02051 ); 02052 02053 /* API introduced in 11.1 */ 02054 02055 typedef sword (*OCIARRAYDESCRIPTORALLOC) 02056 ( 02057 const void *parenth, 02058 void **descpp, 02059 const ub4 type, 02060 ub4 array_size, 02061 const size_t xtramem_sz, 02062 void **usrmempp 02063 ); 02064 02065 typedef sword (*OCIARRAYDESCRIPTORFREE) 02066 ( 02067 void **descp, 02068 const ub4 type 02069 ); 02070 02071 /* API introduced in 11.2 */ 02072 02073 #endif /* OCILIB_OCI_API_H_INCLUDED */ 02074