OCILIB (C Driver for Oracle) 3.9.2
|
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 * $Id: ocilib_internal.h, v 3.9.2 2011-07-13 00:00 Vincent Rogier $ 00033 * --------------------------------------------------------------------------------------------- */ 00034 00035 #ifndef OCILIB_OCILIB_INTERNAL_H_INCLUDED 00036 #define OCILIB_OCILIB_INTERNAL_H_INCLUDED 00037 00038 #include "ocilib_types.h" 00039 #include "ocilib_checks.h" 00040 00041 #ifdef __cplusplus 00042 extern "C" 00043 { 00044 #endif 00045 00046 /* ********************************************************************************************* * 00047 PRIVATE FUNCTIONS PROTOTYPES 00048 * ********************************************************************************************* */ 00049 00050 /* --------------------------------------------------------------------------------------------- * 00051 * agent.c 00052 * --------------------------------------------------------------------------------------------- */ 00053 00054 OCI_Agent * OCI_AgentInit 00055 ( 00056 OCI_Connection *con, 00057 OCI_Agent **pagent, 00058 OCIAQAgent *handle, 00059 const mtext *name, 00060 const mtext *address 00061 ); 00062 00063 /* --------------------------------------------------------------------------------------------- * 00064 * array.c 00065 * --------------------------------------------------------------------------------------------- */ 00066 00067 boolean OCI_ArrayInit 00068 ( 00069 OCI_Array *arr, 00070 OCI_TypeInfo *typinf 00071 ); 00072 00073 boolean OCI_ArrayCleanup 00074 ( 00075 OCI_Array *arr 00076 ); 00077 00078 OCI_Array * OCI_ArrayCreate 00079 ( 00080 OCI_Connection *con, 00081 unsigned int nb_elem, 00082 unsigned int elem_type, 00083 unsigned int elem_subtype, 00084 unsigned int elem_size, 00085 unsigned int struct_size, 00086 unsigned int handle_type, 00087 OCI_TypeInfo *typinf 00088 ); 00089 00090 boolean OCI_ArrayClose 00091 ( 00092 OCI_Array *arr 00093 ); 00094 00095 boolean OCI_ArrayFreeFromHandles 00096 ( 00097 void ** handles 00098 ); 00099 00100 void * OCI_ArrayGetOCIHandlesFromHandles 00101 ( 00102 void ** handles 00103 ); 00104 00105 /* --------------------------------------------------------------------------------------------- * 00106 * bind.c 00107 * --------------------------------------------------------------------------------------------- */ 00108 00109 boolean OCI_BindFree 00110 ( 00111 OCI_Bind *bnd 00112 ); 00113 00114 boolean OCI_BindAllocData 00115 ( 00116 OCI_Bind *bnd 00117 ); 00118 00119 /* --------------------------------------------------------------------------------------------- * 00120 * callback.c 00121 * --------------------------------------------------------------------------------------------- */ 00122 00123 sb4 OCI_ProcInBind 00124 ( 00125 dvoid *ictxp, 00126 OCIBind *bindp, 00127 ub4 iter, 00128 ub4 index, 00129 dvoid **bufpp, 00130 ub4 *alenp, 00131 ub1 *piecep, 00132 dvoid **indp 00133 ); 00134 00135 sb4 OCI_ProcOutBind 00136 ( 00137 dvoid *octxp, 00138 OCIBind *bindp, 00139 ub4 iter, 00140 ub4 index, 00141 dvoid **bufpp, 00142 ub4 **alenp, 00143 ub1 *piecep, 00144 void **indp, 00145 ub2 **rcodep 00146 ); 00147 00148 ub4 OCI_ProcNotify 00149 ( 00150 void *ctx, 00151 OCISubscription *subscrhp, 00152 void *payload, 00153 ub4 paylen, 00154 void *desc, 00155 ub4 mode 00156 ); 00157 00158 sb4 OCI_ProcFailOver 00159 ( 00160 dvoid *svchp, 00161 dvoid *envhp, 00162 dvoid *fo_ctx, 00163 ub4 fo_type, 00164 ub4 fo_event 00165 ); 00166 00167 00168 void OCI_ProcHAEvent 00169 ( 00170 dvoid *evtctx, 00171 dvoid *eventptr 00172 ); 00173 00174 /* --------------------------------------------------------------------------------------------- * 00175 * collection.c 00176 * --------------------------------------------------------------------------------------------- */ 00177 00178 OCI_Coll * OCI_CollInit 00179 ( 00180 OCI_Connection *con, 00181 OCI_Coll **pcoll, 00182 void *handle, 00183 OCI_TypeInfo *typeinf 00184 ); 00185 00186 /* --------------------------------------------------------------------------------------------- * 00187 * column.c 00188 * --------------------------------------------------------------------------------------------- */ 00189 00190 boolean OCI_ColumnMap 00191 ( 00192 OCI_Column *col, 00193 OCI_Statement *stmt 00194 ); 00195 00196 boolean OCI_ColumnDescribe 00197 ( 00198 OCI_Column *col, 00199 OCI_Connection *con, 00200 OCI_Statement *stmt, 00201 void *handle, 00202 int index, 00203 int ptype 00204 ); 00205 00206 boolean OCI_ColumnGetAttrInfo 00207 ( 00208 OCI_Column *col, 00209 unsigned int count, 00210 unsigned int index, 00211 size_t *p_size, 00212 int *p_type 00213 ); 00214 00215 /* --------------------------------------------------------------------------------------------- * 00216 * connection.c 00217 * --------------------------------------------------------------------------------------------- */ 00218 00219 OCI_Connection * OCI_ConnectionAllocate 00220 ( 00221 OCI_Pool *pool, 00222 const mtext *db, 00223 const mtext *user, 00224 const mtext *pwd, 00225 unsigned int mode 00226 ); 00227 00228 boolean OCI_ConnectionDeallocate 00229 ( 00230 OCI_Connection *con 00231 ); 00232 00233 boolean OCI_ConnectionAttach 00234 ( 00235 OCI_Connection *con 00236 ); 00237 00238 boolean OCI_ConnectionLogon 00239 ( 00240 OCI_Connection *con, 00241 const mtext *password, 00242 const mtext *tag 00243 ); 00244 00245 boolean OCI_ConnectionDetach 00246 ( 00247 OCI_Connection *con 00248 ); 00249 00250 boolean OCI_ConnectionLogOff 00251 ( 00252 OCI_Connection *con 00253 ); 00254 00255 boolean OCI_ConnectionClose 00256 ( 00257 OCI_Connection *con 00258 ); 00259 00260 /* --------------------------------------------------------------------------------------------- * 00261 * date.c 00262 * --------------------------------------------------------------------------------------------- */ 00263 00264 OCI_Date * OCI_DateInit 00265 ( 00266 OCI_Connection *con, 00267 OCI_Date **pdate, 00268 OCIDate *buffer, 00269 boolean allocate, 00270 boolean ansi 00271 ); 00272 00273 /* --------------------------------------------------------------------------------------------- * 00274 * define.c 00275 * --------------------------------------------------------------------------------------------- */ 00276 00277 OCI_Define * OCI_GetDefine 00278 ( 00279 OCI_Resultset *rs, 00280 unsigned int index 00281 ); 00282 00283 int OCI_GetDefineIndex 00284 ( 00285 OCI_Resultset *rs, 00286 const mtext *name 00287 ); 00288 00289 boolean OCI_DefineGetNumber 00290 ( 00291 OCI_Resultset *rs, 00292 unsigned int index, 00293 void *value, 00294 uword type, 00295 uword size 00296 ); 00297 00298 boolean OCI_DefineAlloc 00299 ( 00300 OCI_Define *def 00301 ); 00302 00303 boolean OCI_DefineDef 00304 ( 00305 OCI_Define *def 00306 ); 00307 00308 void * OCI_DefineGetData 00309 ( 00310 OCI_Define *def 00311 ); 00312 00313 boolean OCI_DefineIsDataNotNull 00314 ( 00315 OCI_Define *def 00316 ); 00317 00318 boolean OCI_DefineRequestBuffer 00319 ( 00320 OCI_Define *def, 00321 unsigned int size 00322 ); 00323 00324 /* --------------------------------------------------------------------------------------------- * 00325 * element.c 00326 * --------------------------------------------------------------------------------------------- */ 00327 00328 boolean OCI_ElemGetNumber 00329 ( 00330 OCI_Elem *elem, 00331 void *value, 00332 uword size, 00333 uword flag 00334 ); 00335 00336 boolean OCI_ElemSetNumber 00337 ( 00338 OCI_Elem *elem, 00339 void *value, 00340 uword size, 00341 uword flag 00342 ); 00343 00344 OCI_Elem * OCI_ElemInit 00345 ( 00346 OCI_Connection *con, 00347 OCI_Elem **pelem, 00348 void *handle, 00349 OCIInd *pind, 00350 OCI_TypeInfo *typeinf 00351 ); 00352 00353 boolean OCI_ElemSetNullIndicator 00354 ( 00355 OCI_Elem *elem, 00356 OCIInd value 00357 ); 00358 00359 /* --------------------------------------------------------------------------------------------- * 00360 * error.c 00361 * --------------------------------------------------------------------------------------------- */ 00362 00363 void OCI_ErrorFree 00364 ( 00365 OCI_Error *err 00366 ); 00367 00368 void OCI_ErrorReset 00369 ( 00370 OCI_Error *err 00371 ); 00372 00373 OCI_Error * OCI_ErrorGet 00374 ( 00375 boolean check, 00376 boolean warning 00377 ); 00378 00379 OCI_Error * OCI_ErrorCreate 00380 ( 00381 void 00382 ); 00383 00384 /* --------------------------------------------------------------------------------------------- * 00385 * event.c 00386 * --------------------------------------------------------------------------------------------- */ 00387 00388 boolean OCI_EventReset 00389 ( 00390 OCI_Event *event 00391 ); 00392 00393 /* --------------------------------------------------------------------------------------------- * 00394 * exception.c 00395 * --------------------------------------------------------------------------------------------- */ 00396 00397 OCI_Error * OCI_ExceptionGetError 00398 ( 00399 boolean warning 00400 ); 00401 00402 void OCI_ExceptionRaise 00403 ( 00404 OCI_Error *err 00405 ); 00406 00407 void OCI_ExceptionOCI 00408 ( 00409 OCIError *p_err, 00410 OCI_Connection *con, 00411 OCI_Statement *stmt, 00412 boolean warning 00413 ); 00414 00415 void OCI_ExceptionMemory 00416 ( 00417 int type, 00418 size_t nb_bytes, 00419 OCI_Connection *con, 00420 OCI_Statement *stmt 00421 ); 00422 00423 void OCI_ExceptionNotAvailable 00424 ( 00425 OCI_Connection *con, 00426 int feature 00427 ); 00428 00429 void OCI_ExceptionNullPointer 00430 ( 00431 int type 00432 ); 00433 00434 void OCI_ExceptionDatatypeNotSupported 00435 ( 00436 OCI_Connection *con, 00437 OCI_Statement *stmt, 00438 int code 00439 ); 00440 00441 void OCI_ExceptionParsingToken 00442 ( 00443 OCI_Connection *con, 00444 OCI_Statement *stmt, 00445 mtext token 00446 ); 00447 00448 void OCI_ExceptionMappingArgument 00449 ( 00450 OCI_Connection *con, 00451 OCI_Statement *stmt, 00452 int arg 00453 ); 00454 00455 void OCI_ExceptionNotInitialized 00456 ( 00457 void 00458 ); 00459 00460 void OCI_ExceptionLoadingSharedLib 00461 ( 00462 void 00463 ); 00464 00465 void OCI_ExceptionLoadingSymbols 00466 ( 00467 void 00468 ); 00469 00470 void OCI_ExceptionNotMultithreaded 00471 ( 00472 void 00473 ); 00474 00475 void OCI_ExceptionOutOfBounds 00476 ( 00477 OCI_Connection *con, 00478 int value 00479 ); 00480 00481 void OCI_ExceptionUnfreedData 00482 ( 00483 int type_elem, 00484 int nb_elem 00485 ); 00486 00487 void OCI_ExceptionMaxBind 00488 ( 00489 OCI_Statement *stmt 00490 ); 00491 00492 void OCI_ExceptionAttributeNotFound 00493 ( 00494 OCI_Connection *con, 00495 const mtext *attr 00496 ); 00497 00498 void OCI_ExceptionMinimumValue 00499 ( 00500 OCI_Connection *con, 00501 OCI_Statement *stmt, 00502 int min 00503 ); 00504 00505 void OCI_ExceptionTypeNotCompatible 00506 ( 00507 OCI_Connection *con 00508 ); 00509 00510 void OCI_ExceptionStatementState 00511 ( 00512 OCI_Statement *stmt, 00513 int state 00514 ); 00515 00516 void OCI_ExceptionStatementNotScrollable 00517 ( 00518 OCI_Statement *stmt 00519 ); 00520 00521 void OCI_ExceptionBindAlreadyUsed 00522 ( 00523 OCI_Statement *stmt, 00524 const mtext * bind 00525 ); 00526 00527 void OCI_ExceptionBindArraySize 00528 ( 00529 OCI_Statement *stmt, 00530 unsigned int maxsize, 00531 unsigned int cursize, 00532 unsigned int newsize 00533 ); 00534 00535 void OCI_ExceptionDirPathColNotFound 00536 ( 00537 OCI_DirPath *dp, 00538 const mtext * column, 00539 const mtext *table 00540 ); 00541 00542 void OCI_ExceptionDirPathState 00543 ( 00544 OCI_DirPath *dp, 00545 int state 00546 ); 00547 00548 void OCI_ExceptionOCIEnvironment 00549 ( 00550 void 00551 ); 00552 00553 void OCI_ExceptionRebindBadDatatype 00554 ( 00555 OCI_Statement *stmt, 00556 const mtext * bind 00557 ); 00558 00559 /* --------------------------------------------------------------------------------------------- * 00560 * file.c 00561 * --------------------------------------------------------------------------------------------- */ 00562 00563 OCI_File * OCI_FileInit 00564 ( 00565 OCI_Connection *con, 00566 OCI_File **pfile, 00567 OCILobLocator *handle, 00568 ub4 type 00569 ); 00570 00571 boolean OCI_FileGetInfo 00572 ( 00573 OCI_File *file 00574 ); 00575 00576 /* --------------------------------------------------------------------------------------------- * 00577 * format.c 00578 * --------------------------------------------------------------------------------------------- */ 00579 00580 int OCI_ParseSqlFmt 00581 ( 00582 OCI_Statement *stmt, 00583 mtext *buffer, 00584 const mtext *format, 00585 va_list *pargs 00586 ); 00587 00588 /* --------------------------------------------------------------------------------------------- * 00589 * hash.c 00590 * --------------------------------------------------------------------------------------------- */ 00591 00592 unsigned int OCI_HashCompute 00593 ( 00594 OCI_HashTable *table, 00595 const mtext *str 00596 ); 00597 00598 boolean OCI_HashAdd 00599 ( 00600 OCI_HashTable *table, 00601 const mtext *key, 00602 OCI_Variant value, 00603 unsigned int type 00604 ); 00605 00606 /* --------------------------------------------------------------------------------------------- * 00607 * interval.c 00608 * --------------------------------------------------------------------------------------------- */ 00609 00610 OCI_Interval * OCI_IntervalInit 00611 ( 00612 OCI_Connection *con, 00613 OCI_Interval **pitv, 00614 OCIInterval *buffer, 00615 ub4 type 00616 ); 00617 00618 /* --------------------------------------------------------------------------------------------- * 00619 * library.c 00620 * --------------------------------------------------------------------------------------------- */ 00621 00622 void OCI_SetLastError 00623 ( 00624 OCI_Error err 00625 ); 00626 00627 void OCI_SetStatus 00628 ( 00629 boolean res 00630 ); 00631 00632 boolean OCI_KeyMapFree 00633 ( 00634 void 00635 ); 00636 00637 /* --------------------------------------------------------------------------------------------- * 00638 * list.c 00639 * --------------------------------------------------------------------------------------------- */ 00640 00641 OCI_List * OCI_ListCreate 00642 ( 00643 int type 00644 ); 00645 00646 boolean OCI_ListFree 00647 ( 00648 OCI_List *list 00649 ); 00650 00651 OCI_Item * OCI_ListCreateItem 00652 ( 00653 int type, 00654 int size 00655 ); 00656 00657 OCI_Item * OCI_ListAppend 00658 ( 00659 OCI_List *list, 00660 int size 00661 ); 00662 00663 boolean OCI_ListClear 00664 ( 00665 OCI_List *list 00666 ); 00667 00668 typedef boolean (*POCI_LIST_FOR_EACH)(void *ptr); 00669 00670 boolean OCI_ListForEach 00671 ( 00672 OCI_List *list, 00673 POCI_LIST_FOR_EACH proc 00674 ); 00675 00676 boolean OCI_ListRemove 00677 ( 00678 OCI_List *list, 00679 void *data 00680 ); 00681 00682 /* --------------------------------------------------------------------------------------------- * 00683 * lob.c 00684 * --------------------------------------------------------------------------------------------- */ 00685 00686 OCI_Lob * OCI_LobInit 00687 ( 00688 OCI_Connection *con, 00689 OCI_Lob **plob, 00690 OCILobLocator *handle, 00691 ub4 type 00692 ); 00693 00694 /* --------------------------------------------------------------------------------------------- * 00695 * long.c 00696 * --------------------------------------------------------------------------------------------- */ 00697 00698 OCI_Long * OCI_LongInit 00699 ( 00700 OCI_Statement *stmt, 00701 OCI_Long **plg, 00702 OCI_Define *def, 00703 unsigned int type 00704 ); 00705 00706 /* --------------------------------------------------------------------------------------------- * 00707 * memory.c 00708 * --------------------------------------------------------------------------------------------- */ 00709 00710 void * OCI_MemAlloc 00711 ( 00712 int ptr_type, 00713 size_t block_size, 00714 size_t block_count, 00715 boolean zero_fill 00716 ); 00717 00718 void * OCI_MemRealloc 00719 ( 00720 void * ptr_mem, 00721 int ptr_type, 00722 size_t block_size, 00723 size_t block_count 00724 ); 00725 00726 void OCI_MemFree 00727 ( 00728 void * ptr_mem 00729 ); 00730 00731 sword OCI_HandleAlloc 00732 ( 00733 CONST dvoid *parenth, 00734 dvoid **hndlpp, 00735 CONST ub4 type, 00736 CONST size_t xtramem_sz, 00737 dvoid **usrmempp 00738 ); 00739 00740 sword OCI_HandleFree 00741 ( 00742 dvoid *hndlp, 00743 CONST ub4 type 00744 ); 00745 00746 sword OCI_DescriptorAlloc 00747 ( 00748 CONST dvoid *parenth, 00749 dvoid **descpp, 00750 CONST ub4 type, 00751 CONST size_t xtramem_sz, 00752 dvoid **usrmempp 00753 ); 00754 00755 sword OCI_DescriptorArrayAlloc 00756 ( 00757 CONST dvoid *parenth, 00758 dvoid **descpp, 00759 CONST ub4 type, 00760 ub4 nb_elem, 00761 CONST size_t xtramem_sz, 00762 dvoid **usrmempp 00763 ); 00764 00765 sword OCI_DescriptorFree 00766 ( 00767 void *descp, 00768 CONST ub4 type 00769 ); 00770 00771 sword OCI_DescriptorArrayFree 00772 ( 00773 void **descp, 00774 CONST ub4 type, 00775 ub4 nb_elem 00776 ); 00777 00778 sword OCI_ObjectNew 00779 ( 00780 OCIEnv *env, 00781 OCIError *err, 00782 CONST OCISvcCtx *svc, 00783 OCITypeCode typecode, 00784 OCIType *tdo, 00785 dvoid *table, 00786 OCIDuration duration, 00787 boolean value, 00788 dvoid **instance 00789 ); 00790 00791 sword OCI_OCIObjectFree 00792 ( 00793 OCIEnv *env, 00794 OCIError *err, 00795 dvoid *instance, 00796 ub2 flags 00797 ); 00798 00799 /* --------------------------------------------------------------------------------------------- * 00800 * mutex.c 00801 * --------------------------------------------------------------------------------------------- */ 00802 00803 OCI_Mutex * OCI_MutexCreateInternal 00804 ( 00805 void 00806 ); 00807 00808 /* --------------------------------------------------------------------------------------------- * 00809 * number.c 00810 * --------------------------------------------------------------------------------------------- */ 00811 00812 boolean OCI_NumberGet 00813 ( 00814 OCI_Connection *con, 00815 OCINumber *data, 00816 void *value, 00817 uword size, 00818 uword flag 00819 ) 00820 ; 00821 00822 boolean OCI_NumberSet 00823 ( 00824 OCI_Connection *con, 00825 OCINumber *data, 00826 void *value, 00827 uword size, 00828 uword flag 00829 ); 00830 00831 boolean OCI_NumberConvertStr 00832 ( 00833 OCI_Connection *con, 00834 OCINumber *num, 00835 const dtext *str, 00836 int str_size, 00837 const mtext * fmt, 00838 ub4 fmt_size 00839 ); 00840 00841 boolean OCI_NumberGetFromStr 00842 ( 00843 OCI_Connection *con, 00844 void *value, 00845 uword size, 00846 uword type, 00847 const dtext *str, 00848 int str_size, 00849 const mtext * fmt, 00850 ub4 fmt_size 00851 ); 00852 00853 /* --------------------------------------------------------------------------------------------- * 00854 * object.c 00855 * --------------------------------------------------------------------------------------------- */ 00856 00857 boolean OCI_ObjectGetAttrInfo 00858 ( 00859 OCI_TypeInfo *typinf, 00860 int index, 00861 size_t *p_size, 00862 int *p_type 00863 ); 00864 00865 size_t OCI_ObjectGetStructSize 00866 ( 00867 OCI_TypeInfo *typinf 00868 ); 00869 00870 size_t OCI_ObjectGetUserStructSize 00871 ( 00872 OCI_TypeInfo *typinf 00873 ); 00874 00875 ub2 OCI_ObjectGetIndOffset 00876 ( 00877 OCI_TypeInfo *typinf, 00878 int index 00879 ); 00880 00881 OCI_Object * OCI_ObjectInit 00882 ( 00883 OCI_Connection *con, 00884 OCI_Object **pobj, 00885 void *handle, 00886 OCI_TypeInfo *typinf, 00887 OCI_Object *parent, 00888 int index, 00889 boolean reset 00890 ); 00891 00892 void OCI_ObjectReset 00893 ( 00894 OCI_Object *obj 00895 ); 00896 00897 int OCI_ObjectGetAttrIndex 00898 ( 00899 OCI_Object *obj, 00900 const mtext *attr, 00901 int type 00902 ); 00903 00904 void * OCI_ObjectGetAttr 00905 ( 00906 OCI_Object *obj, 00907 unsigned int index, 00908 OCIInd **pind 00909 ); 00910 00911 boolean OCI_ObjectSetNumber 00912 ( 00913 OCI_Object *obj, 00914 const mtext *attr, 00915 void *value, 00916 uword size, 00917 uword flag 00918 ); 00919 00920 boolean OCI_ObjectGetNumber 00921 ( 00922 OCI_Object *obj, 00923 const mtext *attr, 00924 void *value, 00925 uword size, 00926 uword flag 00927 ); 00928 00929 /* --------------------------------------------------------------------------------------------- * 00930 * pool.c 00931 * --------------------------------------------------------------------------------------------- */ 00932 00933 boolean OCI_PoolClose 00934 ( 00935 OCI_Pool *pool 00936 ); 00937 00938 /* --------------------------------------------------------------------------------------------- * 00939 * ref.c 00940 * --------------------------------------------------------------------------------------------- */ 00941 00942 OCI_Ref * OCI_RefInit 00943 ( 00944 OCI_Connection *con, 00945 OCI_TypeInfo *typeinf, 00946 OCI_Ref **pref, 00947 void *handle 00948 ); 00949 00950 boolean OCI_RefPin 00951 ( 00952 OCI_Ref *ref 00953 ); 00954 00955 boolean OCI_RefUnpin 00956 ( 00957 OCI_Ref *ref 00958 ); 00959 00960 /* --------------------------------------------------------------------------------------------- * 00961 * resultset.c 00962 * --------------------------------------------------------------------------------------------- */ 00963 00964 OCI_Resultset * OCI_ResultsetCreate 00965 ( 00966 OCI_Statement *stmt, 00967 int size 00968 ); 00969 00970 boolean OCI_ResultsetInit 00971 ( 00972 OCI_Resultset *rs 00973 ); 00974 00975 boolean OCI_ResultsetFree 00976 ( 00977 OCI_Resultset *rs 00978 ); 00979 00980 boolean OCI_FetchPieces 00981 ( 00982 OCI_Resultset *rs 00983 ); 00984 00985 boolean OCI_FetchData 00986 ( 00987 OCI_Resultset *rs, 00988 int mode, 00989 int offset, 00990 boolean *err 00991 ); 00992 00993 boolean OCI_FetchCustom 00994 ( 00995 OCI_Resultset *rs, 00996 int mode, 00997 int offset, 00998 boolean *err 00999 ); 01000 01001 #ifdef OCI_CHECK_DATASTRINGS 01002 01003 boolean OCI_ResultsetExpandStrings 01004 ( 01005 OCI_Resultset *rs 01006 ); 01007 01008 #endif 01009 01010 /* --------------------------------------------------------------------------------------------- * 01011 * statement.c 01012 * --------------------------------------------------------------------------------------------- */ 01013 01014 boolean OCI_BindFreeAll 01015 ( 01016 OCI_Statement *stmt 01017 ); 01018 01019 boolean OCI_BindCheck 01020 ( 01021 OCI_Statement *stmt 01022 ); 01023 01024 boolean OCI_BindReset 01025 ( 01026 OCI_Statement *stmt 01027 ); 01028 01029 boolean OCI_BindData 01030 ( 01031 OCI_Statement *stmt, 01032 void *data, 01033 ub4 size, 01034 const mtext *name, 01035 ub1 type, 01036 unsigned int code, 01037 unsigned int mode, 01038 unsigned int subtype, 01039 OCI_TypeInfo *typinf, 01040 unsigned int nbelem 01041 ); 01042 01043 int OCI_BindGetIndex 01044 ( 01045 OCI_Statement *stmt, 01046 const mtext *name 01047 ); 01048 01049 boolean OCI_FetchIntoUserVariables 01050 ( 01051 OCI_Statement *stmt, 01052 va_list args 01053 ); 01054 01055 boolean OCI_StatementReset 01056 ( 01057 OCI_Statement *stmt 01058 ); 01059 01060 boolean OCI_StatementClose 01061 ( 01062 OCI_Statement *stmt 01063 ); 01064 01065 OCI_Statement * OCI_StatementInit 01066 ( 01067 OCI_Connection *con, 01068 OCI_Statement **pstmt, 01069 OCIStmt *handle, 01070 OCI_Define *def 01071 ); 01072 01073 boolean OCI_BatchErrorClear 01074 ( 01075 OCI_Statement *stmt 01076 ); 01077 01078 boolean OCI_BatchErrorInit 01079 ( 01080 OCI_Statement *stmt 01081 ); 01082 01083 boolean OCI_API OCI_ExecuteInternal 01084 ( 01085 OCI_Statement *stmt, 01086 ub4 mode 01087 ); 01088 01089 /* --------------------------------------------------------------------------------------------- * 01090 * string.c 01091 * --------------------------------------------------------------------------------------------- */ 01092 01093 int OCI_StringCopy4to2bytes 01094 ( 01095 const unsigned int* src, 01096 size_t src_size, 01097 unsigned short * dst, 01098 size_t dst_size 01099 ); 01100 01101 int OCI_StringCopy2to4bytes 01102 ( 01103 const unsigned short* src, 01104 size_t src_size, 01105 unsigned int * dst, 01106 size_t dst_size 01107 ); 01108 01109 void * OCI_GetInputString 01110 ( 01111 void *src, 01112 int *size, 01113 size_t size_char_in, 01114 size_t size_char_out 01115 ); 01116 01117 void OCI_GetOutputString 01118 ( 01119 void *src, 01120 void *dest, 01121 int *size, 01122 size_t size_char_in, 01123 size_t size_char_out 01124 ); 01125 01126 void OCI_MoveString 01127 ( 01128 void *src, 01129 void *dst, 01130 int char_count, 01131 size_t size_char_in, 01132 size_t size_char_out 01133 ); 01134 01135 void OCI_ConvertString 01136 ( 01137 void *str, 01138 int char_count, 01139 size_t size_char_in, 01140 size_t size_char_out 01141 ); 01142 01143 void OCI_CopyString 01144 ( 01145 void *src, 01146 void *dest, 01147 int *size, 01148 size_t size_char_in, 01149 size_t size_char_out 01150 ); 01151 01152 void OCI_ReleaseMetaString 01153 ( 01154 void *ptr 01155 ); 01156 01157 void OCI_ReleaseDataString 01158 ( 01159 void *ptr 01160 ); 01161 01162 size_t OCI_StringLength 01163 ( 01164 void *ptr, 01165 size_t size_elem 01166 ); 01167 01168 int OCI_StringUTF8Length 01169 ( 01170 const char *str 01171 ); 01172 01173 #define OCI_GetInputMetaString(s, n) OCI_GetInputString((void *) s, n, \ 01174 sizeof(mtext), \ 01175 sizeof(omtext)) 01176 01177 #define OCI_GetOutputMetaString(s, d, n) OCI_GetOutputString((void *) s, d, n, \ 01178 sizeof(omtext), \ 01179 sizeof(mtext)) 01180 01181 #define OCI_GetInputDataString(s, n) OCI_GetInputString((void *) s, n, \ 01182 sizeof(dtext), \ 01183 sizeof(odtext)) 01184 01185 #define OCI_GetOutputDataString(s, d, n) OCI_GetOutputString((void *) s, d, n, \ 01186 sizeof(odtext), \ 01187 sizeof(dtext)) 01188 01189 #define OCI_GetDataFromMetaString(s, n) OCI_GetInputString((void *) s, n, \ 01190 sizeof(mtext), \ 01191 sizeof(dtext)) 01192 01193 #define OCI_GetMetaFromDataString(s, n) OCI_GetInputString((void *) s, n, \ 01194 sizeof(dtext), \ 01195 sizeof(mtext)) 01196 01197 void * OCI_StringFromStringPtr 01198 ( 01199 OCIEnv *env, 01200 OCIString *str, 01201 void **buf, 01202 int *buflen 01203 ); 01204 01205 boolean OCI_StringToStringPtr 01206 ( 01207 OCIEnv *env, 01208 OCIString **str, 01209 OCIError *err, 01210 void *value, 01211 void **buf, 01212 int *buflen 01213 ); 01214 01215 boolean OCI_StringGetFromAttrHandle 01216 ( 01217 OCI_Connection *con, 01218 void *handle, 01219 unsigned int type, 01220 unsigned int attr, 01221 mtext **str 01222 ); 01223 01224 boolean OCI_StringSetToAttrHandle 01225 ( 01226 OCI_Connection *con, 01227 void *handle, 01228 unsigned int type, 01229 unsigned int attr, 01230 mtext **str, 01231 const mtext *value 01232 ); 01233 01234 /* --------------------------------------------------------------------------------------------- * 01235 * subscription.c 01236 * --------------------------------------------------------------------------------------------- */ 01237 01238 boolean OCI_SubscriptionClose 01239 ( 01240 OCI_Subscription *sub 01241 ); 01242 01243 boolean OCI_SubscriptionDetachConnection 01244 ( 01245 OCI_Connection *con 01246 ); 01247 01248 /* --------------------------------------------------------------------------------------------- * 01249 * thread.c 01250 * --------------------------------------------------------------------------------------------- */ 01251 01252 void OCI_ThreadProc 01253 ( 01254 dvoid *arg 01255 ); 01256 01257 /* --------------------------------------------------------------------------------------------- * 01258 * threadkey.c 01259 * --------------------------------------------------------------------------------------------- */ 01260 01261 OCI_ThreadKey * OCI_ThreadKeyCreateInternal 01262 ( 01263 POCI_THREADKEYDEST destfunc 01264 ); 01265 01266 boolean OCI_ThreadKeyFree 01267 ( 01268 OCI_ThreadKey *key 01269 ); 01270 01271 boolean OCI_ThreadKeySet 01272 ( 01273 OCI_ThreadKey *key, 01274 void *value 01275 ); 01276 01277 boolean OCI_ThreadKeyGet 01278 ( 01279 OCI_ThreadKey* key, 01280 void **value 01281 ); 01282 01283 /* --------------------------------------------------------------------------------------------- * 01284 * timestamp.c 01285 * --------------------------------------------------------------------------------------------- */ 01286 01287 OCI_Timestamp * OCI_TimestampInit 01288 ( 01289 OCI_Connection *con, 01290 OCI_Timestamp **ptmsp, 01291 OCIDateTime *buffer, 01292 ub4 type 01293 ); 01294 01295 /* --------------------------------------------------------------------------------------------- * 01296 * transaction.c 01297 * --------------------------------------------------------------------------------------------- */ 01298 01299 boolean OCI_TransactionClose 01300 ( 01301 OCI_Transaction * trans 01302 ); 01303 01304 /* --------------------------------------------------------------------------------------------- * 01305 * typeinf.c 01306 * --------------------------------------------------------------------------------------------- */ 01307 01308 boolean OCI_TypeInfoClose 01309 ( 01310 OCI_TypeInfo *typeinf 01311 ); 01312 01313 #ifdef __cplusplus 01314 } 01315 #endif 01316 01317 #endif /* OCILIB_OCILIB_TYPES_H_INCLUDED */ 01318