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