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