OCILIB (C and C++ Driver for Oracle)  4.1.0
ocilib::Collection< TDataType > Class Template Reference

Object identifying the SQL data types VARRAY and NESTED TABLE. More...

#include <ocilib.hpp>

Inherits ocilib::HandleHolder< OCI_Coll * >, and ocilib::Streamable.

Classes

class  Element
 Class used for handling transient collection value. it is used internally by: More...
 
class  Iterator
 STL compliant bi-directional iterator class. More...
 

Public Types

enum  CollectionTypeValues { Varray = OCI_COLL_VARRAY, NestedTable = OCI_COLL_NESTED_TABLE }
 Collection type enumerated values. More...
 
typedef Enum
< CollectionTypeValues
CollectionType
 Collection type. More...
 
typedef Iterator iterator
 common iterator declaration
 

Public Member Functions

 Collection ()
 Create an empty null Collection instance.
 
 Collection (const TypeInfo &typeInfo)
 Parametrized constructor. More...
 
CollectionType GetType () const
 Return the type of the collection.
 
unsigned int GetMax () const
 Returns the maximum number of elements for the collection.
 
unsigned int GetSize () const
 Returns the total number of elements in the collection.
 
unsigned int GetCount () const
 Returns the current number of elements in the collection. More...
 
void Truncate (unsigned int size)
 Trim the given number of elements from the end of the collection. More...
 
void Clear ()
 Clear all items of the collection.
 
bool IsElementNull (unsigned int index) const
 check if the element at the given index is null More...
 
void SetElementNull (unsigned int index)
 Nullify the element at the given index. More...
 
bool Delete (unsigned int index) const
 Delete the element at the given position in the Nested Table Collection. More...
 
TDataType Get (unsigned int index) const
 Return the collection element value at the given position. More...
 
void Set (unsigned int index, const TDataType &value)
 Set the collection element value at the given position. More...
 
void Append (const TDataType &data)
 Append the given element value at the end of the collection. More...
 
TypeInfo GetTypeInfo () const
 Return the type information object associated to the collection.
 
Collection Clone () const
 Clone the current instance to a new one performing deep copy.
 
ostring ToString () const
 return a string representation of the current collection
 
Iterator begin ()
 Returns an iterator pointing to the first element in the collection.
 
Iterator end ()
 Returns an iterator referring to the past-the-end element in the collection.
 
Element operator[] (unsigned int index)
 Returns the element at a given position in the collection.
 

Detailed Description

template<class TDataType>
class ocilib::Collection< TDataType >

Object identifying the SQL data types VARRAY and NESTED TABLE.

This class wraps the OCILIB object handle OCI_Coll and its related methods

Definition at line 4666 of file ocilib.hpp.

Member Typedef Documentation

template<class TDataType>
typedef Enum<CollectionTypeValues> ocilib::Collection< TDataType >::CollectionType

Collection type.

Possible values are Collection::CollectionTypeValues

Definition at line 4702 of file ocilib.hpp.

Member Enumeration Documentation

template<class TDataType>
enum ocilib::Collection::CollectionTypeValues

Collection type enumerated values.

Enumerator
Varray 

Collection is a VARRAY

NestedTable 

Collection is a NESTED TABLE

Definition at line 4687 of file ocilib.hpp.

Constructor & Destructor Documentation

template<class TDataType >
ocilib::Collection< TDataType >::Collection ( const TypeInfo typeInfo)
inline

Parametrized constructor.

Parameters
typeInfo- type info descriptor

Definition at line 3391 of file ocilib_impl.hpp.

References ocilib::Check(), ocilib::TypeInfo::GetConnection(), OCI_CollCreate(), and OCI_CollFree().

Member Function Documentation

template<class TDataType >
unsigned int ocilib::Collection< TDataType >::GetCount ( ) const
inline

Returns the current number of elements in the collection.

Note
  • For VARRAYs, it returns the same value than GetSize() as VARRAYs cannot contains holes
  • For Nested Tables that are spare collections that can have holes, it returns the total number of elements minus the total of deleted elements

Definition at line 3438 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_CollGetCount().

template<class TDataType >
void ocilib::Collection< TDataType >::Truncate ( unsigned int  size)
inline

Trim the given number of elements from the end of the collection.

Parameters
size- Number of elements to trim

Definition at line 3445 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_CollTrim().

template<class TDataType >
bool ocilib::Collection< TDataType >::IsElementNull ( unsigned int  index) const
inline

check if the element at the given index is null

Parameters
index- Index of the element
Note
Collection Index start at 1

Definition at line 3457 of file ocilib_impl.hpp.

References ocilib::Check(), OCI_CollGetElem(), and OCI_ElemIsNull().

template<class TDataType >
void ocilib::Collection< TDataType >::SetElementNull ( unsigned int  index)
inline

Nullify the element at the given index.

Parameters
index- Index of the element
Note
Collection Index start at 1

Definition at line 3463 of file ocilib_impl.hpp.

References ocilib::Check(), OCI_CollGetElem(), and OCI_ElemSetNull().

template<class TDataType >
bool ocilib::Collection< TDataType >::Delete ( unsigned int  index) const
inline

Delete the element at the given position in the Nested Table Collection.

Parameters
index- Index of the element to delete
Note
Collection indexes start at position 1.
Warning
Delete() is only valid for nested tables (e.g. when collection type is Collection::NestedTable
Returns
  • if the input collection is a nested table, it returns true if the element is successfully deleted
  • if the input collection is a VARRAY, it always returns false

Definition at line 3469 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_CollDeleteElem().

template<class TDataType >
TDataType ocilib::Collection< TDataType >::Get ( unsigned int  index) const
inline

Return the collection element value at the given position.

Parameters
index- Index of the element

Definition at line 3488 of file ocilib_impl.hpp.

References ocilib::Check(), and OCI_CollGetElem().

template<class TDataType>
void ocilib::Collection< TDataType >::Set ( unsigned int  index,
const TDataType &  value 
)
inline

Set the collection element value at the given position.

Parameters
index- Index of the element
value- Value to set

Definition at line 3494 of file ocilib_impl.hpp.

References ocilib::Check(), OCI_CollGetElem(), and OCI_CollSetElem().

template<class TDataType>
void ocilib::Collection< TDataType >::Append ( const TDataType &  data)
inline

Append the given element value at the end of the collection.

Parameters
data- Value to add

Definition at line 3504 of file ocilib_impl.hpp.

References ocilib::Check(), OCI_CollAppend(), OCI_CollGetTypeInfo(), OCI_ElemCreate(), and OCI_ElemFree().