• Main Page
  • Modules
  • Data Structures
  • Files
  • File List

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-2010 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.8.1 2010-12-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 /* --------------------------------------------------------------------------------------------- *
00159  * collection.c
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  * column.c
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  * connection.c
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  * date.c
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  * define.c
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  * element.c
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  * error.c
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  * event.c
00356  * --------------------------------------------------------------------------------------------- */
00357 
00358 boolean OCI_EventReset
00359 (
00360     OCI_Event *event
00361 );
00362 
00363 /* --------------------------------------------------------------------------------------------- *
00364  * exception.c
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  * file.c
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  * format.c
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  * hash.c
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  * interval.c
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  * library.c
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  * list.c
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  * lob.c
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  * long.c
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  * memory.c
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  * mutex.c
00771  * --------------------------------------------------------------------------------------------- */
00772 
00773 OCI_Mutex * OCI_MutexCreateInternal
00774 (
00775     void
00776 );
00777 
00778 /* --------------------------------------------------------------------------------------------- *
00779  * number.c
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  * object.c
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  * pool.c
00896  * --------------------------------------------------------------------------------------------- */
00897 
00898 boolean OCI_PoolClose
00899 (
00900     OCI_Pool *pool
00901 );
00902 
00903 /* --------------------------------------------------------------------------------------------- *
00904  * ref.c
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  * resultset.c
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  * statement.c
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  * string.c
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  * subscription.c
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  * thread.c
01221  * --------------------------------------------------------------------------------------------- */
01222 
01223 void OCI_ThreadProc
01224 (
01225     dvoid *arg
01226 );
01227 
01228 /* --------------------------------------------------------------------------------------------- *
01229  * threadkey.c
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  * timestamp.c
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  * transaction.c
01268  * --------------------------------------------------------------------------------------------- */
01269 
01270 boolean OCI_TransactionClose
01271 (
01272     OCI_Transaction * trans
01273 );
01274 
01275 /* --------------------------------------------------------------------------------------------- *
01276  * typeinf.c
01277  * --------------------------------------------------------------------------------------------- */
01278 
01279 boolean OCI_TypeInfoClose
01280 (
01281     OCI_TypeInfo *typeinf
01282 );
01283 
01284 #ifdef  __cplusplus
01285 }
01286 #endif
01287 
01288 #endif    /* OCILIB_COMMON_FUNCTIONS_H_INCLUDED */
01289 

Generated on Mon Dec 13 2010 22:32:02 for OCILIB (C Driver for Oracle) by  doxygen 1.7.2