Using OCI Handles directly

## Detailed Description

OCILIB conception was focused on a full but closed encapsulation of OCI.

All OCI headers, data types, prototypes are imported internally (linkage or runtime import).

OCILIB public interface exposes only ISO C scalar types and OCILIB objects

OCI is a wide and rich API that can deals with hundreds of options !

OCILIB tries to implements most of it. But, sometimes in really specific contexts, it might be necessary to directly call OCI APIs in order to use uncovered OCI functionalities or options

OCILIB proposes now a set of functions to retrieve its internal OCI handles

Warning

The OCILIB author strongly advises against the use of internal handles, unless there is no other way to accomplish the task

Warning

Using these handles for direct application calls to OCI might lead to OCILIB instability or crash if handles are incorrectly used !

## Functions

OCI_EXPORT const void *OCI_API | OCI_HandleGetEnvironment (void)
| Return the OCI Environment Handle (OCIEnv *) of OCILIB library. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetContext (OCI_Connection *con)
| Return the OCI Context Handle (OCISvcCtx *) of an OCILIB OCI_Connection object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetServer (OCI_Connection *con)
| Return the OCI Server Handle (OCIServer *) of an OCILIB OCI_Connection object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetError (OCI_Connection *con)
| Return the OCI Error Handle (OCIError *) of an OCILIB OCI_Connection object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetSession (OCI_Connection *con)
| Return the OCI Session Handle (OCISession *) of an OCILIB OCI_Connection object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetTransaction (OCI_Transaction *trans)
| Return the OCI Transaction Handle (OCITrans *) of an OCILIB OCI_Transaction object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetStatement (OCI_Statement *stmt)
| Return the OCI Statement Handle (OCIStmt *) of an OCILIB OCI_Statement object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetLob (OCI_Lob *lob)
| Return the OCI LobLocator Handle (OCILobLocator *) of an OCILIB OCI_Lob object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetFile (OCI_File *file)
| Return the OCI LobLocator Handle (OCILobLocator *) of an OCILIB OCI_File object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetDate (OCI_Date *date)
| Return the OCI Date Handle (OCIDate *) of an OCILIB OCI_Date object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetTimestamp (OCI_Timestamp *tmsp)
| Return the OCI Date time Handle (OCIDatetime *) of an OCILIB OCI_Timestamp object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetInterval (OCI_Interval *itv)
| Return OCI Interval Handle (OCIInterval *) of an OCILIB OCI_Interval object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetObject (OCI_Object *obj)
| Return OCI Object Handle (void *) of an OCILIB OCI_Object object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetColl (OCI_Coll *coll)
| Return OCI Collection Handle (OCIColl *) of an OCILIB OCI_Coll object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetRef (OCI_Ref *ref)
| Return OCI Ref Handle (OCIRef *) of an OCILIB OCI_Ref object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetMutex (OCI_Mutex *mutex)
| Return OCI Mutex handle (OCIThreadMutex *) of an OCILIB OCI_Mutex object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetThreadID (OCI_Thread *thread)
| Return OCI Thread ID (OCIThreadId *) of an OCILIB OCI_Thread object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetThread (OCI_Thread *thread)
| Return OCI Thread handle (OCIThreadHandle *) of an OCILIB OCI_Thread object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetDirPathCtx (OCI_DirPath *dp)
| Return OCI DirectPath Context handle (OCIDirPathCtx *) of an OCILIB OCI_DirPath object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetDirPathColArray (OCI_DirPath *dp)
| Return OCI DirectPath Column array handle (OCIDirPathColArray *) of an OCILIB OCI_DirPath object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetDirPathStream (OCI_DirPath *dp)
| Return OCI DirectPath Stream handle (OCIDirPathStream *) of an OCILIB OCI_DirPath object. More...
OCI_EXPORT const void *OCI_API | OCI_HandleGetSubscription (OCI_Subscription *sub)
| Return OCI Subscription handle (OCISubscription *) of an OCILIB OCI_Subscription object. More...

## Function Documentation

## OCI_HandleGetEnvironment()

OCI_EXPORT const void* OCI_API OCI_HandleGetEnvironment | ( | void |  | ) |

`#include <ocilib.h>`

Return the OCI Environment Handle (OCIEnv *) of OCILIB library.

Returns
  OCI Environment handle otherwise NULL

Referenced by ocilib::Environment::SetHAHandler().

## OCI_HandleGetContext()

OCI_EXPORT const void* OCI_API OCI_HandleGetContext | ( | OCI_Connection * | con | ) |

`#include <ocilib.h>`

Return the OCI Context Handle (OCISvcCtx *) of an OCILIB OCI_Connection object.

Parameters

  con | - Connection handle

Returns
  OCI Context handle otherwise NULL

## OCI_HandleGetServer()

OCI_EXPORT const void* OCI_API OCI_HandleGetServer | ( | OCI_Connection * | con | ) |

`#include <ocilib.h>`

Return the OCI Server Handle (OCIServer *) of an OCILIB OCI_Connection object.

Parameters

  con | - Connection handle

Returns
  OCI Server handle otherwise NULL

## OCI_HandleGetError()

OCI_EXPORT const void* OCI_API OCI_HandleGetError | ( | OCI_Connection * | con | ) |

`#include <ocilib.h>`

Return the OCI Error Handle (OCIError *) of an OCILIB OCI_Connection object.

Parameters

  con | - Connection handle

Returns
  OCI Error handle otherwise NULL

## OCI_HandleGetSession()

OCI_EXPORT const void* OCI_API OCI_HandleGetSession | ( | OCI_Connection * | con | ) |

`#include <ocilib.h>`

Return the OCI Session Handle (OCISession *) of an OCILIB OCI_Connection object.

Parameters

  con | - Connection handle

Returns
  OCI Session handle otherwise NULL

## OCI_HandleGetTransaction()

OCI_EXPORT const void* OCI_API OCI_HandleGetTransaction | ( | OCI_Transaction * | trans | ) |

`#include <ocilib.h>`

Return the OCI Transaction Handle (OCITrans *) of an OCILIB OCI_Transaction object.

Parameters

  trans | - Transaction handle

Returns
  OCI Transaction handle otherwise NULL

## OCI_HandleGetStatement()

OCI_EXPORT const void* OCI_API OCI_HandleGetStatement | ( | OCI_Statement * | stmt | ) |

`#include <ocilib.h>`

Return the OCI Statement Handle (OCIStmt *) of an OCILIB OCI_Statement object.

Parameters

  stmt | - Statement handle

Returns
  OCI Statement handle otherwise NULL

## OCI_HandleGetLob()

OCI_EXPORT const void* OCI_API OCI_HandleGetLob | ( | OCI_Lob * | lob | ) |

`#include <ocilib.h>`

Return the OCI LobLocator Handle (OCILobLocator *) of an OCILIB OCI_Lob object.

Parameters

  lob | - Lob handle

Returns
  OCI LobLocator handle otherwise NULL

## OCI_HandleGetFile()

OCI_EXPORT const void* OCI_API OCI_HandleGetFile | ( | OCI_File * | file | ) |

`#include <ocilib.h>`

Return the OCI LobLocator Handle (OCILobLocator *) of an OCILIB OCI_File object.

Parameters

  file | - File handle

Returns
  OCI LobLocator handle otherwise NULL

## OCI_HandleGetDate()

OCI_EXPORT const void* OCI_API OCI_HandleGetDate | ( | OCI_Date * | date | ) |

`#include <ocilib.h>`

Return the OCI Date Handle (OCIDate *) of an OCILIB OCI_Date object.

Parameters

  date | - Date handle

Returns
  OCI Date handle otherwise NULL

## OCI_HandleGetTimestamp()

OCI_EXPORT const void* OCI_API OCI_HandleGetTimestamp | ( | OCI_Timestamp * | tmsp | ) |

`#include <ocilib.h>`

Return the OCI Date time Handle (OCIDatetime *) of an OCILIB OCI_Timestamp object.

Parameters

  tmsp | - Timestamp handle

Returns
  OCI Date time handle otherwise NULL

## OCI_HandleGetInterval()

OCI_EXPORT const void* OCI_API OCI_HandleGetInterval | ( | OCI_Interval * | itv | ) |

`#include <ocilib.h>`

Return OCI Interval Handle (OCIInterval *) of an OCILIB OCI_Interval object.

Parameters

  itv | - Interval handle

Returns
  OCI Interval handle otherwise NULL

## OCI_HandleGetObject()

OCI_EXPORT const void* OCI_API OCI_HandleGetObject | ( | OCI_Object * | obj | ) |

`#include <ocilib.h>`

Return OCI Object Handle (void *) of an OCILIB OCI_Object object.

Parameters

  obj | - Object handle

Returns
  OCI Object handle otherwise NULL

## OCI_HandleGetColl()

OCI_EXPORT const void* OCI_API OCI_HandleGetColl | ( | OCI_Coll * | coll | ) |

`#include <ocilib.h>`

Return OCI Collection Handle (OCIColl *) of an OCILIB OCI_Coll object.

Parameters

  coll | - Collection handle

Returns
  OCI Collection handle otherwise NULL

## OCI_HandleGetRef()

OCI_EXPORT const void* OCI_API OCI_HandleGetRef | ( | OCI_Ref * | ref | ) |

`#include <ocilib.h>`

Return OCI Ref Handle (OCIRef *) of an OCILIB OCI_Ref object.

Parameters

  ref | - Ref handle

Returns
  OCI Ref handle otherwise NULL

## OCI_HandleGetMutex()

OCI_EXPORT const void* OCI_API OCI_HandleGetMutex | ( | OCI_Mutex * | mutex | ) |

`#include <ocilib.h>`

Return OCI Mutex handle (OCIThreadMutex *) of an OCILIB OCI_Mutex object.

Parameters

  mutex | - Mutex handle

Returns
  OCI Mutex handle otherwise NULL

## OCI_HandleGetThreadID()

OCI_EXPORT const void* OCI_API OCI_HandleGetThreadID | ( | OCI_Thread * | thread | ) |

`#include <ocilib.h>`

Return OCI Thread ID (OCIThreadId *) of an OCILIB OCI_Thread object.

Parameters

  thread | - Thread handle

Returns
  OCI Thread ID otherwise NULL

Referenced by ocilib::Thread::GetThreadId().

## OCI_HandleGetThread()

OCI_EXPORT const void* OCI_API OCI_HandleGetThread | ( | OCI_Thread * | thread | ) |

`#include <ocilib.h>`

Return OCI Thread handle (OCIThreadHandle *) of an OCILIB OCI_Thread object.

Parameters

  thread | - Thread handle

Returns
  OCI Thread handle otherwise NULL

## OCI_HandleGetDirPathCtx()

OCI_EXPORT const void* OCI_API OCI_HandleGetDirPathCtx | ( | OCI_DirPath * | dp | ) |

`#include <ocilib.h>`

Return OCI DirectPath Context handle (OCIDirPathCtx *) of an OCILIB OCI_DirPath object.

Parameters

  dp | - DirectPath handle

Returns
  OCI DirectPath Context handle otherwise NULL

## OCI_HandleGetDirPathColArray()

OCI_EXPORT const void* OCI_API OCI_HandleGetDirPathColArray | ( | OCI_DirPath * | dp | ) |

`#include <ocilib.h>`

Return OCI DirectPath Column array handle (OCIDirPathColArray *) of an OCILIB OCI_DirPath object.

Parameters

  dp | - DirectPath handle

Returns
  OCI DirectPath Column array handle otherwise NULL

## OCI_HandleGetDirPathStream()

OCI_EXPORT const void* OCI_API OCI_HandleGetDirPathStream | ( | OCI_DirPath * | dp | ) |

`#include <ocilib.h>`

Return OCI DirectPath Stream handle (OCIDirPathStream *) of an OCILIB OCI_DirPath object.

Parameters

  dp | - DirectPath handle

Returns
  OCI DirectPath Stream handle otherwise NULL

## OCI_HandleGetSubscription()

OCI_EXPORT const void* OCI_API OCI_HandleGetSubscription | ( | OCI_Subscription * | sub | ) |

`#include <ocilib.h>`

Return OCI Subscription handle (OCISubscription *) of an OCILIB OCI_Subscription object.

Parameters

  sub | - Subscription handle

Returns
  OCI Subscription otherwise NULL