OCILIB (C Driver for Oracle) 3.9.2
D:/Perso/dev/ocilib/ocilib/src/ocilib_internal.h
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