OCILIB (C Driver for Oracle) 3.9.1
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.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