52 template<
class TResultType>
53 inline TResultType
Check(TResultType result)
72 unsigned char *ptr =
static_cast<unsigned char *
>(result);
74 return (ptr ?
Raw(ptr, ptr + size) :
Raw());
82 inline Enum<TEnum>::Enum(
void) : _value(0)
87 inline Enum<TEnum>::Enum(TEnum value) : _value(value)
92 inline TEnum Enum<TEnum>::GetValue()
99 inline Enum<TEnum>::operator TEnum ()
104 template<
class TEnum>
105 inline Enum<TEnum>::operator
unsigned int ()
107 return static_cast<unsigned int>(_value);
110 template<
class TEnum>
111 inline bool Enum<TEnum>::operator == (
const Enum& other)
const
113 return other._value == _value;
116 template<
class TEnum>
117 inline bool Enum<TEnum>::operator != (
const Enum& other)
const
119 return !(*
this == other);
122 template<
class TEnum>
123 inline bool Enum<TEnum>::operator == (
const TEnum& other)
const
125 return other == _value;
128 template<
class TEnum>
129 inline bool Enum<TEnum>::operator != (
const TEnum& other)
const
131 return !(*
this == other);
138 template<
class TEnum>
139 inline Flags<TEnum>::Flags(
void) : _flags(static_cast<TEnum>(0))
143 template<
class TEnum>
144 inline Flags<TEnum>::Flags(TEnum flag) : _flags( flag)
148 template<
class TEnum>
149 inline Flags<TEnum>::Flags(
const Flags& other) : _flags(other._flags)
154 template<
class TEnum>
155 inline Flags<TEnum>::Flags(
unsigned int flag) : _flags(static_cast<TEnum>(flag))
159 template<
class TEnum>
160 inline Flags<TEnum> Flags<TEnum>::operator~ ()
const
162 return Flags<TEnum>(~_flags);
165 template<
class TEnum>
166 inline Flags<TEnum> Flags<TEnum>::operator | (
const Flags& other)
const
168 return Flags<TEnum>(_flags | other._flags);
171 template<
class TEnum>
172 inline Flags<TEnum> Flags<TEnum>::operator & (
const Flags& other)
const
174 return Flags<TEnum>(_flags & other._flags);
177 template<
class TEnum>
178 inline Flags<TEnum> Flags<TEnum>::operator ^ (
const Flags& other)
const
180 return Flags<TEnum>(_flags ^ other._flags);
183 template<
class TEnum>
184 inline Flags<TEnum> Flags<TEnum>::operator | (TEnum other)
const
186 return Flags<TEnum>(_flags | other);
189 template<
class TEnum>
190 inline Flags<TEnum> Flags<TEnum>::operator & (TEnum other)
const
192 return Flags<TEnum>(_flags & other);
195 template<
class TEnum>
196 inline Flags<TEnum> Flags<TEnum>::operator ^ (TEnum other)
const
198 return Flags<TEnum>(_flags ^ other);
201 template<
class TEnum>
202 inline Flags<TEnum>& Flags<TEnum>::operator |= (
const Flags<TEnum>& other)
204 _flags |= other._flags;
208 template<
class TEnum>
209 inline Flags<TEnum>& Flags<TEnum>::operator &= (
const Flags<TEnum>& other)
211 _flags &= other._flags;
215 template<
class TEnum>
216 inline Flags<TEnum>& Flags<TEnum>::operator ^= (
const Flags<TEnum>& other)
218 _flags ^= other._flags;
223 template<
class TEnum>
224 inline Flags<TEnum>& Flags<TEnum>::operator |= (TEnum other)
230 template<
class TEnum>
231 inline Flags<TEnum>& Flags<TEnum>::operator &= (TEnum other)
237 template<
class TEnum>
238 inline Flags<TEnum>& Flags<TEnum>::operator ^= (TEnum other)
244 template<
class TEnum>
245 inline bool Flags<TEnum>::operator == (TEnum other)
const
247 return _flags ==
static_cast<unsigned int>(other);
250 template<
class TEnum>
251 inline bool Flags<TEnum>::operator == (
const Flags& other)
const
253 return _flags == other._flags;
256 template<
class TEnum>
257 inline bool Flags<TEnum>::IsSet(TEnum other)
const
259 return ((_flags & other) == _flags);
262 template<
class TEnum>
263 inline unsigned int Flags<TEnum>::GetValues()
const
268 #define OCI_DEFINE_FLAG_OPERATORS(TEnum) \
269 inline Flags<TEnum> operator | (TEnum a, TEnum b) { return Flags<TEnum>(a) | Flags<TEnum>(b); } \
271 OCI_DEFINE_FLAG_OPERATORS(Environment::EnvironmentFlagsValues)
272 OCI_DEFINE_FLAG_OPERATORS(Environment::SessionFlagsValues)
273 OCI_DEFINE_FLAG_OPERATORS(Environment::StartFlagsValues)
274 OCI_DEFINE_FLAG_OPERATORS(Environment::StartModeValues)
275 OCI_DEFINE_FLAG_OPERATORS(Environment::ShutdownModeValues)
276 OCI_DEFINE_FLAG_OPERATORS(Environment::ShutdownFlagsValues)
277 OCI_DEFINE_FLAG_OPERATORS(Transaction::TransactionFlagsValues)
278 OCI_DEFINE_FLAG_OPERATORS(Column::PropertyFlagsValues)
279 OCI_DEFINE_FLAG_OPERATORS(Subscription::ChangeTypesValues)
285 template< typename TBufferType>
286 inline ManagedBuffer<TBufferType>::ManagedBuffer() : _buffer(NULL), _size(0)
290 template<
typename TBufferType>
291 inline ManagedBuffer<TBufferType>::ManagedBuffer(TBufferType *buffer,
size_t size) : _buffer(buffer), _size(size)
295 template<
typename TBufferType>
296 inline ManagedBuffer<TBufferType>::ManagedBuffer(
size_t size) : _buffer(new TBufferType[size]), _size(size)
298 memset(_buffer, 0,
sizeof(TBufferType) * _size);
300 template<
typename TBufferType>
301 inline ManagedBuffer<TBufferType>::~ManagedBuffer()
306 template<
typename TBufferType>
307 inline ManagedBuffer<TBufferType>::operator TBufferType* ()
const
312 template<
typename TBufferType>
313 inline ManagedBuffer<TBufferType>::operator
const TBufferType* ()
const
322 template<
class THandleType>
323 inline HandleHolder<THandleType>::HandleHolder() : _smartHandle(0)
327 template<
class THandleType>
328 inline HandleHolder<THandleType>::HandleHolder(
const HandleHolder &other) : _smartHandle(0)
330 Acquire(other, 0, other._smartHandle ? other._smartHandle->GetParent() : 0);
333 template<
class THandleType>
334 inline HandleHolder<THandleType>::~HandleHolder()
339 template<
class THandleType>
340 inline HandleHolder<THandleType>& HandleHolder<THandleType>::operator = (
const HandleHolder<THandleType> &other)
342 Acquire(other, 0, other._smartHandle ? other._smartHandle->GetParent() : 0);
346 template<
class THandleType>
347 inline bool HandleHolder<THandleType>::IsNull()
const
349 return (static_cast<THandleType>(*
this) == 0);
352 template<
class THandleType>
353 inline HandleHolder<THandleType>::operator THandleType()
355 return _smartHandle ? _smartHandle->GetHandle() : 0;
358 template<
class THandleType>
359 inline HandleHolder<THandleType>::operator THandleType()
const
361 return _smartHandle ? _smartHandle->GetHandle() : 0;
364 template<
class THandleType>
365 inline HandleHolder<THandleType>::operator bool()
370 template<
class THandleType>
371 inline HandleHolder<THandleType>::operator bool()
const
376 template<
class THandleType>
377 inline Handle * HandleHolder<THandleType>::GetHandle()
const
379 return static_cast<Handle *
>(_smartHandle);
382 template<
class THandleType>
383 inline void HandleHolder<THandleType>::Acquire(THandleType handle, HandleFreeFunc func, Handle *parent)
387 _smartHandle = Environment::GetSmartHandle<typename HandleHolder<THandleType>::SmartHandle*>(handle);
391 _smartHandle =
new SmartHandle(
this, handle, func, parent);
395 _smartHandle->Acquire(
this);
399 template<
class THandleType>
400 inline void HandleHolder<THandleType>::Acquire(HandleHolder<THandleType> &other)
402 if (&other !=
this && _smartHandle != other._smartHandle)
406 if (other._smartHandle)
408 other._smartHandle->Acquire(
this);
409 _smartHandle = other._smartHandle;
414 template<
class THandleType>
415 inline void HandleHolder<THandleType>::Release()
419 _smartHandle->Release(
this);
425 inline Locker::Locker() : _mutex(0)
427 SetAccessMode(
false);
430 inline Locker::~Locker()
432 SetAccessMode(
false);
436 inline void Locker::SetAccessMode(
bool threaded)
438 if (threaded && !_mutex)
440 _mutex = Mutex::Create();
442 else if (!threaded && _mutex)
444 Mutex::Destroy(_mutex);
449 inline void Locker::Lock()
453 Mutex::Acquire(_mutex);
457 inline void Locker::Unlock()
461 Mutex::Release(_mutex);
465 inline Lockable::Lockable() : _locker(0)
470 inline Lockable::~Lockable()
475 inline void Lockable::Lock()
483 inline void Lockable::Unlock()
491 inline void Lockable::SetLocker(Locker *locker)
496 template <
class TKey,
class TValue>
497 inline ConcurrentMap<TKey, TValue>::ConcurrentMap()
502 template <
class TKey,
class TValue>
503 inline ConcurrentMap<TKey, TValue>::~ConcurrentMap()
508 template <
class TKey,
class TValue>
509 inline void ConcurrentMap<TKey, TValue>::Remove(TKey key)
516 template <
class TKey,
class TValue>
517 inline TValue ConcurrentMap<TKey, TValue>::Get(TKey key)
522 typename std::map< TKey, TValue >::const_iterator it = _map.find(key);
523 if (it != _map.end())
532 template <
class TKey,
class TValue>
533 inline void ConcurrentMap<TKey, TValue>::Set(TKey key, TValue value)
540 template <
class TKey,
class TValue>
541 inline void ConcurrentMap<TKey, TValue>::Clear()
548 template <
class TKey,
class TValue>
549 inline size_t ConcurrentMap<TKey, TValue>::GetSize()
559 template <
class TValue>
560 inline ConcurrentList<TValue>::ConcurrentList()
565 template <
class TValue>
566 inline ConcurrentList<TValue>::~ConcurrentList()
571 template <
class TValue>
572 inline void ConcurrentList<TValue>::Add(TValue value)
575 _list.push_back(value);
579 template <
class TValue>
580 inline void ConcurrentList<TValue>::Remove(TValue value)
587 template <
class TValue>
588 inline void ConcurrentList<TValue>::Clear()
595 template <
class TValue>
596 inline size_t ConcurrentList<TValue>::GetSize()
606 template <
class TValue>
607 inline bool ConcurrentList<TValue>::Exists(TValue value)
612 for (
typename std::list<TValue>::iterator it1 = _list.begin(), it2 = _list.end(); it1 != it2; ++it1)
626 template <
class TValue>
627 template <
class TPredicate>
628 inline bool ConcurrentList<TValue>::FindIf(TPredicate predicate, TValue &value)
633 for (
typename std::list<TValue>::iterator it1 = _list.begin(), it2 = _list.end(); it1 != it2; ++it1)
648 template <
class TValue>
649 template <
class TAction>
650 inline void ConcurrentList<TValue>::ForEach(TAction action)
654 for (
typename std::list<TValue>::iterator it1 = _list.begin(), it2 = _list.end(); it1 != it2; ++it1)
662 template <
class THandleType>
663 inline HandleHolder<THandleType>::SmartHandle::SmartHandle(HandleHolder *holder, THandleType handle, HandleFreeFunc func, Handle *parent)
664 : _holders(), _children(), _locker(), _handle(handle), _func(func), _parent(parent), _extraInfo(0)
668 _holders.SetLocker(&_locker);
669 _children.SetLocker(&_locker);
671 Environment::SetSmartHandle<typename HandleHolder<THandleType>::SmartHandle*>(handle,
this);
675 if (_parent && _handle)
677 _parent->GetChildren().Add(
this);
681 template <
class THandleType>
682 inline HandleHolder<THandleType>::SmartHandle::~SmartHandle()
687 if (_parent && _handle)
689 _parent->GetChildren().Remove(
this);
692 _children.ForEach(DeleteHandle);
695 _holders.SetLocker(0);
696 _children.SetLocker(0);
698 Environment::SetSmartHandle<typename HandleHolder<THandleType>::SmartHandle*>(_handle, 0);
702 ret = _func(_handle);
712 template <
class THandleType>
713 inline void HandleHolder<THandleType>::SmartHandle::DeleteHandle(Handle *handle)
717 handle->DetachFromParent();
718 handle->DetachFromHolders();
724 template <
class THandleType>
725 inline void HandleHolder<THandleType>::SmartHandle::ResetHolder(HandleHolder *holder)
729 holder->_smartHandle = 0;
733 template <
class THandleType>
734 inline void HandleHolder<THandleType>::SmartHandle::Acquire(HandleHolder *holder)
736 _holders.Add(holder);
739 template <
class THandleType>
740 inline void HandleHolder<THandleType>::SmartHandle::Release(HandleHolder *holder)
742 _holders.Remove(holder);
744 if (_holders.GetSize() == 0)
749 holder->_smartHandle = 0;
752 template <
class THandleType>
753 inline bool HandleHolder<THandleType>::SmartHandle::IsLastHolder(HandleHolder *holder)
755 return ( (_holders.GetSize() == 1) && _holders.Exists(holder));
758 template <
class THandleType>
759 inline const THandleType HandleHolder<THandleType>::SmartHandle::GetHandle()
const
764 template <
class THandleType>
765 inline Handle * HandleHolder<THandleType>::SmartHandle::GetParent()
const
770 template <
class THandleType>
771 inline AnyPointer HandleHolder<THandleType>::SmartHandle::GetExtraInfos()
const
776 template <
class THandleType>
777 inline void HandleHolder<THandleType>::SmartHandle::SetExtraInfos(AnyPointer extraInfo)
779 _extraInfo = extraInfo;
782 template <
class THandleType>
783 inline ConcurrentList<Handle *> & HandleHolder<THandleType>::SmartHandle::GetChildren()
788 template <
class THandleType>
789 inline void HandleHolder<THandleType>::SmartHandle::DetachFromHolders()
791 _holders.ForEach(ResetHolder);
795 template <
class THandleType>
796 inline void HandleHolder<THandleType>::SmartHandle::DetachFromParent()
805 inline Exception::Exception()
810 _type(static_cast<ExceptionType::type>(0)),
817 inline Exception::~Exception() throw ()
822 inline Exception::Exception(
OCI_Error *err)
835 size_t i = 0, size = ostrlen(str);
839 while (i < size) { _what[i] =
static_cast<char>(str[i]); ++i; }
845 return _what.c_str();
889 GetInstance().SelfInitialize(mode, libpath);
894 GetInstance().SelfCleanup();
899 return GetInstance()._mode;
914 return GetInstance()._initialized;
976 startMode.GetValues(), startFlags.GetValues(), spfile.c_str() ));
983 shutdownMode.GetValues(), shutdownFlags.GetValues() ));
995 Environment::SetUserCallback<HAHandlerProc>(GetEnvironmentHandle(), handler);
998 inline void Environment::HAHandler(
OCI_Connection *pConnection,
unsigned int source,
unsigned int event,
OCI_Timestamp *pTimestamp)
1000 HAHandlerProc handler = Environment::GetUserCallback<HAHandlerProc>(GetEnvironmentHandle());
1005 Timestamp timestamp(pTimestamp, connection.GetHandle());
1009 HAEventType (static_cast<HAEventType::type> (event)),
1014 inline unsigned int Environment::TAFHandler(
OCI_Connection *pConnection,
unsigned int type,
unsigned int event)
1016 unsigned int res = OCI_FOC_OK;
1022 Connection connection(pConnection, 0);
1024 res = handler(connection,
1032 inline void Environment::NotifyHandler(
OCI_Event *pEvent)
1043 inline void Environment::NotifyHandlerAQ(
OCI_Dequeue *pDequeue)
1050 Dequeue dequeue(pDequeue);
1055 template <
class TCallbackType>
1056 inline TCallbackType Environment::GetUserCallback(
AnyPointer ptr)
1058 return reinterpret_cast<TCallbackType
>(GetInstance()._callbacks.Get(ptr));
1061 template <
class TCallbackType>
1062 inline void Environment::SetUserCallback(
AnyPointer ptr, TCallbackType callback)
1066 GetInstance()._callbacks.Set(ptr, reinterpret_cast<CallbackPointer>(callback));
1070 GetInstance()._callbacks.Remove(ptr);
1074 template <
class THandleType>
1075 inline void Environment::SetSmartHandle(
AnyPointer ptr, THandleType handle)
1079 GetInstance()._handles.Set(ptr, handle);
1083 GetInstance()._handles.Remove(ptr);
1087 template <
class THandleType>
1088 inline THandleType Environment::GetSmartHandle(
AnyPointer ptr)
1090 return dynamic_cast<THandleType
>(GetInstance()._handles.Get(ptr));
1093 inline Handle * Environment::GetEnvironmentHandle()
1095 return GetInstance()._handle.GetHandle();
1098 inline Environment& Environment::GetInstance()
1100 static Environment envHandle;
1105 inline Environment::Environment() : _locker(), _handle(), _handles(), _callbacks(), _mode(), _initialized(false)
1110 inline void Environment::SelfInitialize(EnvironmentFlags mode,
const ostring& libpath)
1116 _initialized =
true;
1120 _callbacks.SetLocker(&_locker);
1121 _handles.SetLocker(&_locker);
1126 inline void Environment::SelfCleanup()
1128 _locker.SetAccessMode(
false);
1130 _callbacks.SetLocker(0);
1131 _handles.SetLocker(0);
1140 _initialized =
false;
1227 Open(db, user, pwd, poolType, minSize, maxSize, increment, sessionFlags);
1235 Acquire(
Check(
OCI_PoolCreate(db.c_str(), user.c_str(), pwd.c_str(), poolType, sessionFlags.GetValues(),
1236 minSize, maxSize, increment)),
reinterpret_cast<HandleFreeFunc
>(
OCI_PoolFree), Environment::GetEnvironmentHandle());
1315 Open(db, user, pwd, sessionFlags);
1320 Acquire(con, reinterpret_cast<HandleFreeFunc>(parent ?
OCI_ConnectionFree : 0), parent);
1326 reinterpret_cast<HandleFreeFunc
>(
OCI_ConnectionFree), Environment::GetEnvironmentHandle());
1469 lines.push_back(str);
1541 Check(
OCI_SetTAFHandler(*
this, static_cast<POCI_TAF_HANDLER>(handler != 0 ? Environment::TAFHandler : 0 )));
1543 Environment::SetUserCallback<Connection::TAFHandlerProc>(
static_cast<OCI_Connection*
>(*this), handler);
1567 Acquire(trans, 0, 0);
1622 Acquire(pDate, 0, parent);
1625 inline void Date::Allocate()
1652 inline int Date::Compare(
const Date& other)
const
1664 int year = 0, month = 0, day = 0;
1673 int year = 0, month = 0, day = 0;
1681 int year = 0, month = 0, day = 0;
1690 int year = 0, month = 0, day = 0;
1698 int year = 0, month = 0, day = 0;
1707 int year = 0, month = 0, day = 0;
1715 int hour = 0, minutes = 0, seconds = 0;
1717 GetTime(hour, minutes, seconds);
1724 int hour = 0, minutes = 0, seconds = 0;
1726 GetTime(hour, minutes, seconds);
1727 SetTime(value, minutes, seconds);
1732 int hour = 0, minutes = 0, seconds = 0;
1734 GetTime(hour, minutes, seconds);
1741 int hour = 0, minutes = 0, seconds = 0;
1743 GetTime(hour, minutes, seconds);
1744 SetTime(hour, value, seconds);
1749 int hour = 0, minutes = 0, seconds = 0;
1751 GetTime(hour, minutes, seconds);
1758 int hour = 0, minutes = 0, seconds = 0;
1760 GetTime(hour, minutes, seconds);
1761 SetTime(hour, minutes, value);
1839 size_t size = OCI_SIZE_BUFFER;
1843 ManagedBuffer<otext> buffer(size + 1);
1847 return MakeString(static_cast<const otext *>(buffer));
1850 return OCI_STRING_NULL;
1889 return result += value;
1895 return result -= value;
1912 return Compare(other) == 0;
1917 return (!(*
this == other));
1922 return (Compare(other) > 0);
1927 return (Compare(other) < 0);
1932 int res = Compare(other);
1934 return (res == 0 || res < 0);
1939 int res = Compare(other);
1941 return (res == 0 || res > 0);
1966 Acquire(pInterval, 0, parent);
1978 inline int Interval::Compare(
const Interval& other)
const
1995 int year = 0, month = 0;
2004 int year = 0, month = 0;
2012 int year = 0, month = 0;
2021 int year = 0, month = 0;
2029 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2031 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2038 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2040 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2041 SetDaySecond(value, hour, minutes, seconds, milliseconds);
2046 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2048 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2055 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2057 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2058 SetDaySecond(day, value, minutes, seconds, milliseconds);
2063 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2065 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2072 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2074 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2080 int day, hour, minutes, seconds, milliseconds;
2082 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2089 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2091 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2097 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2099 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2101 return milliseconds;
2106 int day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2108 GetDaySecond(day, hour, minutes, seconds, milliseconds);
2145 size_t size = OCI_SIZE_BUFFER;
2147 ManagedBuffer<otext> buffer(size + 1);
2151 return MakeString(static_cast<const otext *>(buffer));
2154 return OCI_STRING_NULL;
2159 return ToString(OCI_STRING_DEFAULT_PREC, OCI_STRING_DEFAULT_PREC);
2165 return result += other;
2171 return result -= other;
2188 return Compare(other) == 0;
2193 return (!(*
this == other));
2198 return (Compare(other) > 0);
2203 return (Compare(other) < 0);
2208 int res = Compare(other);
2210 return (res == 0 || res < 0);
2215 int res = Compare(other);
2217 return (res == 0 || res > 0);
2241 Acquire(pTimestamp, 0, parent);
2253 inline int Timestamp::Compare(
const Timestamp& other)
const
2280 int year, month, day;
2289 int year, month, day;
2297 int year, month, day;
2306 int year, month, day;
2314 int year, month, day;
2323 int year, month, day;
2331 int hour, minutes, seconds, milliseconds;
2333 GetTime(hour, minutes, seconds, milliseconds);
2340 int hour, minutes, seconds, milliseconds;
2342 GetTime(hour, minutes, seconds, milliseconds);
2343 SetTime(value, minutes, seconds, milliseconds);
2348 int hour, minutes, seconds, milliseconds;
2350 GetTime(hour, minutes, seconds, milliseconds);
2357 int hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2359 GetTime(hour, minutes, seconds, milliseconds);
2360 SetTime(hour, value, seconds, milliseconds);
2365 int hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2367 GetTime(hour, minutes, seconds, milliseconds);
2374 int hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2376 GetTime(hour, minutes, seconds, milliseconds);
2377 SetTime(hour, minutes, value, milliseconds);
2382 int hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2384 GetTime(hour, minutes, seconds, milliseconds);
2386 return milliseconds;
2391 int hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2393 GetTime(hour, minutes, seconds, milliseconds);
2394 SetTime(hour, minutes, seconds, value);
2414 int tmpYear = 0, tmpMonth = 0, tempDay = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2416 GetDateTime(tmpYear, tmpMonth, tempDay, hour, minutes, seconds, milliseconds);
2417 SetDateTime(year, month, day, hour, minutes, seconds, milliseconds);
2422 int year = 0, month = 0, day = 0, tmpHour = 0, tmpMinutes = 0, tmpSeconds = 0, tmpMilliseconds = 0;
2424 GetDateTime(year, month, day, tmpHour, tmpMinutes, tmpSeconds, tmpMilliseconds);
2425 SetDateTime(year, month, day, hour, min, sec, fsec);
2432 int year = 0, month = 0, day = 0, hour = 0, minutes = 0, seconds = 0, milliseconds = 0;
2434 GetDateTime(year, month, day, hour, minutes, seconds, milliseconds);
2435 SetDateTime(year, month, day, hour, minutes, seconds, milliseconds, timeZone);
2443 size_t size = OCI_SIZE_BUFFER;
2445 ManagedBuffer<otext> buffer(size + 1);
2449 return MakeString(static_cast<const otext *>(buffer));
2485 size_t size = OCI_SIZE_BUFFER;
2487 ManagedBuffer<otext> buffer(size + 1);
2491 return MakeString(static_cast<const otext *>(buffer));
2494 return OCI_STRING_NULL;
2535 return result += value;
2543 return result -= value;
2556 return result += other;
2562 return result -= other;
2581 return *
this += interval;
2588 return *
this -= interval;
2593 return Compare(other) == 0;
2598 return (!(*
this == other));
2603 return (Compare(other) > 0);
2608 return (Compare(other) < 0);
2613 int res = Compare(other);
2615 return (res == 0 || res < 0);
2620 int res = Compare(other);
2622 return (res == 0 || res > 0);
2629 template<
class TLobObjectType,
int TLobOracleType>
2634 template<
class TLobObjectType,
int TLobOracleType>
2640 template<
class TLobObjectType,
int TLobOracleType>
2643 Acquire(pLob, 0, parent);
2649 ManagedBuffer<otext> buffer(length + 1);
2653 return MakeString(static_cast<const otext *>(buffer));
2659 ManagedBuffer<otext> buffer(length + 1);
2663 return MakeString(static_cast<const otext *>(buffer));
2669 ManagedBuffer<unsigned char> buffer(length + 1);
2671 length =
Check(
OCI_LobRead(*
this, static_cast<AnyPointer>(buffer), length));
2673 return MakeRaw(buffer, length);
2676 template<
class TLobObjectType,
int TLobOracleType>
2679 unsigned int res = 0;
2681 if (content.size() > 0)
2683 res =
Check(
OCI_LobWrite(*
this, static_cast<AnyPointer>(const_cast<typename TLobObjectType::value_type *>(&content[0])), static_cast<unsigned int>(content.size())));
2689 template<
class TLobObjectType,
int TLobOracleType>
2695 template<
class TLobObjectType,
int TLobOracleType>
2698 unsigned int res = 0;
2700 if (content.size() > 0)
2702 Check(
OCI_LobAppend(*
this, static_cast<AnyPointer>(const_cast<typename TLobObjectType::value_type *>(&content[0])), static_cast<unsigned int>(content.size())));
2708 template<
class TLobObjectType,
int TLobOracleType>
2714 template<
class TLobObjectType,
int TLobOracleType>
2717 Lob result(GetConnection());
2724 template<
class TLobObjectType,
int TLobOracleType>
2730 template<
class TLobObjectType,
int TLobOracleType>
2736 template<
class TLobObjectType,
int TLobOracleType>
2742 template<
class TLobObjectType,
int TLobOracleType>
2748 template<
class TLobObjectType,
int TLobOracleType>
2754 template<
class TLobObjectType,
int TLobOracleType>
2760 template<
class TLobObjectType,
int TLobOracleType>
2766 template<
class TLobObjectType,
int TLobOracleType>
2772 template<
class TLobObjectType,
int TLobOracleType>
2778 template<
class TLobObjectType,
int TLobOracleType>
2784 template<
class TLobObjectType,
int TLobOracleType>
2790 template<
class TLobObjectType,
int TLobOracleType>
2796 template<
class TLobObjectType,
int TLobOracleType>
2802 template<
class TLobObjectType,
int TLobOracleType>
2808 template<
class TLobObjectType,
int TLobOracleType>
2814 template<
class TLobObjectType,
int TLobOracleType>
2821 template<
class TLobObjectType,
int TLobOracleType>
2824 return Equals(other);
2827 template<
class TLobObjectType,
int TLobOracleType>
2830 return (!(*
this == other));
2855 Acquire(pFile, 0, parent);
2860 ManagedBuffer<unsigned char> buffer(size + 1);
2881 inline bool File::Equals(
const File &other)
const
2938 return Equals(other);
2943 return (!(*
this == other));
2952 Acquire(
Check(
OCI_TypeInfoGet(connection, name.c_str(), type)),
reinterpret_cast<HandleFreeFunc
>(0), connection.GetHandle());
2957 Acquire(pTypeInfo, 0, 0);
3001 Acquire(pObject, 0, parent);
3046 inline short Object::Get<short>(
const ostring& name)
const
3052 inline unsigned short Object::Get<unsigned short>(
const ostring& name)
const
3058 inline int Object::Get<int>(
const ostring& name)
const
3064 inline unsigned int Object::Get<unsigned int>(
const ostring& name)
const
3076 inline big_uint Object::Get<big_uint>(
const ostring& name)
const
3082 inline float Object::Get<float>(
const ostring& name)
const
3088 inline double Object::Get<double>(
const ostring& name)
const
3100 inline Date Object::Get<Date>(
const ostring& name)
const
3106 inline Timestamp Object::Get<Timestamp>(
const ostring& name)
const
3112 inline Interval Object::Get<Interval>(
const ostring& name)
const
3118 inline Object Object::Get<Object>(
const ostring& name)
const
3124 inline Reference Object::Get<Reference>(
const ostring& name)
const
3130 inline Clob Object::Get<Clob>(
const ostring& name)
const
3136 inline NClob Object::Get<NClob>(
const ostring& name)
const
3143 inline Blob Object::Get<Blob>(
const ostring& name)
const
3149 inline File Object::Get<File>(
const ostring& name)
const
3155 inline Raw Object::Get<Raw>(
const ostring& name)
const
3159 ManagedBuffer<unsigned char> buffer(size + 1);
3166 template<
class TDataType>
3173 inline void Object::Set<short>(
const ostring& name,
const short &value)
3179 inline void Object::Set<unsigned short>(
const ostring& name,
const unsigned short &value)
3185 inline void Object::Set<int>(
const ostring& name,
const int &value)
3191 inline void Object::Set<unsigned int>(
const ostring& name,
const unsigned int &value)
3197 inline void Object::Set<big_int>(
const ostring& name,
const big_int &value)
3203 inline void Object::Set<big_uint>(
const ostring& name,
const big_uint &value)
3209 inline void Object::Set<float>(
const ostring& name,
const float &value)
3215 inline void Object::Set<double>(
const ostring& name,
const double &value)
3221 inline void Object::Set<ostring>(
const ostring& name,
const ostring &value)
3227 inline void Object::Set<Date>(
const ostring& name,
const Date &value)
3233 inline void Object::Set<Timestamp>(
const ostring& name,
const Timestamp &value)
3239 inline void Object::Set<Interval>(
const ostring& name,
const Interval &value)
3245 inline void Object::Set<Object>(
const ostring& name,
const Object &value)
3251 inline void Object::Set<Reference>(
const ostring& name,
const Reference &value)
3257 inline void Object::Set<Clob>(
const ostring& name,
const Clob &value)
3263 inline void Object::Set<NClob>(
const ostring& name,
const NClob &value)
3269 inline void Object::Set<Blob>(
const ostring& name,
const Blob &value)
3275 inline void Object::Set<File>(
const ostring& name,
const File &value)
3281 inline void Object::Set<Raw>(
const ostring& name,
const Raw &value)
3283 if (value.size() > 0)
3285 Check(
OCI_ObjectSetRaw(*
this, name.c_str(),
static_cast<AnyPointer>(
const_cast<Raw::value_type *
>(&value[0])),
static_cast<unsigned int>(value.size())));
3293 template<
class TDataType>
3303 unsigned int len = 0;
3307 ManagedBuffer<otext> buffer(len + 1);
3311 return MakeString(static_cast<const otext *>(buffer));
3314 return OCI_STRING_NULL;
3333 Acquire(pRef, 0, parent);
3371 ManagedBuffer<otext> buffer(size + 1);
3375 return MakeString(static_cast<const otext *>(buffer));
3378 return OCI_STRING_NULL;
3385 template<
class TDataType>
3390 template<
class TDataType>
3396 template<
class TDataType>
3399 Acquire(pColl, 0, parent);
3402 template<
class TDataType>
3412 template<
class TDataType>
3418 template<
class TDataType>
3424 template<
class TDataType>
3430 template<
class TDataType>
3437 template<
class TDataType>
3444 template<
class TDataType>
3450 template<
class TDataType>
3456 template<
class TDataType>
3462 template<
class TDataType>
3468 template<
class TDataType>
3475 template <
class TDataType>
3481 template <
class TDataType>
3484 return Iterator(*
this, GetCount() + 1);
3487 template <
class TDataType>
3493 template <
class TDataType>
3498 SetElem(elem, data);
3503 template <
class TDataType>
3508 SetElem(elem, value);
3517 ARG_NOT_USED(parent);
3523 inline unsigned short Collection<unsigned short>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3525 ARG_NOT_USED(parent);
3531 inline int Collection<int>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3533 ARG_NOT_USED(parent);
3539 inline unsigned int Collection<unsigned int>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3541 ARG_NOT_USED(parent);
3547 inline big_int Collection<big_int>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3549 ARG_NOT_USED(parent);
3555 inline big_uint Collection<big_uint>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3557 ARG_NOT_USED(parent);
3563 inline float Collection<float>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3565 ARG_NOT_USED(parent);
3571 inline double Collection<double>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3573 ARG_NOT_USED(parent);
3579 inline ostring Collection<ostring>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3581 ARG_NOT_USED(parent);
3587 inline Raw Collection<Raw>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3589 ARG_NOT_USED(parent);
3593 ManagedBuffer<unsigned char> buffer(size + 1);
3601 inline Date Collection<Date>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3607 inline Timestamp Collection<Timestamp>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3613 inline Interval Collection<Interval>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3619 inline Object Collection<Object>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3625 inline Reference Collection<Reference>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3631 inline Clob Collection<Clob>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3637 inline NClob Collection<NClob>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3642 inline Blob Collection<Blob>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3648 inline File Collection<File>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3653 template<
class TDataType>
3654 inline TDataType Collection<TDataType>::GetElem(
OCI_Elem *elem, Handle *parent)
const
3660 inline void Collection<short>::SetElem(
OCI_Elem *elem,
const short &value)
3666 inline void Collection<unsigned short>::SetElem(
OCI_Elem *elem,
const unsigned short &value)
3672 inline void Collection<int>::SetElem(
OCI_Elem *elem,
const int &value)
3678 inline void Collection<unsigned int>::SetElem(
OCI_Elem *elem,
const unsigned int &value)
3684 inline void Collection<big_int>::SetElem(
OCI_Elem *elem,
const big_int &value)
3690 inline void Collection<big_uint>::SetElem(
OCI_Elem *elem,
const big_uint &value)
3696 inline void Collection<float>::SetElem(
OCI_Elem *elem,
const float &value)
3702 inline void Collection<double>::SetElem(
OCI_Elem *elem,
const double &value)
3708 inline void Collection<ostring>::SetElem(
OCI_Elem *elem,
const ostring& value)
3714 inline void Collection<Raw>::SetElem(
OCI_Elem *elem,
const Raw &value)
3716 if (value.size() > 0)
3718 Check(
OCI_ElemSetRaw(elem, static_cast<AnyPointer>(const_cast<Raw::value_type *>(&value[0])), static_cast<unsigned int>(value.size())));
3727 inline void Collection<Date>::SetElem(
OCI_Elem *elem,
const Date &value)
3733 inline void Collection<Timestamp>::SetElem(
OCI_Elem *elem,
const Timestamp &value)
3739 inline void Collection<Interval>::SetElem(
OCI_Elem *elem,
const Interval &value)
3745 inline void Collection<Object>::SetElem(
OCI_Elem *elem,
const Object &value)
3751 inline void Collection<Reference>::SetElem(
OCI_Elem *elem,
const Reference &value)
3757 inline void Collection<Clob>::SetElem(
OCI_Elem *elem,
const Clob &value)
3763 inline void Collection<NClob>::SetElem(
OCI_Elem *elem,
const NClob &value)
3769 inline void Collection<Blob>::SetElem(
OCI_Elem *elem,
const Blob &value)
3775 inline void Collection<File>::SetElem(
OCI_Elem *elem,
const File &value)
3780 template <
class TDataType>
3781 inline void Collection<TDataType>::SetElem(
OCI_Elem *elem,
const TDataType &value)
3786 template<
class TDataType>
3791 unsigned int len = 0;
3795 ManagedBuffer<otext> buffer(len + 1);
3799 return MakeString(static_cast<const otext *>(buffer));
3802 return OCI_STRING_NULL;
3805 template<
class TDataType>
3811 template<
class TDataType>
3816 template<
class TDataType>
3817 inline Collection<TDataType>::Iterator::Iterator(
const Iterator& other) : _elem(other._elem)
3821 template<
class TDataType>
3822 inline bool Collection<TDataType>::Iterator::operator== (
const Iterator& other)
3824 return _elem._pos == other._elem._pos && (
static_cast<OCI_Coll *
>(_elem._coll)) == (
static_cast<OCI_Coll *
>(other._elem._coll));
3828 template<
class TDataType>
3829 inline bool Collection<TDataType>::Iterator::operator!= (
const Iterator& other)
3831 return !(*
this == other);
3834 template<
class TDataType>
3835 inline typename Collection<TDataType>::Element& Collection<TDataType>::Iterator::operator*()
3840 template<
class TDataType>
3841 inline typename Collection<TDataType>::Iterator & Collection<TDataType>::Iterator::operator--()
3847 template<
class TDataType>
3848 inline typename Collection<TDataType>::Iterator Collection<TDataType>::Iterator::operator--(
int)
3850 Iterator old(*
this);
3855 template<
class TDataType>
3856 inline typename Collection<TDataType>::Iterator & Collection<TDataType>::Iterator::operator++()
3862 template<
class TDataType>
3863 inline typename Collection<TDataType>::Iterator Collection<TDataType>::Iterator::operator++(
int)
3865 Iterator old(*
this);
3870 template<
class TDataType>
3871 inline Collection<TDataType>::Element::Element(
Collection &coll,
unsigned int pos) : _coll(coll), _pos(pos)
3876 template<
class TDataType>
3877 inline Collection<TDataType>::Element::operator TDataType()
const
3879 return _coll.Get(_pos);
3882 template<
class TDataType>
3883 inline typename Collection<TDataType>::Element& Collection<TDataType>::Element::operator = (TDataType value)
3885 _coll.
Set(_pos, value);
3889 template<
class TDataType>
3890 inline bool Collection<TDataType>::Element::IsNull()
const
3892 return _coll->IsElementNull(_pos);
3895 template<
class TDataType>
3896 inline void Collection<TDataType>::Element::SetNull()
3898 _coll->SetElementNull(_pos);
3906 template<
class TLongObjectType,
int TLongOracleType>
3911 template<
class TLongObjectType,
int TLongOracleType>
3917 template<
class TLongObjectType,
int TLongOracleType>
3920 Acquire(pLong, 0, parent);
3923 template<
class TLongObjectType,
int TLongOracleType>
3926 unsigned int res = 0;
3928 if (content.size() > 0)
3930 res =
Check(
OCI_LongWrite(*
this, static_cast<AnyPointer>(const_cast<typename TLongObjectType::value_type *>(&content[0])), static_cast<unsigned int>(content.size())));
3936 template<
class TLongObjectType,
int TLongOracleType>
3982 template<
class TValueType>
3983 inline BindValue<TValueType>::BindValue() : _value(0)
3988 template<
class TValueType>
3989 inline BindValue<TValueType>::BindValue(TValueType value) : _value(value)
3994 template<
class TValueType>
3995 inline BindValue<TValueType>::operator TValueType()
const
4004 inline BindObject::BindObject(
const Statement &statement,
const ostring& name) : _name(name), _pStatement(statement)
4008 inline BindObject::~BindObject()
4012 inline ostring BindObject::GetName()
const
4017 inline Statement BindObject::GetStatement()
const
4019 return Statement(_pStatement);
4026 inline BindArray::BindArray(
const Statement &statement,
const ostring& name) : BindObject(statement, name), _object(0)
4031 template <
class TObjectType,
class TDataType>
4032 inline void BindArray::SetVector(std::vector<TObjectType> & vector,
unsigned int mode,
unsigned int elemSize)
4034 _object =
new BindArrayObject<TObjectType, TDataType>(GetStatement(), GetName(), vector, mode, elemSize);
4037 inline BindArray::~BindArray()
4042 template <
class TObjectType,
class TDataType>
4043 inline TDataType * BindArray::GetData ()
const
4045 return static_cast<TDataType *
>(*(
dynamic_cast< BindArrayObject<TObjectType, TDataType> *
> (_object)));
4048 inline void BindArray::SetInData()
4050 _object->SetInData();
4053 inline void BindArray::SetOutData()
4055 _object->SetOutData();
4058 template <
class TObjectType,
class TDataType>
4059 inline BindArray::BindArrayObject<TObjectType, TDataType>::BindArrayObject(
const Statement &statement,
const ostring& name, std::vector<TObjectType> &vector,
unsigned int mode,
unsigned int elemSize)
4060 : _pStatement(statement), _name(name), _vector(vector), _data(0), _mode(mode), _elemCount(statement.GetBindArraySize()), _elemSize(elemSize)
4065 template <
class TObjectType,
class TDataType>
4066 inline BindArray::BindArrayObject<TObjectType, TDataType>::~BindArrayObject()
4071 template <
class TObjectType,
class TDataType>
4072 inline void BindArray::BindArrayObject<TObjectType, TDataType>::AllocData()
4074 _data =
new TDataType[_elemCount];
4078 inline void BindArray::BindArrayObject<ostring, otext>::AllocData()
4080 _data =
new otext[_elemSize * _elemCount];
4082 memset(_data, 0, _elemSize * _elemCount *
sizeof(otext));
4085 template <
class TObjectType,
class TDataType>
4086 inline void BindArray::BindArrayObject<TObjectType, TDataType>::FreeData()
4091 template <
class TObjectType,
class TDataType>
4092 inline void BindArray::BindArrayObject<TObjectType, TDataType>::SetInData()
4094 if (_mode & OCI_BDM_IN)
4096 typename std::vector<TObjectType>::iterator it, it_end;
4098 unsigned int index = 0;
4101 for (it = _vector.begin(), it_end = _vector.end(); it != it_end && index < _elemCount && index < currElemCount; ++it, ++index)
4103 _data[index] = BindValue<TDataType>( *it);
4109 inline void BindArray::BindArrayObject<ostring, otext>::SetInData()
4111 if (_mode & OCI_BDM_IN)
4113 std::vector<ostring>::iterator it, it_end;
4115 unsigned int index = 0;
4118 for (it = _vector.begin(), it_end = _vector.end(); it != it_end && index < _elemCount && index < currElemCount; ++it, ++index)
4122 memcpy( _data + (_elemSize * index), value.c_str(), (value.size() + 1) *
sizeof(otext));
4129 inline void BindArray::BindArrayObject<Raw, unsigned char>::SetInData()
4131 if (_mode & OCI_BDM_IN)
4133 std::vector<Raw>::iterator it, it_end;
4135 unsigned int index = 0;
4138 for (it = _vector.begin(), it_end = _vector.end(); it != it_end && index < _elemCount && index < currElemCount; ++it, ++index)
4142 if (value.size() > 0)
4144 memcpy(_data + (_elemSize * index), &value[0], (value.size() + 1) *
sizeof(otext));
4150 template <
class TObjectType,
class TDataType>
4151 inline void BindArray::BindArrayObject<TObjectType, TDataType>::SetOutData()
4153 if (_mode & OCI_BDM_OUT)
4155 typename std::vector<TObjectType>::iterator it, it_end;
4157 unsigned int index = 0;
4160 for (it = _vector.begin(), it_end = _vector.end(); it != it_end && index < _elemCount && index < currElemCount; ++it, ++index)
4162 TObjectType&
object = *it;
4164 object =
static_cast<TDataType
>(_data[index]);
4170 inline void BindArray::BindArrayObject<Raw, unsigned char>::SetOutData()
4172 if (_mode & OCI_BDM_OUT)
4174 std::vector<Raw>::iterator it, it_end;
4178 unsigned int index = 0;
4181 for (it = _vector.begin(), it_end = _vector.end(); it != it_end && index < _elemCount && index < currElemCount; ++it, ++index)
4183 unsigned char *currData = _data + (_elemSize * index);
4191 template <
class TObjectType,
class TDataType>
4192 inline ostring BindArray::BindArrayObject<TObjectType, TDataType>::GetName()
4197 template <
class TObjectType,
class TDataType>
4198 inline BindArray::BindArrayObject<TObjectType, TDataType>:: operator std::vector<TObjectType> & ()
const
4203 template <
class TObjectType,
class TDataType>
4204 inline BindArray::BindArrayObject<TObjectType, TDataType>:: operator TDataType * ()
const
4213 template <
class TNativeType,
class TObjectType>
4214 inline void BindAdaptor<TNativeType, TObjectType>::SetInData()
4216 size_t size = _object.size();
4225 memcpy(_data, &_object[0], size *
sizeof(TNativeType));
4231 template <
class TNativeType,
class TObjectType>
4232 inline void BindAdaptor<TNativeType, TObjectType>::SetOutData()
4236 _object.assign(_data, _data + size);
4239 template <
class TNativeType,
class TObjectType>
4240 inline BindAdaptor<TNativeType, TObjectType>::BindAdaptor(
const Statement &statement,
const ostring& name, TObjectType &
object,
unsigned int size) :
4241 BindObject(statement, name),
4243 _data(new TNativeType[size]),
4246 memset(_data, 0, _size *
sizeof(TNativeType));
4249 template <
class TNativeType,
class TObjectType>
4250 inline BindAdaptor<TNativeType, TObjectType>::~BindAdaptor()
4255 template <
class TNativeType,
class TObjectType>
4256 inline BindAdaptor<TNativeType, TObjectType>::operator TNativeType *()
const
4265 inline BindsHolder::BindsHolder(
const Statement &statement) : _bindObjects(), _pStatement(statement)
4270 inline BindsHolder::~BindsHolder()
4275 inline void BindsHolder::Clear()
4277 std::vector<BindObject *>::iterator it, it_end;
4279 for(it = _bindObjects.begin(), it_end = _bindObjects.end(); it != it_end; ++it)
4284 _bindObjects.clear();
4287 inline void BindsHolder::AddBindObject(BindObject *bindObject)
4291 std::vector<BindObject *>::iterator it, it_end;
4293 for(it = _bindObjects.begin(), it_end = _bindObjects.end(); it != it_end; ++it)
4295 if ((*it)->GetName() == bindObject->GetName())
4297 _bindObjects.erase(it);
4303 _bindObjects.push_back(bindObject);
4306 inline void BindsHolder::SetOutData()
4308 std::vector<BindObject *>::iterator it, it_end;
4310 for(it = _bindObjects.begin(), it_end = _bindObjects.end(); it != it_end; ++it)
4312 (*it)->SetOutData();
4316 inline void BindsHolder::SetInData()
4318 std::vector<BindObject *>::iterator it, it_end;
4320 for(it = _bindObjects.begin(), it_end = _bindObjects.end(); it != it_end; ++it)
4330 inline BindInfo::BindInfo(
OCI_Bind *pBind, Handle *parent)
4332 Acquire(pBind, 0, parent);
4345 inline unsigned int BindInfo::GetSubType()
const
4350 inline unsigned int BindInfo::GetDataCount()
const
4360 inline void BindInfo::SetDataNull(
bool value,
unsigned int index)
4372 inline bool BindInfo::IsDataNull(
unsigned int index)
const
4391 inline Statement::Statement()
4400 inline Statement::Statement(
OCI_Statement *stmt, Handle *parent)
4402 Acquire(stmt, reinterpret_cast<HandleFreeFunc>(parent ?
OCI_StatementFree : 0), parent);
4405 inline Statement::~Statement()
4407 if (_smartHandle && _smartHandle->IsLastHolder(
this))
4409 BindsHolder *bindsHolder = GetBindsHolder(
false);
4420 inline void Statement::Describe(
const ostring& sql)
4423 ReleaseResultsets();
4430 ReleaseResultsets();
4434 inline void Statement::Prepare(
const ostring& sql)
4437 ReleaseResultsets();
4441 inline void Statement::ExecutePrepared()
4443 ReleaseResultsets();
4450 template<
class TFetchCallback>
4451 inline unsigned int Statement::ExecutePrepared(TFetchCallback callback)
4455 return Fetch(callback);
4458 template<
class TAdapter,
class TFetchCallback>
4459 inline unsigned int Statement::ExecutePrepared(TFetchCallback callback, TAdapter adapter)
4463 return Fetch(callback, adapter);
4466 inline void Statement::Execute(
const ostring& sql)
4469 ReleaseResultsets();
4473 template<
class TFetchCallback>
4474 inline unsigned int Statement::Execute(
const ostring& sql, TFetchCallback callback)
4478 return Fetch(callback);
4481 template<
class TAdapter,
class TFetchCallback>
4482 inline unsigned int Statement::Execute(
const ostring& sql, TFetchCallback callback, TAdapter adapter)
4486 return Fetch(callback, adapter);
4489 template<
typename TFetchCallback>
4490 inline unsigned int Statement::Fetch(TFetchCallback callback)
4492 unsigned int res = 0;
4499 rs = GetNextResultset();
4505 template<
class TAdapter,
class TFetchCallback>
4506 inline unsigned int Statement::Fetch(TFetchCallback callback, TAdapter adapter)
4508 unsigned int res = 0;
4510 Resultset rs = GetResultset();
4514 res += rs.ForEach(callback, adapter);
4515 rs = GetNextResultset();
4521 inline unsigned int Statement::GetAffectedRows()
const
4541 inline void Statement::SetBindArraySize(
unsigned int size)
4546 inline unsigned int Statement::GetBindArraySize()
const
4551 inline void Statement::AllowRebinding(
bool value)
4556 inline bool Statement::IsRebindingAllowed()
const
4561 inline unsigned int Statement::GetBindIndex(
const ostring& name)
const
4566 inline unsigned int Statement::GetBindCount()
const
4571 inline BindInfo Statement::GetBind(
unsigned int index)
const
4581 template <
typename TBindMethod,
class TDataType>
4584 Check(method(*
this, name.c_str(), &value));
4585 SetLastBindMode(mode);
4588 template <
typename TBindMethod,
class TObjectType,
class TDataType>
4589 inline void Statement::Bind (TBindMethod &method,
const ostring& name, TObjectType& value, BindValue<TDataType> datatype, BindInfo::BindDirection mode)
4591 ARG_NOT_USED(datatype);
4593 Check(method(*
this, name.c_str(),
static_cast<TDataType
>(value)));
4594 SetLastBindMode(mode);
4597 template <
typename TBindMethod,
class TObjectType,
class TDataType>
4598 inline void Statement::Bind (TBindMethod &method,
const ostring& name, std::vector<TObjectType> &values, BindValue<TDataType> datatype, BindInfo::BindDirection mode)
4600 ARG_NOT_USED(datatype);
4602 BindArray * bnd =
new BindArray(*
this, name);
4603 bnd->SetVector<TObjectType, TDataType>(values, mode,
sizeof(TDataType));
4605 boolean res = method(*
this, name.c_str(),
static_cast<TDataType *
>(bnd->GetData<TObjectType, TDataType>()), 0);
4609 BindsHolder *bindsHolder = GetBindsHolder(
true);
4610 bindsHolder->AddBindObject(bnd);
4611 SetLastBindMode(mode);
4621 template <
typename TBindMethod,
class TObjectType,
class TDataType,
class TElemType>
4622 inline void Statement::Bind (TBindMethod &method,
const ostring& name, std::vector<TObjectType> &values, BindValue<TDataType> datatype, BindInfo::BindDirection mode, TElemType type)
4624 ARG_NOT_USED(datatype);
4626 BindArray * bnd =
new BindArray(*
this, name);
4627 bnd->SetVector<TObjectType, TDataType>(values, mode,
sizeof(TDataType));
4629 boolean res = method(*
this, name.c_str(),
static_cast<TDataType *
>(bnd->GetData<TObjectType, TDataType>()), type, 0);
4633 BindsHolder *bindsHolder = GetBindsHolder(
true);
4634 bindsHolder->AddBindObject(bnd);
4635 SetLastBindMode(mode);
4646 inline void Statement::Bind<short>(
const ostring& name,
short &value, BindInfo::BindDirection mode)
4652 inline void Statement::Bind<unsigned short>(
const ostring& name,
unsigned short &value, BindInfo::BindDirection mode)
4658 inline void Statement::Bind<int>(
const ostring& name,
int &value, BindInfo::BindDirection mode)
4664 inline void Statement::Bind<unsigned int>(
const ostring& name,
unsigned int &value, BindInfo::BindDirection mode)
4670 inline void Statement::Bind<big_int>(
const ostring& name,
big_int &value, BindInfo::BindDirection mode)
4676 inline void Statement::Bind<big_uint>(
const ostring& name, big_uint &value, BindInfo::BindDirection mode)
4682 inline void Statement::Bind<float>(
const ostring& name,
float &value, BindInfo::BindDirection mode)
4688 inline void Statement::Bind<double>(
const ostring& name,
double &value, BindInfo::BindDirection mode)
4694 inline void Statement::Bind<Date>(
const ostring& name, Date &value, BindInfo::BindDirection mode)
4696 Bind(
OCI_BindDate, name, value, BindValue<OCI_Date *>(), mode);
4700 inline void Statement::Bind<Timestamp>(
const ostring& name, Timestamp &value, BindInfo::BindDirection mode)
4706 inline void Statement::Bind<Interval>(
const ostring& name, Interval &value, BindInfo::BindDirection mode)
4712 inline void Statement::Bind<Clob>(
const ostring& name,
Clob &value, BindInfo::BindDirection mode)
4714 Bind(
OCI_BindLob, name, value, BindValue<OCI_Lob *>(), mode);
4718 inline void Statement::Bind<NClob>(
const ostring& name,
NClob &value, BindInfo::BindDirection mode)
4720 Bind(
OCI_BindLob, name, value, BindValue<OCI_Lob *>(), mode);
4724 inline void Statement::Bind<Blob>(
const ostring& name,
Blob &value, BindInfo::BindDirection mode)
4726 Bind(
OCI_BindLob, name, value, BindValue<OCI_Lob *>(), mode);
4730 inline void Statement::Bind<File>(
const ostring& name, File &value, BindInfo::BindDirection mode)
4732 Bind(
OCI_BindFile, name, value, BindValue<OCI_File *>(), mode);
4736 inline void Statement::Bind<Object>(
const ostring& name, Object &value, BindInfo::BindDirection mode)
4738 Bind(
OCI_BindObject, name, value, BindValue<OCI_Object *>(), mode);
4742 inline void Statement::Bind<Reference>(
const ostring& name, Reference &value, BindInfo::BindDirection mode)
4744 Bind(
OCI_BindRef, name, value, BindValue<OCI_Ref *>(), mode);
4748 inline void Statement::Bind<Statement>(
const ostring& name, Statement &value, BindInfo::BindDirection mode)
4754 inline void Statement::Bind<Clong, unsigned int>(
const ostring& name,
Clong &value,
unsigned int maxSize, BindInfo::BindDirection mode)
4757 SetLastBindMode(mode);
4761 inline void Statement::Bind<Clong, int>(
const ostring& name,
Clong &value,
int maxSize, BindInfo::BindDirection mode)
4763 Bind<Clong, unsigned int>(name, value,
static_cast<unsigned int>(maxSize), mode);
4767 inline void Statement::Bind<Blong, unsigned int>(
const ostring& name,
Blong &value,
unsigned int maxSize, BindInfo::BindDirection mode)
4770 SetLastBindMode(mode);
4774 inline void Statement::Bind<Blong, int>(
const ostring& name,
Blong &value,
int maxSize, BindInfo::BindDirection mode)
4776 Bind<Blong, unsigned int>(name, value,
static_cast<unsigned int>(maxSize), mode);
4780 inline void Statement::Bind<ostring, unsigned int>(
const ostring& name,
ostring &value,
unsigned int maxSize, BindInfo::BindDirection mode)
4784 maxSize =
static_cast<unsigned int>(value.size());
4787 value.reserve(maxSize);
4789 BindAdaptor<otext, ostring> * bnd =
new BindAdaptor<otext, ostring>(*
this, name, value, maxSize + 1);
4791 boolean res =
OCI_BindString(*
this, name.c_str(),
static_cast<otext *
>(*bnd), maxSize);
4795 BindsHolder *bindsHolder = GetBindsHolder(
true);
4796 bindsHolder->AddBindObject(bnd);
4797 SetLastBindMode(mode);
4808 inline void Statement::Bind<ostring, int>(
const ostring& name,
ostring &value,
int maxSize, BindInfo::BindDirection mode)
4810 Bind<ostring, unsigned int>(name, value,
static_cast<unsigned int>(maxSize), mode);
4814 inline void Statement::Bind<Raw, unsigned int>(
const ostring& name,
Raw &value,
unsigned int maxSize, BindInfo::BindDirection mode)
4818 maxSize =
static_cast<unsigned int>(value.size());
4821 value.reserve(maxSize);
4823 BindAdaptor<unsigned char, Raw> * bnd =
new BindAdaptor<unsigned char, Raw>(*
this, name, value, maxSize + 1);
4825 boolean res =
OCI_BindRaw(*
this, name.c_str(),
static_cast<unsigned char *
>(*bnd), maxSize);
4829 BindsHolder *bindsHolder = GetBindsHolder(
true);
4830 bindsHolder->AddBindObject(bnd);
4831 SetLastBindMode(mode);
4842 inline void Statement::Bind<Raw, int>(
const ostring& name,
Raw &value,
int maxSize, BindInfo::BindDirection mode)
4844 Bind<Raw, unsigned int>(name, value,
static_cast<unsigned int>(maxSize), mode);
4848 inline void Statement::Bind<short>(
const ostring& name, std::vector<short> &values, BindInfo::BindDirection mode)
4854 inline void Statement::Bind<unsigned short>(
const ostring& name, std::vector<unsigned short> &values, BindInfo::BindDirection mode)
4860 inline void Statement::Bind<int>(
const ostring& name, std::vector<int> &values, BindInfo::BindDirection mode)
4866 inline void Statement::Bind<unsigned int>(
const ostring& name, std::vector<unsigned int> &values, BindInfo::BindDirection mode)
4872 inline void Statement::Bind<big_int>(
const ostring& name, std::vector<big_int> &values, BindInfo::BindDirection mode)
4878 inline void Statement::Bind<big_uint>(
const ostring& name, std::vector<big_uint> &values, BindInfo::BindDirection mode)
4884 inline void Statement::Bind<float>(
const ostring& name, std::vector<float> &values, BindInfo::BindDirection mode)
4890 inline void Statement::Bind<double>(
const ostring& name, std::vector<double> &values, BindInfo::BindDirection mode)
4896 inline void Statement::Bind<Date>(
const ostring& name, std::vector<Date> &values, BindInfo::BindDirection mode)
4901 template<
class TDataType>
4904 Bind(
OCI_BindColl, name, value, BindValue<OCI_Coll *>(), mode);
4914 inline void Statement::Bind<Timestamp, Timestamp::TimestampType>(
const ostring& name, std::vector<Timestamp> &values, Timestamp::TimestampType type, BindInfo::BindDirection mode)
4916 Bind<Timestamp, Timestamp::TimestampTypeValues>(name, values, type.GetValue(), mode);
4920 inline void Statement::Bind<Interval, Interval::IntervalTypeValues>(
const ostring& name, std::vector<Interval> &values, Interval::IntervalTypeValues type, BindInfo::BindDirection mode)
4926 inline void Statement::Bind<Interval, Interval::IntervalType>(
const ostring& name, std::vector<Interval> &values, Interval::IntervalType type, BindInfo::BindDirection mode)
4928 Bind<Interval, Interval::IntervalTypeValues>(name, values, type.GetValue(), mode);
4932 inline void Statement::Bind<Clob>(
const ostring& name, std::vector<Clob> &values, BindInfo::BindDirection mode)
4938 inline void Statement::Bind<NClob>(
const ostring& name, std::vector<NClob> &values, BindInfo::BindDirection mode)
4944 inline void Statement::Bind<Blob>(
const ostring& name, std::vector<Blob> &values, BindInfo::BindDirection mode)
4950 inline void Statement::Bind<File>(
const ostring& name, std::vector<File> &values, BindInfo::BindDirection mode)
4956 inline void Statement::Bind<Object>(
const ostring& name, std::vector<Object> &values, TypeInfo &typeInfo, BindInfo::BindDirection mode)
4958 Bind(
OCI_BindArrayOfObjects, name, values, BindValue<OCI_Object *>(), mode, static_cast<OCI_TypeInfo *>(typeInfo));
4962 inline void Statement::Bind<Reference>(
const ostring& name, std::vector<Reference> &values, TypeInfo &typeInfo, BindInfo::BindDirection mode)
4964 Bind(
OCI_BindArrayOfRefs, name, values, BindValue<OCI_Ref *>(), mode, static_cast<OCI_TypeInfo *>(typeInfo));
4967 template <
class TDataType>
4970 Bind(
OCI_BindArrayOfColls, name, values, BindValue<OCI_Coll *>(), mode, static_cast<OCI_TypeInfo *>(typeInfo));
4974 inline void Statement::Bind<ostring, unsigned int>(
const ostring& name, std::vector<ostring> &values,
unsigned int maxSize,
BindInfo::BindDirection mode)
4976 BindArray * bnd =
new BindArray(*
this, name);
4977 bnd->SetVector<
ostring, otext>(values, mode, maxSize+1);
4983 BindsHolder *bindsHolder = GetBindsHolder(
true);
4984 bindsHolder->AddBindObject(bnd);
4985 SetLastBindMode(mode);
4996 inline void Statement::Bind<ostring, int>(
const ostring& name, std::vector<ostring> &values,
int maxSize, BindInfo::BindDirection mode)
4998 Bind<ostring, unsigned int>(name, values,
static_cast<unsigned int>(maxSize), mode);
5002 inline void Statement::Bind<Raw, unsigned int>(
const ostring& name, std::vector<Raw> &values,
unsigned int maxSize, BindInfo::BindDirection mode)
5004 BindArray * bnd =
new BindArray(*
this, name);
5005 bnd->SetVector<
Raw,
unsigned char>(values, mode, maxSize + 1);
5011 BindsHolder *bindsHolder = GetBindsHolder(
true);
5012 bindsHolder->AddBindObject(bnd);
5013 SetLastBindMode(mode);
5023 template<
class TDataType>
5026 Bind(
OCI_BindArrayOfColls, name, values, BindValue<OCI_Coll *>(), mode, static_cast<OCI_TypeInfo *>(typeInfo));
5030 inline void Statement::Register<unsigned short>(
const ostring& name)
5036 inline void Statement::Register<short>(
const ostring& name)
5042 inline void Statement::Register<unsigned int>(
const ostring& name)
5048 inline void Statement::Register<int>(
const ostring& name)
5054 inline void Statement::Register<big_uint>(
const ostring& name)
5060 inline void Statement::Register<big_int>(
const ostring& name)
5066 inline void Statement::Register<float>(
const ostring& name)
5072 inline void Statement::Register<double>(
const ostring& name)
5078 inline void Statement::Register<Date>(
const ostring& name)
5084 inline void Statement::Register<Timestamp, Timestamp::TimestampTypeValues>(
const ostring& name, Timestamp::TimestampTypeValues type)
5090 inline void Statement::Register<Timestamp, Timestamp::TimestampType>(
const ostring& name, Timestamp::TimestampType type)
5092 Register<Timestamp, Timestamp::TimestampTypeValues>(name, type.GetValue());
5096 inline void Statement::Register<Interval, Interval::IntervalTypeValues>(
const ostring& name, Interval::IntervalTypeValues type)
5102 inline void Statement::Register<Interval, Interval::IntervalType>(
const ostring& name, Interval::IntervalType type)
5104 Register<Interval, Interval::IntervalTypeValues>(name, type.GetValue());
5108 inline void Statement::Register<Clob>(
const ostring& name)
5114 inline void Statement::Register<NClob>(
const ostring& name)
5120 inline void Statement::Register<Blob>(
const ostring& name)
5126 inline void Statement::Register<File>(
const ostring& name)
5132 inline void Statement::Register<Object, TypeInfo>(
const ostring& name, TypeInfo& typeInfo)
5138 inline void Statement::Register<Reference, TypeInfo>(
const ostring& name, TypeInfo& typeInfo)
5144 inline void Statement::Register<ostring, unsigned int>(
const ostring& name,
unsigned int len)
5150 inline void Statement::Register<ostring, int>(
const ostring& name,
int len)
5152 Register<ostring, unsigned int>(name,
static_cast<unsigned int>(len));
5156 inline void Statement::Register<Raw, unsigned int>(
const ostring& name,
unsigned int len)
5162 inline void Statement::Register<Raw, int>(
const ostring& name,
int len)
5164 Register<Raw, unsigned int>(name,
static_cast<unsigned int>(len));
5173 inline unsigned int Statement::GetSqlErrorPos()
const
5198 inline void Statement::SetFetchSize(
unsigned int value)
5203 inline unsigned int Statement::GetFetchSize()
const
5208 inline void Statement::SetPrefetchSize(
unsigned int value)
5213 inline unsigned int Statement::GetPrefetchSize()
const
5218 inline void Statement::SetPrefetchMemory(
unsigned int value)
5223 inline unsigned int Statement::GetPrefetchMemory()
const
5228 inline void Statement::SetLongMaxSize(
unsigned int value)
5233 inline unsigned int Statement::GetLongMaxSize()
const
5248 inline unsigned int Statement::GetSQLCommand()
const
5258 inline void Statement::GetBatchErrors(std::vector<Exception> &exceptions)
5272 inline void Statement::ClearBinds()
5274 BindsHolder *bindsHolder = GetBindsHolder(
false);
5278 bindsHolder->Clear();
5282 inline void Statement::SetOutData()
5284 BindsHolder *bindsHolder = GetBindsHolder(
false);
5288 bindsHolder->SetOutData();
5292 inline void Statement::SetInData()
5294 BindsHolder *bindsHolder = GetBindsHolder(
false);
5298 bindsHolder->SetInData();
5302 inline void Statement::ReleaseResultsets()
5308 while (_smartHandle->GetChildren().FindIf(IsResultsetHandle, handle))
5312 handle->DetachFromHolders();
5322 inline bool Statement::IsResultsetHandle(Handle *handle)
5324 Resultset::SmartHandle *smartHandle =
dynamic_cast<Resultset::SmartHandle *
>(handle);
5326 return smartHandle != 0;
5329 inline void Statement::SetLastBindMode(BindInfo::BindDirection mode)
5334 inline BindsHolder * Statement::GetBindsHolder(
bool create)
5336 BindsHolder * bindsHolder =
static_cast<BindsHolder *
>(_smartHandle->GetExtraInfos());
5338 if (bindsHolder == 0 && create)
5340 bindsHolder =
new BindsHolder(*
this);
5341 _smartHandle->SetExtraInfos(bindsHolder);
5351 inline Resultset::Resultset(
OCI_Resultset *resultset, Handle *parent)
5353 Acquire(resultset, 0, parent);
5356 inline bool Resultset::Next()
5361 inline bool Resultset::Prev()
5366 inline bool Resultset::First()
5371 inline bool Resultset::Last()
5381 inline unsigned int Resultset::GetCount()
const
5386 inline unsigned int Resultset::GetCurrentRow()
const
5391 inline unsigned int Resultset::GetColumnIndex(
const ostring& name)
const
5396 inline unsigned int Resultset::GetColumnCount()
const
5401 inline Column Resultset::GetColumn(
unsigned int index)
const
5411 inline bool Resultset::IsColumnNull(
unsigned int index)
const
5416 inline bool Resultset::IsColumnNull(
const ostring& name)
const
5426 inline bool Resultset::operator ++ (
int)
5431 inline bool Resultset::operator -- (
int)
5436 inline bool Resultset::operator += (
int offset)
5438 return Seek(Resultset::SeekRelative, offset);
5441 inline bool Resultset::operator -= (
int offset)
5443 return Seek(Resultset::SeekRelative, -offset);
5446 template<
class TDataType>
5447 inline void Resultset::Get(
unsigned int index, TDataType& value)
const
5449 value = Get<TDataType>(index);
5452 template<
class TDataType>
5453 inline void Resultset::Get(
const ostring &name, TDataType& value)
const
5455 value = Get<TDataType>(name);
5458 template<
class TDataType,
class TAdapter>
5459 inline bool Resultset::Get(TDataType& value, TAdapter adapter)
const
5461 return adapter(static_cast<const Resultset&>(*
this), value);
5464 template<
class TCallback>
5465 inline unsigned int Resultset::ForEach(TCallback callback)
5469 if (!callback(static_cast<const Resultset&>(*
this)))
5475 return GetCurrentRow();
5478 template<
class TAdapter,
class TCallback>
5479 inline unsigned int Resultset::ForEach(TCallback callback, TAdapter adapter)
5483 if (!callback(adapter(static_cast<const Resultset&>(*
this))))
5489 return GetCurrentRow();
5493 inline short Resultset::Get<short>(
unsigned int index)
const
5499 inline short Resultset::Get<short>(
const ostring& name)
const
5505 inline unsigned short Resultset::Get<unsigned short>(
unsigned int index)
const
5511 inline unsigned short Resultset::Get<unsigned short>(
const ostring& name)
const
5517 inline int Resultset::Get<int>(
unsigned int index)
const
5523 inline int Resultset::Get<int>(
const ostring& name)
const
5529 inline unsigned int Resultset::Get<unsigned int>(
unsigned int index)
const
5535 inline unsigned int Resultset::Get<unsigned int>(
const ostring& name)
const
5541 inline big_int Resultset::Get<big_int>(
unsigned int index)
const
5547 inline big_int Resultset::Get<big_int>(
const ostring& name)
const
5553 inline big_uint Resultset::Get<big_uint>(
unsigned int index)
const
5559 inline big_uint Resultset::Get<big_uint>(
const ostring& name)
const
5565 inline float Resultset::Get<float>(
unsigned int index)
const
5571 inline float Resultset::Get<float>(
const ostring& name)
const
5577 inline double Resultset::Get<double>(
unsigned int index)
const
5583 inline double Resultset::Get<double>(
const ostring& name)
const
5589 inline ostring Resultset::Get<ostring>(
unsigned int index)
const
5595 inline ostring Resultset::Get<ostring>(
const ostring& name)
const
5601 inline Raw Resultset::Get<Raw>(
unsigned int index)
const
5605 ManagedBuffer<unsigned char> buffer(size + 1);
5607 size =
Check(
OCI_GetRaw(*
this, index, static_cast<AnyPointer>(buffer), size));
5613 inline Raw Resultset::Get<Raw>(
const ostring& name)
const
5617 ManagedBuffer<unsigned char> buffer(size + 1);
5625 inline Date Resultset::Get<Date>(
unsigned int index)
const
5631 inline Date Resultset::Get<Date>(
const ostring& name)
const
5637 inline Timestamp Resultset::Get<Timestamp>(
unsigned int index)
const
5643 inline Timestamp Resultset::Get<Timestamp>(
const ostring& name)
const
5649 inline Interval Resultset::Get<Interval>(
unsigned int index)
const
5655 inline Interval Resultset::Get<Interval>(
const ostring& name)
const
5661 inline Object Resultset::Get<Object>(
unsigned int index)
const
5667 inline Object Resultset::Get<Object>(
const ostring& name)
const
5673 inline Reference Resultset::Get<Reference>(
unsigned int index)
const
5679 inline Reference Resultset::Get<Reference>(
const ostring& name)
const
5685 inline Statement Resultset::Get<Statement>(
unsigned int index)
const
5691 inline Statement Resultset::Get<Statement>(
const ostring& name)
const
5697 inline Clob Resultset::Get<Clob>(
unsigned int index)
const
5703 inline Clob Resultset::Get<Clob>(
const ostring& name)
const
5709 inline NClob Resultset::Get<NClob>(
unsigned int index)
const
5715 inline NClob Resultset::Get<NClob>(
const ostring& name)
const
5721 inline Blob Resultset::Get<Blob>(
unsigned int index)
const
5727 inline Blob Resultset::Get<Blob>(
const ostring& name)
const
5733 inline File Resultset::Get<File>(
unsigned int index)
const
5739 inline File Resultset::Get<File>(
const ostring& name)
const
5745 inline Clong Resultset::Get<Clong>(
unsigned int index)
const
5751 inline Clong Resultset::Get<Clong>(
const ostring& name)
const
5757 inline Blong Resultset::Get<Blong>(
unsigned int index)
const
5763 inline Blong Resultset::Get<Blong>(
const ostring& name)
const
5768 template<
class TDataType>
5769 inline TDataType Resultset::Get(
unsigned int index)
const
5774 template<
class TDataType>
5775 inline TDataType Resultset::Get(
const ostring& name)
const
5784 inline Column::Column(
OCI_Column *pColumn, Handle *parent)
5786 Acquire(pColumn, 0, parent);
5789 inline ostring Column::GetName()
const
5801 unsigned int size = OCI_SIZE_BUFFER;
5803 ManagedBuffer<otext> buffer(size + 1);
5807 return MakeString(static_cast<const otext *>(buffer));
5815 inline unsigned int Column::GetSubType()
const
5825 inline unsigned int Column::GetSize()
const
5830 inline int Column::GetScale()
const
5835 inline int Column::GetPrecision()
const
5840 inline int Column::GetFractionalPrecision()
const
5845 inline int Column::GetLeadingPrecision()
const
5855 inline bool Column::IsNullable()
const
5860 inline bool Column::IsCharSemanticUsed()
const
5874 inline Subscription::Subscription()
5881 Acquire(pSubcription, 0, 0);
5884 inline void Subscription::Register(
const Connection &connection,
const ostring& name,
ChangeTypes changeTypes, NotifyHandlerProc handler,
unsigned int port,
unsigned int timeout)
5887 static_cast<POCI_NOTIFY> (handler != 0 ? Environment::NotifyHandler : 0 ), port, timeout)),
5890 Environment::SetUserCallback<Subscription::NotifyHandlerProc>(
static_cast<OCI_Subscription*
>(*this), handler);
5893 inline void Subscription::Unregister()
5895 Environment::SetUserCallback<Subscription::NotifyHandlerProc>(
static_cast<OCI_Subscription*
>(*this), 0);
5900 inline void Subscription::Watch(
const ostring& sql)
5914 inline unsigned int Subscription::GetTimeout()
const
5919 inline unsigned int Subscription::GetPort()
const
5935 Acquire(pEvent, 0, 0);
5977 inline Agent::Agent(
OCI_Agent *pAgent, Handle *parent)
5979 Acquire(pAgent, 0, parent);
5997 inline void Agent::SetAddress(
const ostring& value)
6011 inline Message::Message(
OCI_Msg *pMessage, Handle *parent)
6013 Acquire(pMessage, 0, parent);
6016 inline void Message::Reset()
6022 inline Object Message::GetPayload<Object>()
6028 inline void Message::SetPayload<Object>(
const Object &value)
6034 inline Raw Message::GetPayload<Raw>()
6036 unsigned int size = 0;
6038 ManagedBuffer<unsigned char> buffer(size + 1);
6046 inline void Message::SetPayload<Raw>(
const Raw &value)
6048 if (value.size() > 0)
6050 Check(
OCI_MsgSetRaw(*
this, static_cast<AnyPointer>(const_cast<Raw::value_type *>(&value[0])), static_cast<unsigned int>(value.size())));
6058 inline Date Message::GetEnqueueTime()
const
6063 inline int Message::GetAttemptCount()
const
6073 inline Raw Message::GetID()
const
6075 unsigned int size = OCI_SIZE_BUFFER;
6077 ManagedBuffer<unsigned char> buffer(size + 1);
6084 inline int Message::GetExpiration()
const
6089 inline void Message::SetExpiration(
int value)
6094 inline int Message::GetEnqueueDelay()
const
6099 inline void Message::SetEnqueueDelay(
int value)
6104 inline int Message::GetPriority()
const
6109 inline void Message::SetPriority(
int value)
6114 inline Raw Message::GetOriginalID()
const
6116 unsigned int size = OCI_SIZE_BUFFER;
6118 ManagedBuffer<unsigned char> buffer(size + 1);
6125 inline void Message::SetOriginalID(
const Raw &value)
6127 if (value.size() > 0)
6129 Check(
OCI_MsgSetOriginalID(*
this, static_cast<AnyPointer>(const_cast<Raw::value_type *>(&value[0])), static_cast<unsigned int>(value.size())));
6142 inline void Message::SetCorrelation(
const ostring& value)
6152 inline void Message::SetExceptionQueue(
const ostring& value)
6162 inline void Message::SetSender(
const Agent &agent)
6167 inline void Message::SetConsumers(std::vector<Agent> &agents)
6169 size_t size = agents.size();
6170 ManagedBuffer<OCI_Agent*> buffer(size);
6174 for (
size_t i = 0; i < size; ++i)
6176 pAgents[i] =
static_cast<const Agent &
>(agents[i]);
6216 inline Raw Enqueue::GetRelativeMsgID()
const
6218 unsigned int size = OCI_SIZE_BUFFER;
6220 ManagedBuffer<unsigned char> buffer(size + 1);
6227 inline void Enqueue::SetRelativeMsgID(
const Raw &value)
6229 if (value.size() > 0)
6250 Acquire(pDequeue, 0, 0);
6258 inline Agent Dequeue::Listen(
int timeout)
6268 inline void Dequeue::SetConsumer(
const ostring& value)
6278 inline void Dequeue::SetCorrelation(
const ostring& value)
6283 inline Raw Dequeue::GetRelativeMsgID()
const
6285 unsigned int size = OCI_SIZE_BUFFER;
6287 ManagedBuffer<unsigned char> buffer(size + 1);
6294 inline void Dequeue::SetRelativeMsgID(
const Raw &value)
6296 if (value.size() > 0)
6336 inline int Dequeue::GetWaitTime()
const
6341 inline void Dequeue::SetWaitTime(
int value)
6346 inline void Dequeue::SetAgents(std::vector<Agent> &agents)
6348 size_t size = agents.size();
6349 ManagedBuffer<OCI_Agent*> buffer(size);
6353 for (
size_t i = 0; i < size; ++i)
6355 pAgents[i] =
static_cast<const Agent &
>(agents[i]);
6361 inline void Dequeue::Subscribe(
unsigned int port,
unsigned int timeout, NotifyAQHandlerProc handler)
6363 Check(
OCI_DequeueSubscribe(*
this, port, timeout, static_cast<POCI_NOTIFY_AQ>(handler != 0 ? Environment::NotifyHandlerAQ : 0 )));
6365 Environment::SetUserCallback<Dequeue::NotifyAQHandlerProc>(
static_cast<OCI_Dequeue*
>(*this), handler);
6368 inline void Dequeue::Unsubscribe()
6377 inline DirectPath::DirectPath(
const TypeInfo &typeInfo,
unsigned int nbCols,
unsigned int nbRows,
const ostring& partition)
6382 inline void DirectPath::SetColumn(
unsigned int colIndex,
const ostring& name,
unsigned int maxSize,
const ostring& format)
6387 template <
class TDataType>
6388 inline void DirectPath::SetEntry(
unsigned int rowIndex,
unsigned int colIndex,
const TDataType &value,
bool complete)
6390 Check(
OCI_DirPathSetEntry(*
this, rowIndex, colIndex, static_cast<const AnyPointer>(const_cast<typename TDataType::value_type *>(value.c_str())),
static_cast<unsigned int>(value.size()), complete));
6393 inline void DirectPath::Reset()
6398 inline void DirectPath::Prepare()
6413 inline void DirectPath::Finish()
6418 inline void DirectPath::Abort()
6423 inline void DirectPath::Save()
6428 inline void DirectPath::FlushRow()
6433 inline void DirectPath::SetCurrentRows(
unsigned int value)
6438 inline unsigned int DirectPath::GetCurrentRows()
const
6443 inline unsigned int DirectPath::GetMaxRows()
const
6448 inline unsigned int DirectPath::GetRowCount()
const
6453 inline unsigned int DirectPath::GetAffectedRows()
const
6458 inline void DirectPath::SetDateFormat(
const ostring& format)
6463 inline void DirectPath::SetParallel(
bool value)
6468 inline void DirectPath::SetNoLog(
bool value)
6473 inline void DirectPath::SetCacheSize(
unsigned int value)
6478 inline void DirectPath::SetBufferSize(
unsigned int value)
6488 inline unsigned int DirectPath::GetErrorColumn()
6493 inline unsigned int DirectPath::GetErrorRow()
6503 unsigned int retryDelay,
unsigned int retentionTime,
bool dependencyTracking,
const ostring& comment)
6505 Check(
OCI_QueueCreate(connection, queue.c_str(), table.c_str(), queueType, maxRetries, retryDelay, retentionTime, dependencyTracking, comment.c_str()));
6508 inline void Queue::Alter(
const Connection &connection,
const ostring& queue,
unsigned int maxRetries,
unsigned int retryDelay,
unsigned int retentionTime,
const ostring& comment)
6510 Check(
OCI_QueueAlter(connection, queue.c_str(), maxRetries, retryDelay, retentionTime, comment.c_str()));
6518 inline void Queue::Start(
const Connection &connection,
const ostring& queue,
bool enableEnqueue,
bool enableDequeue)
6523 inline void Queue::Stop(
const Connection &connection,
const ostring& queue,
bool stopEnqueue,
bool stopDequeue,
bool wait)
6533 GroupingMode groupingMode,
const ostring& comment,
unsigned int primaryInstance,
unsigned int secondaryInstance,
const ostring& compatible)
6536 Check(
OCI_QueueTableCreate(connection, table.c_str(), payloadType.c_str(), storageClause.c_str(), sortList.c_str(), multipleConsumers,
6537 groupingMode, comment.c_str(), primaryInstance, secondaryInstance, compatible.c_str()));
6540 inline void QueueTable::Alter(
const Connection &connection,
const ostring& table,
const ostring& comment,
unsigned int primaryInstance,
unsigned int secondaryInstance)
ostring GetServer() const
Return the Oracle server Hos name of the connected database/service name.
OCI_EXPORT OCI_Subscription *OCI_API OCI_EventGetSubscription(OCI_Event *event)
Return the subscription handle that generated this event.
Object()
Create an empty null Object instance.
OCI_EXPORT boolean OCI_API OCI_ObjectSetFile(OCI_Object *obj, const otext *attr, OCI_File *value)
Set an object attribute of type File.
Transaction GetTransaction() const
Return the current transaction of the connection.
OCI_EXPORT boolean OCI_API OCI_BindUnsignedBigInt(OCI_Statement *stmt, const otext *name, big_uint *data)
Bind an unsigned big integer variable.
struct OCI_Agent OCI_Agent
OCILIB encapsulation of A/Q Agent.
OCI_EXPORT unsigned int OCI_API OCI_GetLongMode(OCI_Statement *stmt)
Return the long data type handling mode of a SQL statement.
OCI_EXPORT unsigned int OCI_API OCI_EnqueueGetVisibility(OCI_Enqueue *enqueue)
Get the enqueuing/locking behavior.
OCI_EXPORT OCI_Column *OCI_API OCI_GetColumn(OCI_Resultset *rs, unsigned int index)
Return the column object handle at the given index in the resultset.
Encapsulate a Resultset column or object member properties.
OCI_EXPORT int OCI_API OCI_ErrorGetInternalCode(OCI_Error *err)
Retrieve Internal Error code from error handle.
OCI_EXPORT big_int OCI_API OCI_ElemGetBigInt(OCI_Elem *elem)
Return the big int value of the given collection element.
void SetHours(int value)
Set the interval hours value.
OCI_EXPORT const otext *OCI_API OCI_GetVersionServer(OCI_Connection *con)
Return the connected database server version.
OCI_EXPORT boolean OCI_API OCI_DateLastDay(OCI_Date *date)
Place the last day of month (from the given date) into the given date.
Interval Clone() const
Clone the current instance to a new one performing deep copy.
int GetMilliSeconds() const
Return the interval seconds value.
OCI_EXPORT boolean OCI_API OCI_MsgGetID(OCI_Msg *msg, void *id, unsigned int *len)
Return the ID of the message.
ObjectType GetType() const
Return the type of the given object.
bool operator>(const Date &other) const
Indicates if the current date value is superior to the given date value.
OCI_EXPORT boolean OCI_API OCI_ConnectionFree(OCI_Connection *con)
Close a physical connection to an Oracle database server.
Lob< Raw, LobBinary > Blob
Class handling BLOB oracle type.
TypeInfo GetTypeInfo() const
Return the TypeInfo object describing the referenced object.
OCI_EXPORT boolean OCI_API OCI_QueueStart(OCI_Connection *con, const otext *queue_name, boolean enqueue, boolean dequeue)
Start the given queue.
OCI_EXPORT boolean OCI_API OCI_DequeueSubscribe(OCI_Dequeue *dequeue, unsigned int port, unsigned int timeout, POCI_NOTIFY_AQ callback)
Subscribe for asynchronous messages notifications.
OCI_EXPORT const otext *OCI_API OCI_ServerGetOutput(OCI_Connection *con)
Retrieve one line of the server buffer.
OCI_EXPORT boolean OCI_API OCI_ColumnGetCharUsed(OCI_Column *col)
Return TRUE if the length of the column is character-length or FALSE if it is byte-length.
OCI_EXPORT boolean OCI_API OCI_SubscriptionUnregister(OCI_Subscription *sub)
Unregister a previously registered notification.
long long big_int
big_int is a C scalar integer (32 or 64 bits) depending on compiler support for 64bits integers...
OCI_EXPORT unsigned int OCI_API OCI_LobGetType(OCI_Lob *lob)
Return the type of the given Lob object.
void Open(const ostring &db, const ostring &user, const ostring &pwd, Pool::PoolType poolType, unsigned int minSize, unsigned int maxSize, unsigned int increment=1, Environment::SessionFlags sessionFlags=Environment::SessionDefault)
Create an Oracle pool of connections or sessions.
static void Initialize(EnvironmentFlags mode=Environment::Default, const ostring &libpath=OTEXT(""))
Initialize the OCILIB environment.
OCI_EXPORT boolean OCI_API OCI_CollClear(OCI_Coll *coll)
clear all items of the given collection
OCI_EXPORT boolean OCI_API OCI_BindSetNullAtPos(OCI_Bind *bnd, unsigned int position)
Set to null the entry in the bind variable input array.
OCI_EXPORT OCI_Object *OCI_API OCI_ObjectCreate(OCI_Connection *con, OCI_TypeInfo *typinf)
Create a local object instance.
Timestamp & operator-=(int value)
Decrement the Timestamp by the given number of days.
OCI_EXPORT unsigned int OCI_API OCI_MsgGetState(OCI_Msg *msg)
Return the state of the message at the time of the dequeue.
OCI_EXPORT boolean OCI_API OCI_ElemSetNull(OCI_Elem *elem)
Set a collection element value to null.
int GetHours() const
Return the timestamp hours value.
OCI_EXPORT boolean OCI_API OCI_ObjectSetLob(OCI_Object *obj, const otext *attr, OCI_Lob *value)
Set an object attribute of type Lob.
OCI_EXPORT boolean OCI_API OCI_ExecuteStmt(OCI_Statement *stmt, const otext *sql)
Prepare and Execute a SQL statement or PL/SQL block.
int GetYear() const
Return the date year value.
OCI_EXPORT boolean OCI_API OCI_ObjectSetNull(OCI_Object *obj, const otext *attr)
Set an object attribute to null.
bool IsElementNull(unsigned int index) const
check if the element at the given index is null
OCI_EXPORT OCI_Column *OCI_API OCI_GetColumn2(OCI_Resultset *rs, const otext *name)
Return the column object handle from its name in the resultset.
OCI_EXPORT boolean OCI_API OCI_DateAddDays(OCI_Date *date, int nb)
Add or subtract days to a date handle.
OCI_EXPORT boolean OCI_API OCI_RegisterUnsignedShort(OCI_Statement *stmt, const otext *name)
Register an unsigned short output bind placeholder.
void Truncate(big_uint length)
Truncate the lob to a shorter length.
OCI_EXPORT boolean OCI_API OCI_RegisterUnsignedBigInt(OCI_Statement *stmt, const otext *name)
Register an unsigned big integer output bind placeholder.
void(* NotifyAQHandlerProc)(Dequeue &dequeue)
User callback for dequeue event notifications.
OCI_EXPORT boolean OCI_API OCI_EnqueueSetRelativeMsgID(OCI_Enqueue *enqueue, const void *id, unsigned int len)
Set a message identifier to use for enqueuing messages using a sequence deviation.
unsigned int GetTimeout() const
Return the transaction Timeout.
OCI_EXPORT boolean OCI_API OCI_RegisterFile(OCI_Statement *stmt, const otext *name, unsigned int type)
Register a file output bind placeholder.
void SetTAFHandler(TAFHandlerProc handler)
Set the Transparent Application Failover (TAF) user handler.
OCI_EXPORT unsigned int OCI_API OCI_GetPrefetchSize(OCI_Statement *stmt)
Return the number of rows pre-fetched by OCI Client.
OCI_EXPORT boolean OCI_API OCI_RegisterDate(OCI_Statement *stmt, const otext *name)
Register a date output bind placeholder.
static void EnableWarnings(bool value)
Enable or disable Oracle warning notifications.
Interval()
Create an empty null Interval instance.
Date operator-(int value)
Return a new date holding the current date value decremented by the given number of days...
OCI_EXPORT OCI_Statement *OCI_API OCI_StatementCreate(OCI_Connection *con)
Create a statement object and return its handle.
OCI_EXPORT boolean OCI_API OCI_ServerDisableOutput(OCI_Connection *con)
Disable the server output.
static unsigned int GetCompileRevisionVersion()
Return the revision version number of OCI used for compiling OCILIB.
OCI_EXPORT boolean OCI_API OCI_BindUnsignedInt(OCI_Statement *stmt, const otext *name, unsigned int *data)
Bind an unsigned integer variable.
OCI_EXPORT boolean OCI_API OCI_RefSetNull(OCI_Ref *ref)
Nullify the given Ref handle.
struct OCI_Connection OCI_Connection
Oracle physical connection.
bool Delete(unsigned int index) const
Delete the element at the given position in the Nested Table Collection.
OCI_EXPORT int OCI_API OCI_ObjectGetInt(OCI_Object *obj, const otext *attr)
Return the integer value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_ThreadRun(OCI_Thread *thread, POCI_THREAD proc, void *arg)
Execute the given routine within the given thread object.
Reference Clone() const
Clone the current instance to a new one performing deep copy.
Timestamp operator-(int value)
Return a new Timestamp holding the current Timestamp value decremented by the given number of days...
Exception class handling all OCILIB errors.
OCI_EXPORT unsigned int OCI_API OCI_GetLongMaxSize(OCI_Statement *stmt)
Return the LONG data type piece buffer size.
File()
Create an empty null File instance.
void SetMinutes(int value)
Set the date minutes value.
OCI_EXPORT boolean OCI_API OCI_BindSetNotNullAtPos(OCI_Bind *bnd, unsigned int position)
Set to NOT null the entry in the bind variable input array.
int GetOracleErrorCode() const
Return the Oracle error code.
OCI_EXPORT unsigned int OCI_API OCI_IntervalGetType(OCI_Interval *itv)
Return the type of the given Interval object.
Provides SQL bind informations.
OCI_EXPORT boolean OCI_API OCI_DequeueFree(OCI_Dequeue *dequeue)
Free a Dequeue object.
Timestamp operator+(int value)
Return a new Timestamp holding the current Timestamp value incremented by the given number of days...
ostring GetDatabase() const
Return the Oracle server database name of the connected database/service name.
OCI_EXPORT OCI_Connection *OCI_API OCI_ErrorGetConnection(OCI_Error *err)
Retrieve connection handle within the error occurred.
unsigned int GetServerMinorVersion() const
Return the minor version number of the connected database server.
void SetTrace(SessionTrace trace, const ostring &value)
Set tracing information for the session.
OCI_EXPORT boolean OCI_API OCI_FileAssign(OCI_File *file, OCI_File *file_src)
Assign a file to another one.
OCI_EXPORT boolean OCI_API OCI_DateFromText(OCI_Date *date, const otext *str, const otext *fmt)
Convert a string to a date and store it in the given date handle.
OCI_EXPORT const otext *OCI_API OCI_GetUserName(OCI_Connection *con)
Return the current logged user name.
OCI_EXPORT const otext *OCI_API OCI_ColumnGetSQLType(OCI_Column *col)
Return the Oracle SQL type name of the column data type.
OCI_EXPORT boolean OCI_API OCI_PoolSetStatementCacheSize(OCI_Pool *pool, unsigned int value)
Set the maximum number of statements to keep in the pool statement cache.
OCI_EXPORT boolean OCI_API OCI_DequeueSetWaitTime(OCI_Dequeue *dequeue, int timeout)
set the time that OCIDequeueGet() waits for messages if no messages are currently available ...
unsigned int ForEach(TCallback callback)
Fetch all rows in the resultset and call the given callback for row.
OCI_EXPORT boolean OCI_API OCI_FetchPrev(OCI_Resultset *rs)
Fetch the previous row of the resultset.
OCI_EXPORT boolean OCI_API OCI_DequeueSetNavigation(OCI_Dequeue *dequeue, unsigned int position)
Set the position of messages to be retrieved.
OCI_EXPORT boolean OCI_API OCI_IsNull(OCI_Resultset *rs, unsigned int index)
Check if the current row value is null for the column at the given index in the resultset.
OCI_EXPORT unsigned int OCI_API OCI_ElemGetUnsignedInt(OCI_Elem *elem)
Return the unsigned int value of the given collection element.
OCI_EXPORT boolean OCI_API OCI_SetUserPassword(const otext *db, const otext *user, const otext *pwd, const otext *new_pwd)
Change the password of the given user on the given database.
OCI_EXPORT boolean OCI_API OCI_ObjectSetRaw(OCI_Object *obj, const otext *attr, void *value, unsigned int len)
Set an object attribute of type RAW.
OCI_EXPORT const otext *OCI_API OCI_ObjectGetString(OCI_Object *obj, const otext *attr)
Return the string value of the given object attribute.
OCI_EXPORT big_uint OCI_API OCI_LobGetOffset(OCI_Lob *lob)
Return the current position in the Lob content buffer.
OCI_EXPORT boolean OCI_API OCI_IntervalSubtract(OCI_Interval *itv, OCI_Interval *itv2)
Subtract an interval handle value from another.
OCI_EXPORT unsigned int OCI_API OCI_ColumnGetFullSQLType(OCI_Column *col, otext *buffer, unsigned int len)
Return the Oracle SQL Full name including precision and size of the column data type.
void SetDefaultLobPrefetchSize(unsigned int value)
Enable or disable prefetching for all LOBs fetched in the connection.
void ChangePassword(const ostring &newPwd)
Change the password of the logged user.
OCI_EXPORT double OCI_API OCI_ObjectGetDouble(OCI_Object *obj, const otext *attr)
Return the double value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_BindString(OCI_Statement *stmt, const otext *name, otext *data, unsigned int len)
Bind a string variable.
int GetInternalErrorCode() const
Return the OCILIB error code.
OCI_EXPORT unsigned int OCI_API OCI_ObjectGetType(OCI_Object *obj)
Return the type of an object instance.
void GetDateTime(int &year, int &month, int &day, int &hour, int &min, int &sec) const
Extract the date and time parts.
ostring GetInstance() const
Return the Oracle server Instance name of the connected database/service name.
void(* HAHandlerProc)(Connection &con, HAEventSource eventSource, HAEventType eventType, Timestamp &time)
User callback for HA event notifications.
OCI_EXPORT OCI_Enqueue *OCI_API OCI_EnqueueCreate(OCI_TypeInfo *typinf, const otext *name)
Create a Enqueue object for the given queue.
OCI_EXPORT OCI_Elem *OCI_API OCI_ElemCreate(OCI_TypeInfo *typinf)
Create a local collection element instance based on a collection type descriptor. ...
OCI_EXPORT boolean OCI_API OCI_ElemSetRaw(OCI_Elem *elem, void *value, unsigned int len)
Set a RAW value to a collection element.
ostring GetUserName() const
Return the current logged user name.
OCI_EXPORT const otext *OCI_API OCI_ColumnGetName(OCI_Column *col)
Return the name of the given column.
void FromString(const ostring &str, const ostring &format=OTEXT(""))
Assign to the date object the value provided by the input date time string.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfUnsignedShorts(OCI_Statement *stmt, const otext *name, unsigned short *data, unsigned int nbelem)
Bind an array of unsigned shorts.
OCI_EXPORT int OCI_API OCI_ObjectGetRaw(OCI_Object *obj, const otext *attr, void *value, unsigned int len)
Return the raw attribute value of the given object attribute into the given buffer.
OCI_EXPORT boolean OCI_API OCI_BindArraySetSize(OCI_Statement *stmt, unsigned int size)
Set the input array size for bulk operations.
OCI_EXPORT OCI_File *OCI_API OCI_ElemGetFile(OCI_Elem *elem)
Return the File value of the given collection element.
OCI_EXPORT OCI_Connection *OCI_API OCI_PoolGetConnection(OCI_Pool *pool, const otext *tag)
Get a connection from the pool.
void SetAutoCommit(bool enabled)
Enable or disable auto commit mode (implicit commits after every SQL execution)
OCI_EXPORT boolean OCI_API OCI_IntervalFromTimeZone(OCI_Interval *itv, const otext *str)
Correct an interval handle value with the given time zone.
OCI_EXPORT unsigned int OCI_API OCI_GetImportMode(void)
Return the Oracle shared library import mode.
OCI_EXPORT unsigned int OCI_API OCI_BindGetDirection(OCI_Bind *bnd)
Get the direction mode of a bind handle.
Long< Raw, LongBinary > Blong
Class handling LONG RAW oracle type.
OCI_EXPORT OCI_Connection *OCI_API OCI_FileGetConnection(OCI_File *file)
Retrieve connection handle from the file handle.
OCI_EXPORT boolean OCI_API OCI_SetBindMode(OCI_Statement *stmt, unsigned int mode)
Set the binding mode of a SQL statement.
OCI_EXPORT boolean OCI_API OCI_ObjectToText(OCI_Object *obj, unsigned int *size, otext *str)
Convert an object handle value to a string.
OCI_EXPORT boolean OCI_API OCI_DequeueSetVisibility(OCI_Dequeue *dequeue, unsigned int visibility)
Set whether the new message is dequeued as part of the current transaction.
OCI_EXPORT OCI_Statement *OCI_API OCI_GetStatement(OCI_Resultset *rs, unsigned int index)
Return the current cursor value (Nested table) of the column at the given index in the resultset...
OCI_EXPORT boolean OCI_API OCI_FileExists(OCI_File *file)
Check if the given file exists on server.
OCI_EXPORT boolean OCI_API OCI_FetchLast(OCI_Resultset *rs)
Fetch the last row of the resultset.
bool operator==(const Timestamp &other) const
Indicates if the current Timestamp value is equal to the given Timestamp value.
int GetMonth() const
Return the interval month value.
ostring MakeString(const otext *result)
Internal usage. Constructs a C++ string object from the given OCILIB string pointer.
OCI_EXPORT boolean OCI_API OCI_BindStatement(OCI_Statement *stmt, const otext *name, OCI_Statement *data)
Bind a Statement variable (PL/SQL Ref Cursor)
OCI_EXPORT boolean OCI_API OCI_ObjectSetShort(OCI_Object *obj, const otext *attr, short value)
Set an object attribute of type short.
OCI_EXPORT boolean OCI_API OCI_DateAddMonths(OCI_Date *date, int nb)
Add or subtract months to a date handle.
bool operator==(const Lob &other) const
Indicates if the current lob value is equal to the given lob value.
void Forget()
Cancel the prepared global transaction validation.
void ChangeTimeZone(const ostring &tzSrc, const ostring &tzDst)
Convert the date from one zone to another zone.
OCI_EXPORT boolean OCI_API OCI_MutexAcquire(OCI_Mutex *mutex)
Acquire a mutex lock.
OCI_EXPORT boolean OCI_API OCI_ElemSetString(OCI_Elem *elem, const otext *value)
Set a string value to a collection element.
void SetDaySecond(int day, int hour, int min, int sec, int fsec)
Set the Day / Second parts.
OCI_EXPORT boolean OCI_API OCI_Ping(OCI_Connection *con)
Makes a round trip call to the server to confirm that the connection and the server are active...
OCI_EXPORT unsigned int OCI_API OCI_GetAffectedRows(OCI_Statement *stmt)
Return the number of rows affected by the SQL statement.
OCI_EXPORT unsigned int OCI_API OCI_LobRead(OCI_Lob *lob, void *buffer, unsigned int len)
[OBSOLETE] Read a portion of a lob into the given buffer
void Open()
Open a file for reading on the server.
void SetHours(int value)
Set the timestamp hours value.
void GetTime(int &hour, int &min, int &sec) const
Extract time parts.
OCI_EXPORT unsigned short OCI_API OCI_GetUnsignedShort2(OCI_Resultset *rs, const otext *name)
Return the current unsigned short value of the column from its name in the resultset.
OCI_EXPORT boolean OCI_API OCI_ElemSetInterval(OCI_Elem *elem, OCI_Interval *value)
Assign an Interval handle to a collection element.
Date operator+(int value)
Return a new date holding the current date value incremented by the given number of days...
OCI_EXPORT unsigned int OCI_API OCI_PoolGetStatementCacheSize(OCI_Pool *pool)
Return the maximum number of statements to keep in the pool statement cache.
OCI_EXPORT boolean OCI_API OCI_BindDouble(OCI_Statement *stmt, const otext *name, double *data)
Bind a double variable.
OCI_EXPORT OCI_Ref *OCI_API OCI_ObjectGetRef(OCI_Object *obj, const otext *attr)
Return the Ref value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_ObjectSetDouble(OCI_Object *obj, const otext *attr, double value)
Set an object attribute of type double.
OCI_EXPORT OCI_Lob *OCI_API OCI_GetLob2(OCI_Resultset *rs, const otext *name)
Return the current lob value of the column from its name in the resultset.
Enum< LobTypeValues > LobType
Type of Lob.
OCI_EXPORT int OCI_API OCI_ColumnGetScale(OCI_Column *col)
Return the scale of the column for numeric columns.
static void Release(MutexHandle handle)
Release a mutex lock.
Statement GetStatement() const
Return the statement within the error occurred.
OCI_EXPORT boolean OCI_API OCI_SetDefaultLobPrefetchSize(OCI_Connection *con, unsigned int value)
Enable or disable prefetching for all LOBs fetched in the connection.
OCI_EXPORT boolean OCI_API OCI_CollDeleteElem(OCI_Coll *coll, unsigned int index)
Delete the element at the given position in the Nested Table Collection.
OCI_EXPORT boolean OCI_API OCI_TimestampFromText(OCI_Timestamp *tmsp, const otext *str, const otext *fmt)
Convert a string to a timestamp and store it in the given timestamp handle.
OCI_EXPORT int OCI_API OCI_DateCompare(OCI_Date *date, OCI_Date *date2)
Compares two date handles.
OCI_Mutex * MutexHandle
Alias for an OCI_Mutex pointer.
struct OCI_XID OCI_XID
Global transaction identifier.
OCI_EXPORT boolean OCI_API OCI_MsgSetOriginalID(OCI_Msg *msg, const void *id, unsigned int len)
Set the original ID of the message in the last queue that generated this message. ...
ostring GetDomain() const
Return the Oracle server Domain name of the connected database/service name.
OCI_EXPORT OCI_Interval *OCI_API OCI_GetInterval(OCI_Resultset *rs, unsigned int index)
Return the current interval value of the column at the given index in the resultset.
OCI_EXPORT boolean OCI_API OCI_ObjectSetRef(OCI_Object *obj, const otext *attr, OCI_Ref *value)
Set an object attribute of type Ref.
static ostring GetFormat(FormatType formatType)
Return the format string for implicit string conversions of the given type.
OCI_EXPORT OCI_Bind *OCI_API OCI_GetBind(OCI_Statement *stmt, unsigned int index)
Return the bind handle at the given index in the internal array of bind handle.
unsigned int GetDefaultLobPrefetchSize() const
Return the default LOB prefetch buffer size for the connection.
OCI_EXPORT OCI_Lob *OCI_API OCI_ObjectGetLob(OCI_Object *obj, const otext *attr)
Return the lob value of the given object attribute.
Object used for executing SQL or PL/SQL statement and returning the produced results.
int GetDay() const
Return the interval day value.
OCI_EXPORT boolean OCI_API OCI_MsgGetOriginalID(OCI_Msg *msg, void *id, unsigned int *len)
Return the original ID of the message in the last queue that generated this message.
static void ShutdownDatabase(const ostring &db, const ostring &user, const ostring &pwd, Environment::ShutdownFlags shutdownFlags, Environment::ShutdownMode shutdownMode, Environment::SessionFlags sessionFlags=SessionSysDba)
Shutdown a database instance.
A connection or session with a specific database.
OCI_EXPORT boolean OCI_API OCI_DirPathSetBufferSize(OCI_DirPath *dp, unsigned int size)
Set the size of the internal stream transfer buffer.
OCI_EXPORT boolean OCI_API OCI_Commit(OCI_Connection *con)
Commit current pending changes.
OCI_EXPORT OCI_Ref *OCI_API OCI_GetRef(OCI_Resultset *rs, unsigned int index)
Return the current Ref value of the column at the given index in the resultset.
void Convert(const Timestamp &other)
Convert the current timestamp to the type of the given timestamp.
OCI_EXPORT boolean OCI_API OCI_StatementFree(OCI_Statement *stmt)
Free a statement and all resources associated to it (resultsets ...)
Iterator end()
Returns an iterator referring to the past-the-end element in the collection.
OCI_EXPORT const otext *OCI_API OCI_GetString(OCI_Resultset *rs, unsigned int index)
Return the current string value of the column at the given index in the resultset.
unsigned int Write(const TLongObjectType &content)
Write the given string into the long Object.
void Close()
Close the physical connection to the DB server.
OCI_EXPORT boolean OCI_API OCI_ElemSetBigInt(OCI_Elem *elem, big_int value)
Set a big int value to a collection element.
unsigned int GetLength() const
Return the buffer length.
OCI_EXPORT unsigned int OCI_API OCI_ErrorGetType(OCI_Error *err)
Retrieve the type of error from error handle.
OCI_EXPORT int OCI_API OCI_DateCheck(OCI_Date *date)
Check if the given date is valid.
Timestamp & operator+=(int value)
Increment the Timestamp by the given number of days.
void SetYear(int value)
Set the interval year value.
OCI_EXPORT boolean OCI_API OCI_BindBigInt(OCI_Statement *stmt, const otext *name, big_int *data)
Bind a big integer variable.
OCI_EXPORT unsigned int OCI_API OCI_DirPathLoad(OCI_DirPath *dp)
Loads the data converted to direct path stream format.
OCI_EXPORT OCI_Date *OCI_API OCI_GetDate(OCI_Resultset *rs, unsigned int index)
Return the current date value of the column at the given index in the resultset.
OCI_EXPORT boolean OCI_API OCI_Break(OCI_Connection *con)
Perform an immediate abort of any currently Oracle OCI call.
void GetDateTime(int &year, int &month, int &day, int &hour, int &min, int &sec, int &fsec) const
Extract date and time parts.
unsigned int GetMinSize() const
Return the minimum number of connections/sessions that can be opened to the database.
OCI_EXPORT boolean OCI_API OCI_SetTAFHandler(OCI_Connection *con, POCI_TAF_HANDLER handler)
Set the Transparent Application Failover (TAF) user handler.
OCI_EXPORT boolean OCI_API OCI_DirPathFree(OCI_DirPath *dp)
Free an OCI_DirPath handle.
static void Join(ThreadHandle handle)
Join the given thread.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfIntervals(OCI_Statement *stmt, const otext *name, OCI_Interval **data, unsigned int type, unsigned int nbelem)
Bind an array of interval handles.
OCI_EXPORT unsigned int OCI_API OCI_FileRead(OCI_File *file, void *buffer, unsigned int len)
Read a portion of a file into the given buffer.
struct OCI_Interval OCI_Interval
Oracle internal interval representation.
Object identifying the SQL data type LONG.
OCI_EXPORT boolean OCI_API OCI_DateFree(OCI_Date *date)
Free a date object.
OCI_EXPORT const otext *OCI_API OCI_MsgGetExceptionQueue(OCI_Msg *msg)
Get the Exception queue name of the message.
static unsigned int GetCompileMinorVersion()
Return the minor version number of OCI used for compiling OCILIB.
struct OCI_Dequeue OCI_Dequeue
OCILIB encapsulation of A/Q dequeuing operations.
Oracle Transaction object.
OCI_EXPORT OCI_Object *OCI_API OCI_GetObject2(OCI_Resultset *rs, const otext *name)
Return the current Object value of the column from its name in the resultset.
OCI_EXPORT boolean OCI_API OCI_GetAutoCommit(OCI_Connection *con)
Get current auto commit mode status.
OCI_EXPORT unsigned short OCI_API OCI_ElemGetUnsignedShort(OCI_Elem *elem)
Return the unsigned short value of the given collection element.
struct OCI_Statement OCI_Statement
Oracle SQL or PL/SQL statement.
int GetMinutes() const
Return the date minutes value.
OCI_EXPORT OCI_Ref *OCI_API OCI_GetRef2(OCI_Resultset *rs, const otext *name)
Return the current Ref value of the column from its name in the resultset.
OCI_EXPORT big_uint OCI_API OCI_FileGetSize(OCI_File *file)
Return the size in bytes of a file.
int GetYear() const
Return the interval year value.
OCI_EXPORT OCI_File *OCI_API OCI_GetFile2(OCI_Resultset *rs, const otext *name)
Return the current File value of the column from its name in the resultset.
void SetMinutes(int value)
Set the interval minutes value.
static unsigned int GetCompileMajorVersion()
Return the major version number of OCI used for compiling OCILIB.
Raw MakeRaw(void *result, unsigned int size)
Internal usage. Constructs a C++ Raw object from the given OCILIB raw buffer.
OCI_EXPORT boolean OCI_API OCI_BindInterval(OCI_Statement *stmt, const otext *name, OCI_Interval *data)
Bind an interval variable.
OCI_EXPORT boolean OCI_API OCI_FileSetName(OCI_File *file, const otext *dir, const otext *name)
Set the directory and file name of FILE handle.
OCI_EXPORT int OCI_API OCI_ErrorGetOCICode(OCI_Error *err)
Retrieve Oracle Error code from error handle.
OCI_EXPORT const otext *OCI_API OCI_MsgGetCorrelation(OCI_Msg *msg)
Get the correlation identifier of the message.
ostring GetSessionTag() const
Return the tag associated with the given connection.
OCI_EXPORT int OCI_API OCI_DateAssign(OCI_Date *date, OCI_Date *date_src)
Assign the value of a date handle to another one.
struct OCI_Bind OCI_Bind
Internal bind representation.
OCI_EXPORT boolean OCI_API OCI_BindInt(OCI_Statement *stmt, const otext *name, int *data)
Bind an integer variable.
OCI_EXPORT boolean OCI_API OCI_ThreadKeyCreate(const otext *name, POCI_THREADKEYDEST destfunc)
Create a thread key object.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfTimestamps(OCI_Statement *stmt, const otext *name, OCI_Timestamp **data, unsigned int type, unsigned int nbelem)
Bind an array of timestamp handles.
OCI_EXPORT boolean OCI_API OCI_ObjectSetObject(OCI_Object *obj, const otext *attr, OCI_Object *value)
Set an object attribute of type Object.
Enum< ObjectTypeValues > ObjectType
Object Type.
OCI_EXPORT boolean OCI_API OCI_TimestampGetDateTime(OCI_Timestamp *tmsp, int *year, int *month, int *day, int *hour, int *min, int *sec, int *fsec)
Extract the date and time parts from a date handle.
struct OCI_Subscription OCI_Subscription
OCILIB encapsulation of Oracle DCN notification.
static Environment::EnvironmentFlags GetMode()
Return the Environment mode flags.
TimestampTypeValues
Interval types enumerated values.
void Clear()
Clear all items of the collection.
OCI_EXPORT boolean OCI_API OCI_BindFile(OCI_Statement *stmt, const otext *name, OCI_File *data)
Bind a File variable.
Object GetObject() const
Returns the object pointed by the reference.
AQ identified agent for messages delivery.
Lob & operator+=(const Lob &other)
Appending the given lob content to the current lob content.
TDataType Get(const ostring &name) const
Return the given object attribute value.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfShorts(OCI_Statement *stmt, const otext *name, short *data, unsigned int nbelem)
Bind an array of shorts.
Enum< OracleVersionValues > OracleVersion
Oracle Version.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfDoubles(OCI_Statement *stmt, const otext *name, double *data, unsigned int nbelem)
Bind an array of doubles.
void SetSeconds(int value)
Set the date seconds value.
OCI_EXPORT OCI_Statement *OCI_API OCI_ResultsetGetStatement(OCI_Resultset *rs)
Return the statement handle associated with a resultset handle.
OCI_EXPORT short OCI_API OCI_ObjectGetShort(OCI_Object *obj, const otext *attr)
Return the short value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_ObjectSetColl(OCI_Object *obj, const otext *attr, OCI_Coll *value)
Set an object attribute of type Collection.
OCI_EXPORT int OCI_API OCI_TimestampCompare(OCI_Timestamp *tmsp, OCI_Timestamp *tmsp2)
Compares two timestamp handles.
Collection Clone() const
Clone the current instance to a new one performing deep copy.
OCI_EXPORT double OCI_API OCI_GetDouble2(OCI_Resultset *rs, const otext *name)
Return the current double value of the column from its name in the resultset.
void GetDate(int &year, int &month, int &day) const
Extract the date parts.
OCI_EXPORT boolean OCI_API OCI_BindObject(OCI_Statement *stmt, const otext *name, OCI_Object *data)
Bind an object (named type) variable.
OCI_EXPORT const otext *OCI_API OCI_SubscriptionGetName(OCI_Subscription *sub)
Return the name of the given registered subscription.
static Environment::ImportMode GetImportMode()
Return the Oracle shared library import mode.
OCI_EXPORT unsigned int OCI_API OCI_PoolGetOpenedCount(OCI_Pool *pool)
Return the current number of opened connections/sessions.
OCI_EXPORT unsigned int OCI_API OCI_ColumnGetSubType(OCI_Column *col)
Return the OCILIB object subtype of a column.
OCI_EXPORT unsigned int OCI_API OCI_BindGetDataSize(OCI_Bind *bnd)
Return the actual size of the element held by the given bind handle.
OCI_EXPORT boolean OCI_API OCI_FileIsOpen(OCI_File *file)
Check if the specified file is opened within the file handle.
OCI_EXPORT int OCI_API OCI_GetInt2(OCI_Resultset *rs, const otext *name)
Return the current integer value of the column from its name in the resultset.
OCI_EXPORT boolean OCI_API OCI_PoolSetNoWait(OCI_Pool *pool, boolean value)
Set the waiting mode used when no more connections/sessions are available from the pool...
Class used for handling transient collection value. it is used internally by:
OCI_EXPORT boolean OCI_API OCI_DateGetDateTime(OCI_Date *date, int *year, int *month, int *day, int *hour, int *min, int *sec)
Extract the date and time parts from a date handle.
OCI_EXPORT OCI_Long *OCI_API OCI_GetLong(OCI_Resultset *rs, unsigned int index)
Return the current Long value of the column at the given index in the resultset.
OCI_EXPORT const otext *OCI_API OCI_EventGetObject(OCI_Event *event)
Return the name of the object that generated the event.
unsigned int Append(const TLobObjectType &content)
Append the given content to the lob.
OCI_EXPORT big_uint OCI_API OCI_ObjectGetUnsignedBigInt(OCI_Object *obj, const otext *attr)
Return the unsigned big integer value of the given object attribute.
ostring ToString() const
Convert the interval value to a string using the default precisions of 10.
OCI_EXPORT big_uint OCI_API OCI_GetUnsignedBigInt2(OCI_Resultset *rs, const otext *name)
Return the current unsigned big integer value of the column from its name in the resultset.
Object Clone() const
Clone the current instance to a new one performing deep copy.
OCI_EXPORT OCI_Timestamp *OCI_API OCI_GetInstanceStartTime(OCI_Connection *con)
Return the date and time (Timestamp) server instance start of the connected database/service name...
OCI_EXPORT OCI_Date *OCI_API OCI_GetDate2(OCI_Resultset *rs, const otext *name)
Return the current date value of the column from its name in the resultset.
OCI_EXPORT unsigned int OCI_API OCI_PoolGetIncrement(OCI_Pool *pool)
Return the increment for connections/sessions to be opened to the database when the pool is not full...
OCI_EXPORT boolean OCI_API OCI_DequeueSetConsumer(OCI_Dequeue *dequeue, const otext *consumer)
Set the current consumer name to retrieve message for.
OCI_EXPORT const otext *OCI_API OCI_GetSessionTag(OCI_Connection *con)
Return the tag associated the given connection.
OCI_EXPORT unsigned int OCI_API OCI_ElemGetRawSize(OCI_Elem *elem)
Return the raw attribute value size of the given element handle.
bool IsServerAlive() const
Indicate if the connection is still connected to the server.
OCI_EXPORT boolean OCI_API OCI_QueueTableAlter(OCI_Connection *con, const otext *queue_table, const otext *comment, unsigned int primary_instance, unsigned int secondary_instance)
Alter the given queue table.
OCI_EXPORT boolean OCI_API OCI_MsgReset(OCI_Msg *msg)
Reset all attributes of a message object.
void SetStatementCacheSize(unsigned int value)
Set the maximum number of statements to keep in the pool's statement cache.
struct OCI_Timestamp OCI_Timestamp
Oracle internal timestamp representation.
OCI_EXPORT boolean OCI_API OCI_AgentSetName(OCI_Agent *agent, const otext *name)
Set the given AQ agent name.
bool PingServer() const
Performs a round trip call to the server to confirm that the connection to the server is still valid...
OCI_EXPORT boolean OCI_API OCI_QueueTablePurge(OCI_Connection *con, const otext *queue_table, const otext *purge_condition, boolean block, unsigned int delivery_mode)
Purge messages from the given queue table.
bool IsTAFCapable() const
Verify if the connection support TAF events.
OCI_EXPORT unsigned int OCI_API OCI_PoolGetMax(OCI_Pool *pool)
Return the maximum number of connections/sessions that can be opened to the database.
OCI_EXPORT boolean OCI_API OCI_LobIsEqual(OCI_Lob *lob, OCI_Lob *lob2)
Compare two lob handles for equality.
ostring GetFormat(FormatType formatType)
Return the format string for implicit string conversions of the given type.
void Truncate(unsigned int size)
Trim the given number of elements from the end of the collection.
OCI_EXPORT boolean OCI_API OCI_LobAssign(OCI_Lob *lob, OCI_Lob *lob_src)
Assign a lob to another one.
OCI_EXPORT big_uint OCI_API OCI_LobErase(OCI_Lob *lob, big_uint offset, big_uint len)
Erase a portion of the lob at a given position.
OCI_EXPORT const otext *OCI_API OCI_GetString2(OCI_Resultset *rs, const otext *name)
Return the current string value of the column from its name in the resultset.
OCI_EXPORT OCI_TypeInfo *OCI_API OCI_CollGetTypeInfo(OCI_Coll *coll)
Return the type info object associated to the collection.
ostring GetService() const
Return the Oracle server Service name of the connected database/service name.
OCI_EXPORT unsigned int OCI_API OCI_LobGetChunkSize(OCI_Lob *lob)
Returns the chunk size of a LOB.
File Clone() const
Clone the current instance to a new one performing deep copy.
OCI_EXPORT boolean OCI_API OCI_RefToText(OCI_Ref *ref, unsigned int size, otext *str)
Converts a Ref handle value to a hexadecimal string.
OCI_EXPORT boolean OCI_API OCI_ThreadJoin(OCI_Thread *thread)
Join the given thread.
OCI_EXPORT unsigned int OCI_API OCI_GetCharset(void)
Return the OCILIB charset type.
Timestamp & operator++()
Increment the timestamp by 1 day.
OCI_EXPORT float OCI_API OCI_ElemGetFloat(OCI_Elem *elem)
Return the float value of the given collection element.
OCI_EXPORT unsigned int OCI_API OCI_GetServerRevisionVersion(OCI_Connection *con)
Return the revision version number of the connected database server.
OCI_EXPORT boolean OCI_API OCI_ObjectAssign(OCI_Object *obj, OCI_Object *obj_src)
Assign an object to another one.
void SetDateTime(int year, int month, int day, int hour, int min, int sec)
Set the date and time part.
OCI_EXPORT boolean OCI_API OCI_BindRaw(OCI_Statement *stmt, const otext *name, void *data, unsigned int len)
Bind a raw buffer.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfLobs(OCI_Statement *stmt, const otext *name, OCI_Lob **data, unsigned int type, unsigned int nbelem)
Bind an array of Lob handles.
Date Clone() const
Clone the current instance to a new one performing deep copy.
void SetHours(int value)
Set the date hours value.
bool operator!=(const Interval &other) const
Indicates if the current Interval value is not equal the given Interval value.
void FromString(const ostring &data)
Assign to the interval object the value provided by the input interval string.
Column GetColumn(unsigned int index) const
Return the column from its index in the resultset.
OCI_EXPORT boolean OCI_API OCI_DirPathSetCacheSize(OCI_DirPath *dp, unsigned int size)
Set number of elements in the date cache.
OCI_EXPORT OCI_Date *OCI_API OCI_ElemGetDate(OCI_Elem *elem)
Return the Date value of the given collection element.
static void ChangeUserPassword(const ostring &db, const ostring &user, const ostring &pwd, const ostring &newPwd)
Change the password of the given user on the given database.
OCI_EXPORT unsigned int OCI_API OCI_GetRowCount(OCI_Resultset *rs)
Retrieve the number of rows fetched so far.
OCI_EXPORT unsigned int OCI_API OCI_LobWrite(OCI_Lob *lob, void *buffer, unsigned int len)
[OBSOLETE] Write a buffer into a LOB
ostring GetMessage() const
Retrieve the error message.
OCI_EXPORT unsigned int OCI_API OCI_BindArrayGetSize(OCI_Statement *stmt)
Return the current input array size for bulk operations.
OCI_EXPORT unsigned int OCI_API OCI_EventGetType(OCI_Event *event)
Return the type of event reported by a notification.
boolean OCI_API OCI_BindSetCharsetForm(OCI_Bind *bnd, unsigned int csfrm)
Set the charset form of the given character based bind variable.
OCI_EXPORT boolean OCI_API OCI_DatabaseShutdown(const otext *db, const otext *user, const otext *pwd, unsigned int sess_mode, unsigned int shut_mode, unsigned int shut_flag)
Shutdown a database instance.
OCI_EXPORT boolean OCI_API OCI_DateGetTime(OCI_Date *date, int *hour, int *min, int *sec)
Extract the time part from a date handle.
OCI_EXPORT const otext *OCI_API OCI_GetPassword(OCI_Connection *con)
Return the current logged user password.
OCI_EXPORT boolean OCI_API OCI_TimestampGetTime(OCI_Timestamp *tmsp, int *hour, int *min, int *sec, int *fsec)
Extract the time portion from a timestamp handle.
Timestamp Clone() const
Clone the current instance to a new one performing deep copy.
bool IsValid() const
Check if the given date is valid.
void Close()
Destroy the current Oracle pool of connections or sessions.
OCI_EXPORT unsigned int OCI_API OCI_GetUnsignedInt2(OCI_Resultset *rs, const otext *name)
Return the current unsigned integer value of the column from its name in the resultset.
static void Create(const ostring &name, ThreadKeyFreeProc freeProc=0)
Create a thread key object.
int GetHours() const
Return the date hours value.
OCI_EXPORT OCI_Timestamp *OCI_API OCI_ObjectGetTimestamp(OCI_Object *obj, const otext *attr)
Return the timestamp value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_BindSetDirection(OCI_Bind *bnd, unsigned int direction)
Set the direction mode of a bind handle.
OCI_EXPORT boolean OCI_API OCI_EnqueueGetRelativeMsgID(OCI_Enqueue *enqueue, void *id, unsigned int *len)
Get the current associated message identifier used for enqueuing messages using a sequence deviation...
struct OCI_Msg OCI_Msg
OCILIB encapsulation of A/Q message.
OCI_EXPORT boolean OCI_API OCI_IsRebindingAllowed(OCI_Statement *stmt)
Indicate if rebinding is allowed on the given statement.
OCI_EXPORT boolean OCI_API OCI_TimestampGetTimeZoneName(OCI_Timestamp *tmsp, int size, otext *str)
Return the time zone name of a timestamp handle.
OCI_EXPORT unsigned int OCI_API OCI_TransactionGetMode(OCI_Transaction *trans)
Return global transaction mode.
OCI_EXPORT OCI_Statement *OCI_API OCI_BindGetStatement(OCI_Bind *bnd)
Return the statement handle associated with a bind handle.
OCI_EXPORT boolean OCI_API OCI_IntervalGetDaySecond(OCI_Interval *itv, int *day, int *hour, int *min, int *sec, int *fsec)
Return the day / time portion of an interval handle.
ostring ToString() const
return a string representation of the current reference
bool operator>=(const Timestamp &other) const
Indicates if the current Timestamp value is superior or equal to the given Timestamp value...
OCI_EXPORT boolean OCI_API OCI_ElemSetRef(OCI_Elem *elem, OCI_Ref *value)
Assign a Ref handle to a collection element.
const void * ThreadId
Thread Unique ID.
OCI_EXPORT OCI_Object *OCI_API OCI_ObjectGetObject(OCI_Object *obj, const otext *attr)
Return the object value of the given object attribute.
OCI_EXPORT unsigned int OCI_API OCI_EventGetOperation(OCI_Event *event)
Return the type of operation reported by a notification.
bool GetAutoCommit() const
Indicates if auto commit is currently activated.
Object identifying the SQL data type REF.
ostring ToString() const
Convert the timestamp value to a string using default date format and no precision.
void SetUserData(AnyPointer value)
Associate a pointer to user data to the given connection.
CollectionType GetType() const
Return the type of the collection.
ostring GetName() const
Return the file name.
OCI_EXPORT boolean OCI_API OCI_ThreadKeySetValue(const otext *name, void *value)
Set a thread key value.
OCI_EXPORT short OCI_API OCI_GetShort2(OCI_Resultset *rs, const otext *name)
Return the current short value of the column from its name in the resultset.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfUnsignedBigInts(OCI_Statement *stmt, const otext *name, big_uint *data, unsigned int nbelem)
Bind an array of unsigned big integers.
OCI_EXPORT boolean OCI_API OCI_TimestampIntervalSub(OCI_Timestamp *tmsp, OCI_Interval *itv)
Subtract an interval value from a timestamp value of a timestamp handle.
void SetDay(int value)
Set the date day value.
Enum< IntervalTypeValues > IntervalType
Interval types.
OCI_EXPORT boolean OCI_API OCI_MutexFree(OCI_Mutex *mutex)
Destroy a mutex object.
int DaysBetween(const Date &other) const
Return the number of days with the given date.
void FromString(const ostring &data, const ostring &format=OCI_STRING_FORMAT_DATE)
Assign to the timestamp object the value provided by the input date time string.
static Date SysDate()
Return the current system date time.
OCI_EXPORT boolean OCI_API OCI_TimestampFree(OCI_Timestamp *tmsp)
Free an OCI_Timestamp handle.
OCI_EXPORT unsigned int OCI_API OCI_BindGetSubtype(OCI_Bind *bnd)
Return the OCILIB object subtype of the given bind.
OCI_EXPORT boolean OCI_API OCI_SetUserData(OCI_Connection *con, void *data)
Associate a pointer to user data to the given connection.
OCI_EXPORT OCI_Date *OCI_API OCI_DateCreate(OCI_Connection *con)
Create a local date object.
OCI_EXPORT OCI_Ref *OCI_API OCI_RefCreate(OCI_Connection *con, OCI_TypeInfo *typinf)
Create a local Ref instance.
OCI_EXPORT OCI_Interval *OCI_API OCI_IntervalCreate(OCI_Connection *con, unsigned int type)
Create a local interval object.
OCI_EXPORT OCI_Connection *OCI_API OCI_LobGetConnection(OCI_Lob *lob)
Retrieve connection handle from the lob handle.
big_uint GetLength() const
Returns the number of bytes contained in the file.
OCI_EXPORT boolean OCI_API OCI_EnqueueSetSequenceDeviation(OCI_Enqueue *enqueue, unsigned int sequence)
Set the enqueuing sequence of messages to put in the queue.
OCI_EXPORT const otext *OCI_API OCI_GetDBName(OCI_Connection *con)
Return the Oracle server database name of the connected database/service name.
void SetDateTime(int year, int month, int day, int hour, int min, int sec, int fsec, const ostring &timeZone=OTEXT(""))
Set the timestamp value from given date time parts.
void Flush()
Flush the lob content to the server (if applicable)
OCI_EXPORT boolean OCI_API OCI_ElemIsNull(OCI_Elem *elem)
Check if the collection element value is null.
void Stop()
Stop current global transaction.
OCI_EXPORT boolean OCI_API OCI_RegisterBigInt(OCI_Statement *stmt, const otext *name)
Register a big integer output bind placeholder.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfFloats(OCI_Statement *stmt, const otext *name, float *data, unsigned int nbelem)
Bind an array of floats.
OCI_EXPORT big_uint OCI_API OCI_FileGetOffset(OCI_File *file)
Return the current position in the file.
OCI_EXPORT boolean OCI_API OCI_SetLongMaxSize(OCI_Statement *stmt, unsigned int size)
Set the LONG data type piece buffer size.
void GetTime(int &hour, int &min, int &sec, int &fsec) const
Extract time parts.
OCI_EXPORT OCI_TypeInfo *OCI_API OCI_RefGetTypeInfo(OCI_Ref *ref)
Return the type info object associated to the Ref.
OCI_EXPORT boolean OCI_API OCI_ElemSetLob(OCI_Elem *elem, OCI_Lob *value)
Assign a Lob handle to a collection element.
OCI_EXPORT OCI_File *OCI_API OCI_FileCreate(OCI_Connection *con, unsigned int type)
Create a file object instance.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfUnsignedInts(OCI_Statement *stmt, const otext *name, unsigned int *data, unsigned int nbelem)
Bind an array of unsigned integers.
void SetMinutes(int value)
Set the timestamp minutes value.
OCI_EXPORT OCI_Transaction *OCI_API OCI_TransactionCreate(OCI_Connection *con, unsigned int timeout, unsigned int mode, OCI_XID *pxid)
Create a new global transaction or a serializable/read-only local transaction.
void SetDate(int year, int month, int day)
Set the date part.
void Close()
Close explicitly a Lob.
bool operator>(const Interval &other) const
Indicates if the current Interval value is superior to the given Interval value.
Reference()
Create an empty null Reference instance.
OCI_EXPORT OCI_Coll *OCI_API OCI_GetColl(OCI_Resultset *rs, unsigned int index)
Return the current Collection value of the column at the given index in the resultset.
OCI_EXPORT unsigned int OCI_API OCI_ObjectGetUnsignedInt(OCI_Object *obj, const otext *attr)
Return the unsigned integer value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_ElemSetUnsignedShort(OCI_Elem *elem, unsigned short value)
Set a unsigned short value to a collection element.
big_uint GetOffset() const
Returns the current R/W offset within the lob.
ostring ToString() const
Convert the date value to a string using default format OCI_STRING_FORMAT_DATE.
TypeInfo GetTypeInfo() const
Return the TypeInfo object describing the object.
OCI_EXPORT boolean OCI_API OCI_SetPassword(OCI_Connection *con, const otext *password)
Change the password of the logged user.
struct OCI_Ref OCI_Ref
Oracle REF type representation.
OCI_EXPORT int OCI_API OCI_TimestampCheck(OCI_Timestamp *tmsp)
Check if the given timestamp is valid.
void(* NotifyHandlerProc)(Event &evt)
User callback for subscriptions event notifications.
void SetTransaction(const Transaction &transaction)
Set a transaction to a connection.
OCI_EXPORT big_uint OCI_API OCI_GetUnsignedBigInt(OCI_Resultset *rs, unsigned int index)
Return the current unsigned big integer value of the column at the given index in the resultset...
Connection GetConnection() const
Return the connection within the error occurred.
OCI_EXPORT boolean OCI_API OCI_TransactionForget(OCI_Transaction *trans)
Cancel the prepared global transaction validation.
OCI_EXPORT unsigned int OCI_API OCI_GetRaw2(OCI_Resultset *rs, const otext *name, void *buffer, unsigned int len)
Copy the current raw value of the column from its name into the specified buffer. ...
OCI_EXPORT boolean OCI_API OCI_IntervalToText(OCI_Interval *itv, int leading_prec, int fraction_prec, int size, otext *str)
Convert an interval value from the given interval handle to a string.
OCI_EXPORT boolean OCI_API OCI_EnableWarnings(boolean value)
Enable or disable Oracle warning notifications.
OCI_EXPORT boolean OCI_API OCI_RegisterInt(OCI_Statement *stmt, const otext *name)
Register an integer output bind placeholder.
OCI_EXPORT OCI_Resultset *OCI_API OCI_GetResultset(OCI_Statement *stmt)
Retrieve the resultset handle from an executed statement.
void Open(OpenMode mode)
Open explicitly a Lob.
void * AnyPointer
Alias for the generic void pointer.
OCI_EXPORT unsigned int OCI_API OCI_GetBindIndex(OCI_Statement *stmt, const otext *name)
Return the index of the bind from its name belonging to the given statement.
OCI_EXPORT boolean OCI_API OCI_TransactionFree(OCI_Transaction *trans)
Free current transaction.
OCI_EXPORT boolean OCI_API OCI_ObjectSetUnsignedBigInt(OCI_Object *obj, const otext *attr, big_uint value)
Set an object attribute of type unsigned big int.
OCI_EXPORT void *OCI_API OCI_GetUserData(OCI_Connection *con)
Return the pointer to user data previously associated with the connection.
ostring ToString() const
return a string representation of the current collection
ostring GetPassword() const
Return the current logged user password.
static void Cleanup()
Clean up all resources allocated by the environment.
int GetSeconds() const
Return the timestamp seconds value.
void SetMilliSeconds(int value)
Set the interval milliseconds value.
ExceptionType GetType() const
Return the Exception type.
OCI_EXPORT unsigned int OCI_API OCI_DequeueGetMode(OCI_Dequeue *dequeue)
Get the dequeuing/locking behavior.
OCI_EXPORT unsigned short OCI_API OCI_GetUnsignedShort(OCI_Resultset *rs, unsigned int index)
Return the current unsigned short value of the column at the given index in the resultset.
OCI_EXPORT boolean OCI_API OCI_FetchFirst(OCI_Resultset *rs)
Fetch the first row of the resultset.
Date()
Create an empty null Date object.
ostring GetDirectory() const
Return the file directory.
OCI_EXPORT boolean OCI_API OCI_DateSetTime(OCI_Date *date, int hour, int min, int sec)
Set the time portion if the given date handle.
OCI_EXPORT OCI_Timestamp *OCI_API OCI_GetTimestamp2(OCI_Resultset *rs, const otext *name)
Return the current timestamp value of the column from its name in the resultset.
bool operator<(const Date &other) const
Indicates if the current date value is inferior to the given date value.
Interval & operator+=(const Interval &other)
Increment the current Value with the given Interval value.
static void Run(ThreadHandle handle, ThreadProc func, void *args)
Execute the given routine within the given thread.
OCI_EXPORT unsigned int OCI_API OCI_SubscriptionGetPort(OCI_Subscription *sub)
Return the port used by the notification.
OCI_EXPORT unsigned int OCI_API OCI_RefGetHexSize(OCI_Ref *ref)
Returns the size of the hex representation of the given Ref handle.
OCI_EXPORT const otext *OCI_API OCI_AgentGetAddress(OCI_Agent *agent)
Get the given AQ agent address.
OCI_EXPORT unsigned int OCI_API OCI_GetOCICompileVersion(void)
Return the version of OCI used for compilation.
OCI_EXPORT boolean OCI_API OCI_DatabaseStartup(const otext *db, const otext *user, const otext *pwd, unsigned int sess_mode, unsigned int start_mode, unsigned int start_flag, const otext *spfile)
Start a database instance.
OCI_EXPORT float OCI_API OCI_ObjectGetFloat(OCI_Object *obj, const otext *attr)
Return the float value of the given object attribute.
void Prepare()
Prepare a global transaction validation.
OCI_EXPORT int OCI_API OCI_ColumnGetLeadingPrecision(OCI_Column *col)
Return the leading precision of the column for interval columns.
OCI_EXPORT unsigned int OCI_API OCI_GetServerMinorVersion(OCI_Connection *con)
Return the minor version number of the connected database server.
OCI_EXPORT boolean OCI_API OCI_DirPathReset(OCI_DirPath *dp)
Reset internal arrays and streams to prepare another load.
IntervalType GetType() const
Return the type of the given interval object.
bool operator<(const Timestamp &other) const
Indicates if the current Timestamp value is inferior to the given Timestamp value.
OCI_EXPORT OCI_Interval *OCI_API OCI_ElemGetInterval(OCI_Elem *elem)
Return the Interval value of the given collection element.
OCI_EXPORT boolean OCI_API OCI_MsgSetObject(OCI_Msg *msg, OCI_Object *obj)
Set the object payload of the given message.
OCI_EXPORT unsigned int OCI_API OCI_CollGetMax(OCI_Coll *coll)
Returns the maximum number of elements of the given collection.
OCI_EXPORT const otext *OCI_API OCI_DequeueGetCorrelation(OCI_Dequeue *dequeue)
Get the correlation identifier of the message to be dequeued.
Object identifying the SQL data type BFILE.
Object identifying the SQL data types VARRAY and NESTED TABLE.
OCI_EXPORT unsigned int OCI_API OCI_ElemGetRaw(OCI_Elem *elem, void *value, unsigned int len)
Read the RAW value of the collection element into the given buffer.
Timestamp & operator--()
Decrement the Timestamp by 1 day.
OCI_EXPORT OCI_Statement *OCI_API OCI_GetStatement2(OCI_Resultset *rs, const otext *name)
Return the current cursor value of the column from its name in the resultset.
OCI_EXPORT boolean OCI_API OCI_FileFree(OCI_File *file)
Free a local File object.
OCI_EXPORT unsigned int OCI_API OCI_ColumnGetPropertyFlags(OCI_Column *col)
Return the column property flags.
void SetNoWait(bool value)
Set the waiting mode used when no more connections/sessions are available from the pool...
OCI_EXPORT boolean OCI_API OCI_LobOpen(OCI_Lob *lob, unsigned int mode)
Open explicitly a Lob.
void SetMonth(int value)
Set the date month value.
struct OCI_Date OCI_Date
Oracle internal date representation.
OCI_EXPORT big_int OCI_API OCI_GetBigInt(OCI_Resultset *rs, unsigned int index)
Return the current big integer value of the column at the given index in the resultset.
big_uint GetChunkSize() const
Returns the current lob chunk size.
bool operator!=(const Timestamp &other) const
Indicates if the current Timestamp value is not equal the given Timestamp value.
OCI_EXPORT unsigned int OCI_API OCI_DequeueGetNavigation(OCI_Dequeue *dequeue)
Return the navigation position of messages to retrieve from the queue.
unsigned int GetBusyConnectionsCount() const
Return the current number of busy connections/sessions.
OCI_EXPORT boolean OCI_API OCI_PoolGetNoWait(OCI_Pool *pool)
Get the waiting mode used when no more connections/sessions are available from the pool...
OCI_EXPORT unsigned int OCI_API OCI_DirPathConvert(OCI_DirPath *dp)
Convert provided user data to the direct path stream format.
OCI_EXPORT boolean OCI_API OCI_DateSetDate(OCI_Date *date, int year, int month, int day)
Set the date portion if the given date handle.
OCI_EXPORT int OCI_API OCI_DateDaysBetween(OCI_Date *date, OCI_Date *date2)
Return the number of days betWeen two dates.
void SetTimeZone(const ostring &timeZone)
Set the given time zone to the timestamp.
Connection GetConnection() const
Return the lob parent connection.
Object identifying the SQL data type INTERVAL.
OCI_EXPORT unsigned int OCI_API OCI_GetVersionConnection(OCI_Connection *con)
Return the highest Oracle version is supported by the connection.
OCI_EXPORT unsigned int OCI_API OCI_BindGetDataSizeAtPos(OCI_Bind *bnd, unsigned int position)
Return the actual size of the element at the given position in the bind input array.
OCI_EXPORT boolean OCI_API OCI_IsTAFCapable(OCI_Connection *con)
Verify if the given connection support TAF events.
bool operator!=(const Date &other) const
Indicates if the current date value is not equal the given date value.
static bool Initialized()
Return true if the environment has been successfully initialized.
OCI_EXPORT const void *OCI_API OCI_HandleGetEnvironment(void)
Return the OCI Environment Handle (OCIEnv *) of OCILIB library.
OCI_EXPORT int OCI_API OCI_MsgGetExpiration(OCI_Msg *msg)
Return the duration that the message is available for dequeuing.
static void Destroy(MutexHandle handle)
Destroy a mutex handle.
OCI_EXPORT boolean OCI_API OCI_BindDate(OCI_Statement *stmt, const otext *name, OCI_Date *data)
Bind a date variable.
static OracleVersion GetRuntimeVersion()
Return the version of OCI used at runtime.
OCI_EXPORT boolean OCI_API OCI_CollFree(OCI_Coll *coll)
Free a local collection.
OCI_EXPORT boolean OCI_API OCI_DateSysDate(OCI_Date *date)
Return the current system date/time into the date handle.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfRaws(OCI_Statement *stmt, const otext *name, void *data, unsigned int len, unsigned int nbelem)
Bind an array of raw buffers.
OCI_EXPORT OCI_Object *OCI_API OCI_RefGetObject(OCI_Ref *ref)
Returns the object pointed by the Ref handle.
void GetTimeZoneOffset(int &hour, int &min) const
Return the time zone (hour, minute) offsets.
void EnableBuffering(bool value)
Enable / disable buffering mode on the given lob object.
OCI_EXPORT OCI_Coll *OCI_API OCI_ElemGetColl(OCI_Elem *elem)
Return the collection value of the given collection element.
bool IsValid() const
Check if the given interval is valid.
void Resume()
Resume a stopped global transaction.
struct OCI_Transaction OCI_Transaction
Oracle Transaction.
void SetSeconds(int value)
Set the timestamp seconds value.
OCI_EXPORT unsigned int OCI_API OCI_CollGetCount(OCI_Coll *coll)
Returns the current number of elements of the given collection.
OCI_EXPORT OCI_Elem *OCI_API OCI_CollGetElem(OCI_Coll *coll, unsigned int index)
Return the element at the given position in the collection.
OCI_EXPORT boolean OCI_API OCI_ElemSetUnsignedInt(OCI_Elem *elem, unsigned int value)
Set a unsigned int value to a collection element.
OCI_EXPORT unsigned short OCI_API OCI_ObjectGetUnsignedShort(OCI_Object *obj, const otext *attr)
Return the unsigned short value of the given object attribute.
OCI_EXPORT const otext *OCI_API OCI_GetInstanceName(OCI_Connection *con)
Return the Oracle server Instance name of the connected database/service name.
OCI_EXPORT unsigned int OCI_API OCI_GetFetchMode(OCI_Statement *stmt)
Return the fetch mode of a SQL statement.
OCI_EXPORT boolean OCI_API OCI_SubscriptionAddStatement(OCI_Subscription *sub, OCI_Statement *stmt)
Add a statement to the notification to monitor.
OCI_EXPORT boolean OCI_API OCI_LobTruncate(OCI_Lob *lob, big_uint size)
Truncate the given lob to a shorter length.
Timestamp GetInstanceStartTime() const
Return the date and time (Timestamp) server instance start of the.
bool IsOpened() const
Check if the specified file is currently opened on the server by our object.
bool GetNoWait() const
Get the waiting mode used when no more connections/sessions are available from the pool...
OCI_EXPORT void *OCI_API OCI_ThreadKeyGetValue(const otext *name)
Get a thread key value.
ostring GetName() const
Return the type info name.
POCI_THREADKEYDEST ThreadKeyFreeProc
Thread Key callback for freeing resources.
void SetDay(int value)
Set the timestamp day value.
bool Seek(SeekMode seekMode, big_uint offset)
Move the current position within the lob for read/write operations.
OCI_EXPORT boolean OCI_API OCI_LobClose(OCI_Lob *lob)
Close explicitly a Lob.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfDates(OCI_Statement *stmt, const otext *name, OCI_Date **data, unsigned int nbelem)
Bind an array of dates.
bool IsValid() const
Check if the given timestamp is valid.
OCI_EXPORT OCI_Interval *OCI_API OCI_GetInterval2(OCI_Resultset *rs, const otext *name)
Return the current interval value of the column from its name in the resultset.
Date LastDay() const
Return the last day of month from the current date object.
void SetTimeout(unsigned int value)
Set the connections/sessions idle timeout.
OCI_EXPORT boolean OCI_API OCI_CollSetElem(OCI_Coll *coll, unsigned int index, OCI_Elem *elem)
Assign the given element value to the element at the given position in the collection.
LobType GetType() const
return the type of lob
virtual const char * what() const
Override the std::exception::what() method.
OCI_EXPORT boolean OCI_API OCI_DirPathAbort(OCI_DirPath *dp)
Terminate a direct path operation without committing changes.
OCI_EXPORT boolean OCI_API OCI_CollAppend(OCI_Coll *coll, OCI_Elem *elem)
Append the given element at the end of the collection.
OCI_EXPORT boolean OCI_API OCI_ElemSetUnsignedBigInt(OCI_Elem *elem, big_uint value)
Set a unsigned big_int value to a collection element.
OCI_EXPORT boolean OCI_API OCI_BindLob(OCI_Statement *stmt, const otext *name, OCI_Lob *data)
Bind a Lob variable.
OCI_EXPORT boolean OCI_API OCI_RegisterDouble(OCI_Statement *stmt, const otext *name)
Register a double output bind placeholder.
OCI_EXPORT unsigned int OCI_API OCI_GetColumnCount(OCI_Resultset *rs)
Return the number of columns in the resultset.
OCI_EXPORT unsigned int OCI_API OCI_DirPathGetErrorColumn(OCI_DirPath *dp)
Return the index of a column which caused an error during data conversion.
OCI_EXPORT unsigned int OCI_API OCI_ColumnGetCharsetForm(OCI_Column *col)
Return the charset form of the given column.
void(* POCI_NOTIFY)(OCI_Event *event)
Database Change Notification User callback prototype.
Enum< TimestampTypeValues > TimestampType
Type of timestamp.
OCI_EXPORT boolean OCI_API OCI_AllowRebinding(OCI_Statement *stmt, boolean value)
Allow different host variables to be binded using the same bind name or position between executions o...
OCI_EXPORT boolean OCI_API OCI_Describe(OCI_Statement *stmt, const otext *sql)
Describe the select list of a SQL select statement.
OCI_EXPORT const otext *OCI_API OCI_BindGetName(OCI_Bind *bnd)
Return the name of the given bind.
void UpdateTimeZone(const ostring &timeZone)
Update the interval value with the given time zone.
OCI_EXPORT boolean OCI_API OCI_ServerEnableOutput(OCI_Connection *con, unsigned int bufsize, unsigned int arrsize, unsigned int lnsize)
Enable the server output.
OCI_EXPORT unsigned int OCI_API OCI_LobAppend(OCI_Lob *lob, void *buffer, unsigned int len)
Append a buffer at the end of a LOB.
OCI_EXPORT boolean OCI_API OCI_LobCopy(OCI_Lob *lob, OCI_Lob *lob_src, big_uint offset_dst, big_uint offset_src, big_uint count)
Copy a portion of a source LOB into a destination LOB.
bool IsAttributeNull(const ostring &name) const
Check if an object attribute is null.
Collection()
Create an empty null Collection instance.
OCI_EXPORT boolean OCI_API OCI_MsgSetSender(OCI_Msg *msg, OCI_Agent *sender)
Set the original sender of a message.
OCI_EXPORT const otext *OCI_API OCI_GetSQLVerb(OCI_Statement *stmt)
Return the verb of the SQL command held by the statement handle.
OCI_EXPORT const otext *OCI_API OCI_ErrorGetString(OCI_Error *err)
Retrieve error message from error handle.
void SetInfos(const ostring &directory, const ostring &name)
Set the directory and file name of our file object.
struct OCI_Resultset OCI_Resultset
Collection of output columns from a select statement.
OCI_EXPORT const otext *OCI_API OCI_GetDomainName(OCI_Connection *con)
Return the Oracle server domain name of the connected database/service name.
OCI_EXPORT boolean OCI_API OCI_ObjectIsNull(OCI_Object *obj, const otext *attr)
Check if an object attribute is null.
OCI_EXPORT int OCI_API OCI_DequeueGetWaitTime(OCI_Dequeue *dequeue)
Return the time that OCIDequeueGet() waits for messages if no messages are currently available...
OCI_EXPORT boolean OCI_API OCI_Execute(OCI_Statement *stmt)
Execute a prepared SQL statement or PL/SQL block.
void SetStatementCacheSize(unsigned int value)
Set the maximum number of statements to keep in the statement cache.
bool operator==(const Date &other) const
Indicates if the current date value is equal to the given date value.
OCI_EXPORT boolean OCI_API OCI_ObjectFree(OCI_Object *obj)
Free a local object.
OCI_EXPORT boolean OCI_API OCI_ElemSetFile(OCI_Elem *elem, OCI_File *value)
Assign a File handle to a collection element.
OCI_EXPORT OCI_Error *OCI_API OCI_GetLastError(void)
Retrieve the last error or warning occurred within the last OCILIB call.
OCI_EXPORT boolean OCI_API OCI_TransactionPrepare(OCI_Transaction *trans)
Prepare a global transaction validation.
Enum< FailoverEventValues > FailoverEvent
Failover events.
OCI_EXPORT const otext *OCI_API OCI_FileGetDirectory(OCI_File *file)
Return the directory of the given file.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfInts(OCI_Statement *stmt, const otext *name, int *data, unsigned int nbelem)
Bind an array of integers.
void AddDays(int days)
Add or subtract days.
OCI_EXPORT unsigned int OCI_API OCI_DirPathGetAffectedRows(OCI_DirPath *dp)
return the number of rows successfully processed during in the last conversion or loading call ...
OCI_EXPORT OCI_Date *OCI_API OCI_MsgGetEnqueueTime(OCI_Msg *msg)
return the time the message was enqueued
static void Destroy(ThreadHandle handle)
Destroy a thread.
TLongObjectType GetContent() const
Return the string read from a fetch sequence.
void Append(const TDataType &data)
Append the given element value at the end of the collection.
TimestampType GetType() const
Return the type of the given timestamp object.
OCI_EXPORT int OCI_API OCI_GetInt(OCI_Resultset *rs, unsigned int index)
Return the current integer value of the column at the given index in the resultset.
void SetTime(int hour, int min, int sec)
Set the time part.
OCI_EXPORT unsigned int OCI_API OCI_GetCurrentRow(OCI_Resultset *rs)
Retrieve the current row number.
OCI_EXPORT OCI_Connection *OCI_API OCI_SubscriptionGetConnection(OCI_Subscription *sub)
Return the connection handle associated with a subscription handle.
Enum< CollectionTypeValues > CollectionType
Collection type.
OCI_EXPORT boolean OCI_API OCI_ObjectSetUnsignedInt(OCI_Object *obj, const otext *attr, unsigned int value)
Set an object attribute of type unsigned int.
unsigned int Write(const TLobObjectType &content)
Write the given content at the current position within the lob.
OCI_EXPORT float OCI_API OCI_GetFloat2(OCI_Resultset *rs, const otext *name)
Return the current float value of the column from its name in the resultset.
bool operator>=(const Interval &other) const
Indicates if the current Interval value is superior or equal to the given Interval value...
OCI_EXPORT big_int OCI_API OCI_GetBigInt2(OCI_Resultset *rs, const otext *name)
Return the current big integer value of the column from its name in the resultset.
bool operator!=(const File &other) const
Indicates if the current file value is not equal the given file value.
Long< ostring, LongCharacter > Clong
Class handling LONG oracle type.
OCI_EXPORT boolean OCI_API OCI_DirPathSetCurrentRows(OCI_DirPath *dp, unsigned int nb_rows)
Set the current number of rows to convert and load.
void Start()
Start global transaction.
OCI_EXPORT boolean OCI_API OCI_MsgGetRaw(OCI_Msg *msg, void *raw, unsigned int *size)
Get the RAW payload of the given message.
Raw Read(unsigned int size)
Read a portion of a file.
OCI_EXPORT boolean OCI_API OCI_MutexRelease(OCI_Mutex *mutex)
Release a mutex lock.
void SetMilliSeconds(int value)
Set the timestamp milliseconds value.
OCI_EXPORT boolean OCI_API OCI_TimestampConstruct(OCI_Timestamp *tmsp, int year, int month, int day, int hour, int min, int sec, int fsec, const otext *time_zone)
Set a timestamp handle value.
OCI_EXPORT boolean OCI_API OCI_TimestampSubtract(OCI_Timestamp *tmsp, OCI_Timestamp *tmsp2, OCI_Interval *itv)
Store the difference of two timestamp handles into an interval handle.
static AnyPointer GetValue(const ostring &name)
Get a thread key value.
OCI_EXPORT int OCI_API OCI_MsgGetPriority(OCI_Msg *msg)
Return the priority of the message.
void DisableServerOutput()
Disable the server output.
OCI_EXPORT boolean OCI_API OCI_DateZoneToZone(OCI_Date *date, const otext *zone1, const otext *zone2)
Convert a date from one zone to another zone.
OCI_EXPORT unsigned int OCI_API OCI_CollGetSize(OCI_Coll *coll)
Returns the total number of elements of the given collection.
Long()
Create an empty null Long instance.
OCI_EXPORT const void *OCI_API OCI_HandleGetThreadID(OCI_Thread *thread)
Return OCI Thread ID (OCIThreadId *) of an OCILIB OCI_Thread object.
OCI_EXPORT boolean OCI_API OCI_MsgFree(OCI_Msg *msg)
Free a message object.
OCI_EXPORT boolean OCI_API OCI_RegisterUnsignedInt(OCI_Statement *stmt, const otext *name)
Register an unsigned integer output bind placeholder.
static void Substract(const Timestamp &lsh, const Timestamp &rsh, Interval &result)
Subtract the given two timestamp and store the result into the given Interval.
OCI_EXPORT boolean OCI_API OCI_EnqueueSetVisibility(OCI_Enqueue *enqueue, unsigned int visibility)
Set whether the new message is enqueued as part of the current transaction.
OCI_EXPORT unsigned int OCI_API OCI_PoolGetBusyCount(OCI_Pool *pool)
Return the current number of busy connections/sessions.
OCI_EXPORT OCI_Connection *OCI_API OCI_ConnectionCreate(const otext *db, const otext *user, const otext *pwd, unsigned int mode)
Create a physical connection to an Oracle database server.
OCI_EXPORT double OCI_API OCI_GetDouble(OCI_Resultset *rs, unsigned int index)
Return the current double value of the column at the given index in the resultset.
OCI_EXPORT boolean OCI_API OCI_CollAssign(OCI_Coll *coll, OCI_Coll *coll_src)
Assign a collection to another one.
OCI_EXPORT unsigned int OCI_API OCI_SubscriptionGetTimeout(OCI_Subscription *sub)
Return the timeout of the given registered subscription.
OCI_EXPORT OCI_Agent *OCI_API OCI_MsgGetSender(OCI_Msg *msg)
Return the original sender of a message.
static OracleVersion GetCompileVersion()
Return the version of OCI used for compiling OCILIB.
OCI_EXPORT boolean OCI_API OCI_SetHAHandler(POCI_HA_HANDLER handler)
Set the High availability (HA) user handler.
Enum< HAEventSourceValues > HAEventSource
Source of HA events.
Interval & operator-=(const Interval &other)
Decrement the current Value with the given Interval value.
OCI_EXPORT boolean OCI_API OCI_DateToText(OCI_Date *date, const otext *fmt, int size, otext *str)
Convert a Date value from the given date handle to a string.
OCI_EXPORT short OCI_API OCI_ElemGetShort(OCI_Elem *elem)
Return the short value of the given collection element.
static void SetValue(const ostring &name, AnyPointer value)
Set a thread key value.
OCI_EXPORT const otext *OCI_API OCI_EventGetDatabase(OCI_Event *event)
Return the name of the database that generated the event.
OCI_EXPORT boolean OCI_API OCI_RegisterObject(OCI_Statement *stmt, const otext *name, OCI_TypeInfo *typinf)
Register an object output bind placeholder.
OCI_EXPORT boolean OCI_API OCI_ObjectSetBigInt(OCI_Object *obj, const otext *attr, big_int value)
Set an object attribute of type big int.
struct OCI_File OCI_File
Oracle External Large objects:
OCI_EXPORT OCI_Lob *OCI_API OCI_LobCreate(OCI_Connection *con, unsigned int type)
Create a local temporary Lob instance.
static MutexHandle Create()
Create a Mutex handle.
OCI_EXPORT const otext *OCI_API OCI_GetDatabase(OCI_Connection *con)
Return the name of the connected database/service name.
Enum< HAEventTypeValues > HAEventType
Type of HA events.
OCI_EXPORT boolean OCI_API OCI_IntervalAdd(OCI_Interval *itv, OCI_Interval *itv2)
Adds an interval handle value to another.
OCI_EXPORT boolean OCI_API OCI_BindTimestamp(OCI_Statement *stmt, const otext *name, OCI_Timestamp *data)
Bind a timestamp variable.
OCI_EXPORT boolean OCI_API OCI_SetTrace(OCI_Connection *con, unsigned int trace, const otext *value)
Set tracing information to the session of the given connection.
OCI_EXPORT boolean OCI_API OCI_ObjectSetDate(OCI_Object *obj, const otext *attr, OCI_Date *value)
Set an object attribute of type Date.
ostring GetTrace(SessionTrace trace) const
Get the current trace for the trace type from the given connection.
void SetElementNull(unsigned int index)
Nullify the element at the given index.
Element operator[](unsigned int index)
Returns the element at a given position in the collection.
OCI_EXPORT boolean OCI_API OCI_FetchNext(OCI_Resultset *rs)
Fetch the next row of the resultset.
OCI_EXPORT float OCI_API OCI_GetFloat(OCI_Resultset *rs, unsigned int index)
Return the current float value of the column at the given index in the resultset. ...
big_uint GetLength() const
Returns the number of characters or bytes contained in the lob.
OCI_EXPORT const otext *OCI_API OCI_GetFormat(OCI_Connection *con, unsigned int type)
Return the format string for implicit string conversions of the given type.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfFiles(OCI_Statement *stmt, const otext *name, OCI_File **data, unsigned int type, unsigned int nbelem)
Bind an array of File handles.
OCI_EXPORT boolean OCI_API OCI_MsgSetRaw(OCI_Msg *msg, const void *raw, unsigned int size)
Set the RAW payload of the given message.
OCI_EXPORT boolean OCI_API OCI_MsgSetConsumers(OCI_Msg *msg, OCI_Agent **consumers, unsigned int count)
Set the recipient list of a message to enqueue.
Date & operator--()
Decrement the date by 1 day.
OCI_EXPORT boolean OCI_API OCI_QueueTableMigrate(OCI_Connection *con, const otext *queue_table, const otext *compatible)
Migrate a queue table from one version to another.
OCI_EXPORT boolean OCI_API OCI_ObjectSetTimestamp(OCI_Object *obj, const otext *attr, OCI_Timestamp *value)
Set an object attribute of type Timestamp.
static unsigned int GetRuntimeRevisionVersion()
Return the revision version number of OCI used at runtime.
unsigned int GetColumnCount() const
Return the number of columns contained in the type.
OCI_EXPORT boolean OCI_API OCI_RegisterLob(OCI_Statement *stmt, const otext *name, unsigned int type)
Register a lob output bind placeholder.
OCI_EXPORT boolean OCI_API OCI_ThreadFree(OCI_Thread *thread)
Destroy a thread object.
void Set(unsigned int index, const TDataType &value)
Set the collection element value at the given position.
STL compliant bi-directional iterator class.
OCI_EXPORT boolean OCI_API OCI_TimestampIntervalAdd(OCI_Timestamp *tmsp, OCI_Interval *itv)
Add an interval value to a timestamp value of a timestamp handle.
OCI_EXPORT OCI_Date *OCI_API OCI_ObjectGetDate(OCI_Object *obj, const otext *attr)
Return the date value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfStrings(OCI_Statement *stmt, const otext *name, otext *data, unsigned int len, unsigned int nbelem)
Bind an array of strings.
unsigned int GetServerRevisionVersion() const
Return the revision version number of the connected database server.
OCI_EXPORT boolean OCI_API OCI_ObjectGetSelfRef(OCI_Object *obj, OCI_Ref *ref)
Retrieve an Oracle Ref handle from an object and assign it to the given OCILIB OCI_Ref handle...
OCI_EXPORT boolean OCI_API OCI_PoolFree(OCI_Pool *pool)
Destroy a pool object.
OCI_EXPORT OCI_Coll *OCI_API OCI_CollCreate(OCI_TypeInfo *typinf)
Create a local collection instance.
Interval operator+(const Interval &other)
Return a new Interval holding the sum of the current Interval value and the given Interval value...
OCI_EXPORT unsigned int OCI_API OCI_GetFetchSize(OCI_Statement *stmt)
Return the number of rows fetched per internal server fetch call.
void SetMonth(int value)
Set the timestamp month value.
OCI_EXPORT boolean OCI_API OCI_ColumnGetNullable(OCI_Column *col)
Return the nullable attribute of the column.
OCI_EXPORT const otext *OCI_API OCI_FileGetName(OCI_File *file)
Return the name of the given file.
OCI_EXPORT unsigned int OCI_API OCI_GetStatementType(OCI_Statement *stmt)
Return the type of a SQL statement.
OCI_EXPORT boolean OCI_API OCI_QueueCreate(OCI_Connection *con, const otext *queue_name, const otext *queue_table, unsigned int queue_type, unsigned int max_retries, unsigned int retry_delay, unsigned int retention_time, boolean dependency_tracking, const otext *comment)
Create a queue.
OCI_EXPORT unsigned int OCI_API OCI_GetRaw(OCI_Resultset *rs, unsigned int index, void *buffer, unsigned int len)
Copy the current raw value of the column at the given index into the specified buffer.
OCI_EXPORT boolean OCI_API OCI_FileSeek(OCI_File *file, big_uint offset, unsigned int mode)
Perform a seek operation on the OCI_File content buffer.
OCI_EXPORT boolean OCI_API OCI_SetAutoCommit(OCI_Connection *con, boolean enable)
Enable / disable auto commit mode.
OCI_EXPORT boolean OCI_API OCI_LobIsTemporary(OCI_Lob *lob)
Check if the given lob is a temporary lob.
OCI_EXPORT boolean OCI_API OCI_DirPathSetColumn(OCI_DirPath *dp, unsigned int index, const otext *name, unsigned int maxsize, const otext *format)
Describe a column to load into the given table.
ostring ToString() const
return a string representation of the current object
OCI_EXPORT boolean OCI_API OCI_DirPathSetNoLog(OCI_DirPath *dp, boolean value)
Set the logging mode for the loading operation.
OCI_EXPORT boolean OCI_API OCI_IsConnected(OCI_Connection *con)
Returns TRUE is the given connection is still connected otherwise FALSE.
static void SetHAHandler(HAHandlerProc handler)
Set the High availability (HA) user handler.
TDataType Get(unsigned int index) const
Return the collection element value at the given position.
OCI_EXPORT boolean OCI_API OCI_QueueTableCreate(OCI_Connection *con, const otext *queue_table, const otext *queue_payload_type, const otext *storage_clause, const otext *sort_list, boolean multiple_consumers, unsigned int message_grouping, const otext *comment, unsigned int primary_instance, unsigned int secondary_instance, const otext *compatible)
Create a queue table for messages of the given type.
OCI_EXPORT OCI_Bind *OCI_API OCI_GetBind2(OCI_Statement *stmt, const otext *name)
Return a bind handle from its name.
OCI_EXPORT boolean OCI_API OCI_Prepare(OCI_Statement *stmt, const otext *sql)
Prepare a SQL statement or PL/SQL block.
OCI_EXPORT boolean OCI_API OCI_DequeueSetAgentList(OCI_Dequeue *dequeue, OCI_Agent **consumers, unsigned int count)
Set the Agent list to listen to message for.
bool operator!=(const Lob &other) const
Indicates if the current lob value is not equal the given lob value.
OCI_EXPORT boolean OCI_API OCI_PoolSetTimeout(OCI_Pool *pool, unsigned int value)
Set the connections/sessions idle timeout.
void SetDate(int year, int month, int day)
Set the date part.
OCI_EXPORT OCI_File *OCI_API OCI_GetFile(OCI_Resultset *rs, unsigned int index)
Return the current File value of the column at the given index in the resultset.
ostring GetTimeZone() const
Return the name of the current time zone.
OCI_EXPORT boolean OCI_API OCI_DateSetDateTime(OCI_Date *date, int year, int month, int day, int hour, int min, int sec)
Set the date and time portions if the given date handle.
Connection GetConnection(const ostring &sessionTag=OTEXT(""))
Get a connection from the pool.
OCI_EXPORT boolean OCI_API OCI_ObjectSetInt(OCI_Object *obj, const otext *attr, int value)
Set an object attribute of type int.
OCI_EXPORT big_uint OCI_API OCI_LobGetLength(OCI_Lob *lob)
Return the actual length of a lob.
Connection GetConnection() const
Return the connection associated with a statement.
OCI_EXPORT unsigned int OCI_API OCI_GetServerMajorVersion(OCI_Connection *con)
Return the major version number of the connected database server.
OCI_EXPORT boolean OCI_API OCI_DirPathSetEntry(OCI_DirPath *dp, unsigned int row, unsigned int index, void *value, unsigned size, boolean complete)
Set the value of the given row/column array entry.
OCI_EXPORT OCI_Lob *OCI_API OCI_ElemGetLob(OCI_Elem *elem)
Return the Lob value of the given collection element.
OCI_EXPORT boolean OCI_API OCI_LobEnableBuffering(OCI_Lob *lob, boolean value)
Enable / disable buffering mode on the given lob handle.
ostring GetConnectionString() const
Return the name of the connected database/service name.
OCI_EXPORT unsigned int OCI_API OCI_GetStatementCacheSize(OCI_Connection *con)
Return the maximum number of statements to keep in the statement cache.
OCI_EXPORT boolean OCI_API OCI_SetTransaction(OCI_Connection *con, OCI_Transaction *trans)
Set a transaction to a connection.
OCI_EXPORT boolean OCI_API OCI_CollTrim(OCI_Coll *coll, unsigned int nb_elem)
Trims the given number of elements from the end of the collection.
void Open(const ostring &db, const ostring &user, const ostring &pwd, Environment::SessionFlags sessionFlags=Environment::SessionDefault)
Create a physical connection to an Oracle database server.
OCI_EXPORT boolean OCI_API OCI_RefFree(OCI_Ref *ref)
Free a local Ref.
OCI_EXPORT OCI_Transaction *OCI_API OCI_GetTransaction(OCI_Connection *con)
Return the current transaction of the connection.
AnyPointer GetUserData()
Return the pointer to user data previously associated with the connection.
Enum< CharsetModeValues > CharsetMode
Environment charset mode.
OCI_EXPORT boolean OCI_API OCI_DateNextDay(OCI_Date *date, const otext *day)
Gets the date of next day of the week, after a given date.
OCI_EXPORT boolean OCI_API OCI_Rollback(OCI_Connection *con)
Cancel current pending changes.
OCI_EXPORT OCI_TypeInfo *OCI_API OCI_ObjectGetTypeInfo(OCI_Object *obj)
Return the type info object associated to the object.
OCI_EXPORT unsigned int OCI_API OCI_LongGetSize(OCI_Long *lg)
Return the buffer size of a long object in bytes (OCI_BLONG) or character (OCI_CLONG) ...
OCI_EXPORT boolean OCI_API OCI_FileOpen(OCI_File *file)
Open a file for reading.
OCI_EXPORT boolean OCI_API OCI_FetchSeek(OCI_Resultset *rs, unsigned int mode, int offset)
Custom Fetch of the resultset.
Timestamp()
Create an empty null timestamp instance.
OCI_EXPORT boolean OCI_API OCI_IntervalGetYearMonth(OCI_Interval *itv, int *year, int *month)
Return the year / month portion of an interval handle.
OCI_EXPORT boolean OCI_API OCI_IntervalSetDaySecond(OCI_Interval *itv, int day, int hour, int min, int sec, int fsec)
Set the day / time portion if the given interval handle.
int GetHours() const
Return the interval hours value.
Pool()
Default constructor.
Enum< TypeInfoTypeValues > TypeInfoType
Type of object information.
OCI_EXPORT boolean OCI_API OCI_ElemSetColl(OCI_Elem *elem, OCI_Coll *value)
Assign a Collection handle to a collection element.
int GetSeconds() const
Return the interval seconds value.
OCI_EXPORT unsigned int OCI_API OCI_DequeueGetVisibility(OCI_Dequeue *dequeue)
Get the dequeuing/locking behavior.
OCI_EXPORT boolean OCI_API OCI_ElemSetDate(OCI_Elem *elem, OCI_Date *value)
Assign a Date handle to a collection element.
OCI_EXPORT boolean OCI_API OCI_ObjectSetUnsignedShort(OCI_Object *obj, const otext *attr, unsigned short value)
Set an object attribute of type unsigned short.
OCI_EXPORT unsigned int OCI_API OCI_GetDataLength(OCI_Resultset *rs, unsigned int index)
Return the current row data length of the column at the given index in the resultset.
void SetDay(int value)
Set the interval day value.
OCI_EXPORT boolean OCI_API OCI_RegisterString(OCI_Statement *stmt, const otext *name, unsigned int len)
Register a string output bind placeholder.
OCI_EXPORT boolean OCI_API OCI_RegisterShort(OCI_Statement *stmt, const otext *name)
Register a short output bind placeholder.
void Commit()
Commit current pending changes.
OCI_Thread * ThreadHandle
Alias for an OCI_Thread pointer.
OCI_EXPORT OCI_Object *OCI_API OCI_ElemGetObject(OCI_Elem *elem)
Return the object value of the given collection element.
Enum< ImportModeValues > ImportMode
OCI libraries import mode.
OCI_EXPORT unsigned int OCI_API OCI_GetSQLCommand(OCI_Statement *stmt)
Return the Oracle SQL code the command held by the statement handle.
OCI_EXPORT unsigned int OCI_API OCI_DirPathGetRowCount(OCI_DirPath *dp)
Return the number of rows successfully loaded into the database so far.
bool SetFormat(FormatType formatType, const ostring &format)
Set the format string for implicit string conversions of the given type.
void Break()
Perform an immediate abort of any currently Oracle OCI call on the given connection.
OCI_EXPORT boolean OCI_API OCI_TimestampAssign(OCI_Timestamp *tmsp, OCI_Timestamp *tmsp_src)
Assign the value of a timestamp handle to another one.
static void StartDatabase(const ostring &db, const ostring &user, const ostring &pwd, Environment::StartFlags startFlags, Environment::StartMode startMode, Environment::SessionFlags sessionFlags=SessionSysDba, const ostring &spfile=OTEXT(""))
Start a database instance.
OCI_EXPORT boolean OCI_API OCI_DirPathSetConvertMode(OCI_DirPath *dp, unsigned int mode)
Set the direct path conversion mode.
OCI_EXPORT int OCI_API OCI_ColumnGetFractionalPrecision(OCI_Column *col)
Return the fractional precision of the column for timestamp and interval columns. ...
void SetYear(int value)
Set the timestamp year value.
OCI_EXPORT unsigned int OCI_API OCI_GetPrefetchMemory(OCI_Statement *stmt)
Return the amount of memory used to retrieve rows pre-fetched by OCI Client.
OCI_EXPORT boolean OCI_API OCI_SetPrefetchSize(OCI_Statement *stmt, unsigned int size)
Set the number of rows pre-fetched by OCI Client.
OCI_EXPORT boolean OCI_API OCI_DequeueGetRelativeMsgID(OCI_Dequeue *dequeue, void *id, unsigned int *len)
Get the message identifier of the message to be dequeued.
OCI_EXPORT boolean OCI_API OCI_DirPathSetParallel(OCI_DirPath *dp, boolean value)
Set the parallel loading mode.
OCI_EXPORT boolean OCI_API OCI_DequeueSetCorrelation(OCI_Dequeue *dequeue, const otext *pattern)
set the correlation identifier of the message to be dequeued
int GetDay() const
Return the timestamp day value.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfRefs(OCI_Statement *stmt, const otext *name, OCI_Ref **data, OCI_TypeInfo *typinf, unsigned int nbelem)
Bind an array of Ref handles.
OCI_EXPORT boolean OCI_API OCI_QueueAlter(OCI_Connection *con, const otext *queue_name, unsigned int max_retries, unsigned int retry_delay, unsigned int retention_time, const otext *comment)
Alter the given queue.
std::vector< unsigned char > Raw
C++ counterpart of SQL RAW data type.
OCI_EXPORT OCI_Dequeue *OCI_API OCI_DequeueCreate(OCI_TypeInfo *typinf, const otext *name)
Create a Dequeue object for the given queue.
bool operator>(const Timestamp &other) const
Indicates if the current Timestamp value is superior to the given Timestamp value.
OCI_EXPORT OCI_Error *OCI_API OCI_GetBatchError(OCI_Statement *stmt)
Returns the first or next error that occurred within a DML array statement execution.
Transaction(const Connection &connection, unsigned int timeout, TransactionFlags flags, OCI_XID *pxid=NULL)
Create a new global transaction or a serializable/read-only local transaction.
unsigned int GetMaxSize() const
Return the maximum number of connections/sessions that can be opened to the database.
OCI_EXPORT OCI_Resultset *OCI_API OCI_GetNextResultset(OCI_Statement *stmt)
Retrieve the next available resultset.
OCI_EXPORT unsigned int OCI_API OCI_TransactionGetTimeout(OCI_Transaction *trans)
Return global transaction Timeout.
OCI_EXPORT boolean OCI_API OCI_ElemSetInt(OCI_Elem *elem, int value)
Set a int value to a collection element.
OCI_EXPORT boolean OCI_API OCI_LongFree(OCI_Long *lg)
Free a local temporary long.
struct OCI_Long OCI_Long
Oracle Long data type.
Connection GetConnection() const
Return the file parent connection.
OCI_EXPORT double OCI_API OCI_ElemGetDouble(OCI_Elem *elem)
Return the Double value of the given collection element.
OCI_EXPORT boolean OCI_API OCI_RegisterRef(OCI_Statement *stmt, const otext *name, OCI_TypeInfo *typinf)
Register a Ref output bind placeholder.
OCI_EXPORT boolean OCI_API OCI_TimestampToText(OCI_Timestamp *tmsp, const otext *fmt, int size, otext *str, int precision)
Convert a timestamp value from the given timestamp handle to a string.
OCI_EXPORT short OCI_API OCI_GetShort(OCI_Resultset *rs, unsigned int index)
Return the current short value of the column at the given index in the resultset. ...
Iterator begin()
Returns an iterator pointing to the first element in the collection.
void Set(const ostring &name, const TDataType &value)
Set the given object attribute value.
Provides type information on Oracle Database objects.
OCI_EXPORT boolean OCI_API OCI_SetPrefetchMemory(OCI_Statement *stmt, unsigned int size)
Set the amount of memory pre-fetched by OCI Client.
unsigned int GetIncrement() const
Return the increment for connections/sessions to be opened to the database when the pool is not full...
unsigned int GetServerMajorVersion() const
Return the major version number of the connected database server.
int GetMonth() const
Return the timestamp month value.
OCI_EXPORT const otext *OCI_API OCI_EventGetRowid(OCI_Event *event)
Return the rowid of the altered database object row.
struct OCI_TypeInfo OCI_TypeInfo
Type info metadata handle.
OCI_EXPORT unsigned int OCI_API OCI_DirPathGetErrorRow(OCI_DirPath *dp)
Return the index of a row which caused an error during data conversion.
void Rollback()
Cancel current pending changes.
OCI_EXPORT const otext *OCI_API OCI_ElemGetString(OCI_Elem *elem)
Return the String value of the given collection element.
OCI_EXPORT const otext *OCI_API OCI_GetServiceName(OCI_Connection *con)
Return the Oracle server service name of the connected database/service name.
OCI_EXPORT OCI_Object *OCI_API OCI_MsgGetObject(OCI_Msg *msg)
Get the object payload of the given message.
OCI_EXPORT boolean OCI_API OCI_BindShort(OCI_Statement *stmt, const otext *name, short *data)
Bind an short variable.
OCI_EXPORT boolean OCI_API OCI_ElemSetDouble(OCI_Elem *elem, double value)
Set a double value to a collection element.
OCI_EXPORT const otext *OCI_API OCI_DequeueGetConsumer(OCI_Dequeue *dequeue)
Get the current consumer name associated with the dequeuing process.
TypeInfoType GetType() const
Return the type of the given TypeInfo object.
OCI_EXPORT boolean OCI_API OCI_ElemSetObject(OCI_Elem *elem, OCI_Object *value)
Assign an Object handle to a collection element.
Lob Clone() const
Clone the current instance to a new one performing deep copy.
OCI_EXPORT unsigned int OCI_API OCI_GetUnsignedInt(OCI_Resultset *rs, unsigned int index)
Return the current unsigned integer value of the column at the given index in the resultset...
OCI_EXPORT boolean OCI_API OCI_RefIsNull(OCI_Ref *ref)
Check if the Ref points to an object or not.
OCI_EXPORT unsigned int OCI_API OCI_GetOCIRuntimeVersion(void)
Return the version of OCI used at runtime.
OCI_EXPORT boolean OCI_API OCI_BindFloat(OCI_Statement *stmt, const otext *name, float *data)
Bind a float variable.
OCI_EXPORT boolean OCI_API OCI_IsNull2(OCI_Resultset *rs, const otext *name)
Check if the current row value is null for the column of the given name in the resultset.
OCI_EXPORT boolean OCI_API OCI_TimestampGetDate(OCI_Timestamp *tmsp, int *year, int *month, int *day)
Extract the date part from a timestamp handle.
POCI_THREAD ThreadProc
Thread callback.
Date & operator-=(int value)
Decrement the date by the given number of days.
OCI_EXPORT boolean OCI_API OCI_DequeueSetMode(OCI_Dequeue *dequeue, unsigned int mode)
Set the dequeuing/locking behavior.
ostring GetServerVersion() const
Return the connected database server string version.
unsigned int GetOpenedConnectionsCount() const
Return the current number of opened connections/sessions.
void GetDaySecond(int &day, int &hour, int &min, int &sec, int &fsec) const
Extract the date / second parts from the interval value.
bool IsTemporary() const
Check if the given lob is a temporary lob.
OCI_EXPORT big_uint OCI_API OCI_LobGetMaxSize(OCI_Lob *lob)
Return the maximum size that the lob can contain.
OCI_EXPORT int OCI_API OCI_ElemGetInt(OCI_Elem *elem)
Return the int value of the given collection element.
OCI_EXPORT boolean OCI_API OCI_FileClose(OCI_File *file)
Close a file.
OCI_EXPORT boolean OCI_API OCI_DirPathPrepare(OCI_DirPath *dp)
Prepares the OCI direct path load interface before any rows can be converted or loaded.
big_uint GetOffset() const
Returns the current R/W offset within the file.
OCI_EXPORT void *OCI_API OCI_LongGetBuffer(OCI_Long *lg)
Return the internal buffer of an OCI_Long object read from a fetch sequence.
bool Exists() const
Check if the given file exists on server.
unsigned int GetStatementCacheSize() const
Return the maximum number of statements to keep in the pool's statement cache.
OCI_EXPORT boolean OCI_API OCI_SetFetchSize(OCI_Statement *stmt, unsigned int size)
Set the number of rows fetched per internal server fetch call.
bool operator==(const File &other) const
Indicates if the current file value is equal the given file value.
OCI_EXPORT unsigned int OCI_API OCI_DirPathGetMaxRows(OCI_DirPath *dp)
Return the maximum number of rows allocated in the OCI and OCILIB internal arrays of rows...
OCI_EXPORT unsigned int OCI_API OCI_EnqueueGetSequenceDeviation(OCI_Enqueue *enqueue)
Return the sequence deviation of messages to enqueue to the queue.
void EnableServerOutput(unsigned int bufsize, unsigned int arrsize, unsigned int lnsize)
Enable the server output.
OCI_EXPORT OCI_Msg *OCI_API OCI_DequeueGet(OCI_Dequeue *dequeue)
Dequeue messages from the given queue.
OCI_EXPORT OCI_Agent *OCI_API OCI_AgentCreate(OCI_Connection *con, const otext *name, const otext *address)
Create an AQ agent object.
unsigned int GetSize() const
Returns the total number of elements in the collection.
bool operator<=(const Interval &other) const
Indicates if the current Interval value is inferior or equal to the given Interval value...
OCI_EXPORT unsigned int OCI_API OCI_GetBindMode(OCI_Statement *stmt)
Return the binding mode of a SQL statement.
OCI_EXPORT big_int OCI_API OCI_ObjectGetBigInt(OCI_Object *obj, const otext *attr)
Return the big integer value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_TimestampSysTimestamp(OCI_Timestamp *tmsp)
Stores the system current date and time as a timestamp value with time zone into the timestamp handle...
bool Seek(SeekMode seekMode, big_uint offset)
Move the current position within the file for read/write operations.
Date NextDay(const ostring &day) const
Return the date of next day of the week, after the current date object.
OCI_EXPORT unsigned int OCI_API OCI_CollGetType(OCI_Coll *coll)
Return the collection type.
Date & operator+=(int value)
Increment the date by the given number of days.
OCI_EXPORT boolean OCI_API OCI_CollToText(OCI_Coll *coll, unsigned int *size, otext *str)
Convert a collection handle value to a string.
big_uint GetMaxSize() const
Returns the lob maximum possible size.
OCI_EXPORT boolean OCI_API OCI_SetSessionTag(OCI_Connection *con, const otext *tag)
Associate a tag to the given connection/session.
OCI_EXPORT boolean OCI_API OCI_BindIsNullAtPos(OCI_Bind *bnd, unsigned int position)
Check if the current entry value at the given index of the binded array is marked as NULL...
Enum< FailoverRequestValues > FailoverRequest
Failover requests.
OCI_EXPORT boolean OCI_API OCI_MsgSetExpiration(OCI_Msg *msg, int value)
set the duration that the message is available for dequeuing
OCI_EXPORT unsigned int OCI_API OCI_TimestampGetType(OCI_Timestamp *tmsp)
Return the type of the given Timestamp object.
OCI_EXPORT boolean OCI_API OCI_IntervalFromText(OCI_Interval *itv, const otext *str)
Convert a string to an interval and store it in the given interval handle.
void GetYearMonth(int &year, int &month) const
Extract the year / month parts from the interval value.
void SetTime(int hour, int min, int sec, int fsec)
Set the time part.
Lob< ostring, LobNationalCharacter > NClob
Class handling NCLOB oracle type.
OCI_EXPORT OCI_Timestamp *OCI_API OCI_TimestampCreate(OCI_Connection *con, unsigned int type)
Create a local Timestamp instance.
OCI_EXPORT boolean OCI_API OCI_ObjectSetInterval(OCI_Object *obj, const otext *attr, OCI_Interval *value)
Set an object attribute of type Interval.
bool operator<=(const Timestamp &other) const
Indicates if the current Timestamp value is inferior or equal to the given Timestamp value...
static void Acquire(MutexHandle handle)
Acquire a mutex lock.
OCI_EXPORT boolean OCI_API OCI_SetStatementCacheSize(OCI_Connection *con, unsigned int value)
Set the maximum number of statements to keep in the statement cache.
void SetReferenceNull()
Nullify the given Ref handle.
OCI_EXPORT OCI_Thread *OCI_API OCI_ThreadCreate(void)
Create a Thread object.
OCI_EXPORT boolean OCI_API OCI_SetFormat(OCI_Connection *con, unsigned int type, const otext *format)
Set the format string for implicit string conversions of the given type.
int GetMinutes() const
Return the timestamp minutes value.
void SetAttributeNull(const ostring &name)
Set the given object attribute to null.
OCI_EXPORT boolean OCI_API OCI_ObjectSetFloat(OCI_Object *obj, const otext *attr, float value)
Set an object attribute of type float.
OCI_EXPORT OCI_Coll *OCI_API OCI_ObjectGetColl(OCI_Object *obj, const otext *attr)
Return the collection value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_SetLongMode(OCI_Statement *stmt, unsigned int mode)
Set the long data type handling mode of a SQL statement.
OCI_EXPORT boolean OCI_API OCI_AgentFree(OCI_Agent *agent)
Free an AQ agent object.
OCI_EXPORT OCI_Long *OCI_API OCI_GetLong2(OCI_Resultset *rs, const otext *name)
Return the current Long value of the column from its name in the resultset.
OCI_EXPORT int OCI_API OCI_IntervalCheck(OCI_Interval *itv)
Check if the given interval is valid.
OCI_EXPORT OCI_Connection *OCI_API OCI_StatementGetConnection(OCI_Statement *stmt)
Return the connection handle associated with a statement handle.
OCI_EXPORT boolean OCI_API OCI_QueueTableDrop(OCI_Connection *con, const otext *queue_table, boolean force)
Drop the given queue table.
OCI_EXPORT OCI_Timestamp *OCI_API OCI_GetTimestamp(OCI_Resultset *rs, unsigned int index)
Return the current timestamp value of the column at the given index in the resultset.
OCI_EXPORT boolean OCI_API OCI_BindLong(OCI_Statement *stmt, const otext *name, OCI_Long *data, unsigned int size)
Bind a Long variable.
OCI_EXPORT unsigned int OCI_API OCI_GetBindCount(OCI_Statement *stmt)
Return the number of binds currently associated to a statement.
OCI_EXPORT OCI_Agent *OCI_API OCI_DequeueListen(OCI_Dequeue *dequeue, int timeout)
Listen for messages that match any recipient of the associated Agent list.
unsigned int GetMax() const
Returns the maximum number of elements for the collection.
OCI_EXPORT boolean OCI_API OCI_MsgSetPriority(OCI_Msg *msg, int value)
Set the priority of the message.
OCI_EXPORT int OCI_API OCI_MsgGetEnqueueDelay(OCI_Msg *msg)
Return the number of seconds that a message is delayed for dequeuing.
Object identifying the SQL data type LOB (CLOB, NCLOB and BLOB)
OCI_EXPORT OCI_TypeInfo *OCI_API OCI_ColumnGetTypeInfo(OCI_Column *col)
Return the type information object associated to the column.
OCI_EXPORT unsigned int OCI_API OCI_PoolGetTimeout(OCI_Pool *pool)
Get the idle timeout for connections/sessions in the pool.
OCI_EXPORT boolean OCI_API OCI_RegisterTimestamp(OCI_Statement *stmt, const otext *name, unsigned int type)
Register a timestamp output bind placeholder.
OCI_EXPORT OCI_File *OCI_API OCI_ObjectGetFile(OCI_Object *obj, const otext *attr)
Return the file value of the given object attribute.
TLobObjectType Read(unsigned int length)
Read a portion of a lob.
TypeInfo(const Connection &connection, const ostring &name, TypeInfoType type)
Parametrized constructor.
OCI_EXPORT OCI_Interval *OCI_API OCI_ObjectGetInterval(OCI_Object *obj, const otext *attr)
Return the interval value of the given object attribute.
OCI_EXPORT boolean OCI_API OCI_IntervalFree(OCI_Interval *itv)
Free an OCI_Interval handle.
OCI_EXPORT boolean OCI_API OCI_DirPathSave(OCI_DirPath *dp)
Execute a data save-point (server side)
OCI_EXPORT boolean OCI_API OCI_MsgSetEnqueueDelay(OCI_Msg *msg, int value)
set the number of seconds to delay the enqueued message
OCI_EXPORT boolean OCI_API OCI_DateGetDate(OCI_Date *date, int *year, int *month, int *day)
Extract the date part from a date handle.
void Execute(const ostring &sql)
Prepare and execute a SQL statement or PL/SQL block.
unsigned int GetRow() const
Return the row index which caused an error during statement execution.
OCI_EXPORT unsigned int OCI_API OCI_ColumnGetSize(OCI_Column *col)
Return the size of the column.
static Timestamp SysTimestamp(TimestampType type=NoTimeZone)
return the current system timestamp
unsigned int GetCount() const
Returns the current number of elements in the collection.
static Environment::CharsetMode GetCharset()
Return the OCILIB charset type.
OCI_EXPORT boolean OCI_API OCI_TransactionStart(OCI_Transaction *trans)
Start global transaction.
Lob< ostring, LobCharacter > Clob
Class handling CLOB oracle type.
static TResultType Check(TResultType result)
Internal usage. Checks if the last OCILIB function call has raised an error. If so, it raises a C++ exception using the retrieved error handle.
OCI_EXPORT unsigned int OCI_API OCI_GetColumnIndex(OCI_Resultset *rs, const otext *name)
Return the index of the column in the result from its name.
int GetDay() const
Return the date day value.
OCI_EXPORT boolean OCI_API OCI_BindColl(OCI_Statement *stmt, const otext *name, OCI_Coll *data)
Bind a Collection variable.
void SetSessionTag(const ostring &tag)
Associate a tag to the given connection/session.
OCI_EXPORT unsigned int OCI_API OCI_LongWrite(OCI_Long *lg, void *buffer, unsigned int len)
Write a buffer into a Long.
OracleVersion GetVersion() const
Return the Oracle version supported by the connection.
struct OCI_Coll OCI_Coll
Oracle Collections (VARRAYs and Nested Tables) representation.
OCI_EXPORT boolean OCI_API OCI_QueueDrop(OCI_Connection *con, const otext *queue_name)
Drop the given queue.
OCI_EXPORT int OCI_API OCI_ColumnGetPrecision(OCI_Column *col)
Return the precision of the column for numeric columns.
OCI_EXPORT const otext *OCI_API OCI_GetServerName(OCI_Connection *con)
Return the Oracle server machine name of the connected database/service name.
OCI_EXPORT boolean OCI_API OCI_DequeueUnsubscribe(OCI_Dequeue *dequeue)
Unsubscribe for asynchronous messages notifications.
int GetMinutes() const
Return the interval minutes value.
OCI_EXPORT boolean OCI_API OCI_TransactionStop(OCI_Transaction *trans)
Stop current global transaction.
OCI_EXPORT unsigned int OCI_API OCI_DirPathGetCurrentRows(OCI_DirPath *dp)
Return the current number of rows used in the OCILIB internal arrays of rows.
OCI_EXPORT boolean OCI_API OCI_MsgSetCorrelation(OCI_Msg *msg, const otext *correlation)
set the correlation identifier of the message
OCI_EXPORT unsigned int OCI_API OCI_ErrorGetRow(OCI_Error *err)
Return the row index which caused an error during statement execution.
OCI_EXPORT boolean OCI_API OCI_ElemFree(OCI_Elem *elem)
Free a local collection element.
OCI_EXPORT const otext *OCI_API OCI_AgentGetName(OCI_Agent *agent)
Get the given AQ agent name.
OCI_EXPORT OCI_DirPath *OCI_API OCI_DirPathCreate(OCI_TypeInfo *typinf, const otext *partition, unsigned int nb_cols, unsigned int nb_rows)
Create a direct path object.
OCI_EXPORT boolean OCI_API OCI_LobSeek(OCI_Lob *lob, big_uint offset, unsigned int mode)
Perform a seek operation on the OCI_lob content buffer.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfObjects(OCI_Statement *stmt, const otext *name, OCI_Object **data, OCI_TypeInfo *typinf, unsigned int nbelem)
Bind an array of object handles.
void SetYear(int value)
Set the date year value.
struct OCI_Elem OCI_Elem
Oracle Collection item representation.
int GetYear() const
Return the timestamp year value.
OCI_EXPORT boolean OCI_API OCI_DirPathFlushRow(OCI_DirPath *dp)
Flushes a partially loaded row from server.
OCI_EXPORT boolean OCI_API OCI_ElemSetTimestamp(OCI_Elem *elem, OCI_Timestamp *value)
Assign a Timestamp handle to a collection element.
OCI_EXPORT boolean OCI_API OCI_Initialize(POCI_ERROR err_handler, const otext *lib_path, unsigned int mode)
Initialize the library.
OCI_EXPORT const otext *OCI_API OCI_GetSql(OCI_Statement *stmt)
Return the last SQL or PL/SQL statement prepared or executed by the statement.
OCI_EXPORT OCI_Coll *OCI_API OCI_GetColl2(OCI_Resultset *rs, const otext *name)
Return the current Collection value of the column from its name in the resultset. ...
OCI_EXPORT boolean OCI_API OCI_ObjectSetString(OCI_Object *obj, const otext *attr, const otext *value)
Set an object attribute of type string.
Date & operator++()
Increment the date by 1 day.
OCI_EXPORT big_uint OCI_API OCI_ElemGetUnsignedBigInt(OCI_Elem *elem)
Return the unsigned big int value of the given collection element.
OCI_EXPORT unsigned int OCI_API OCI_PoolGetMin(OCI_Pool *pool)
Return the minimum number of connections/sessions that can be opened to the database.
Flags< TransactionFlagsValues > TransactionFlags
Transaction flags.
void GetDate(int &year, int &month, int &day) const
Extract the date parts.
OCI_EXPORT int OCI_API OCI_MsgGetAttemptCount(OCI_Msg *msg)
Return the number of attempts that have been made to dequeue the message.
big_uint Erase(big_uint offset, big_uint length)
Erase a portion of the lob at a given position.
static unsigned int GetRuntimeMinorVersion()
Return the minor version number of OCI used at runtime.
std::basic_string< otext, std::char_traits< otext >, std::allocator< otext > > ostring
string class wrapping the OCILIB otext * type and OTEXT() macros ( see Character sets ) ...
OCI_EXPORT boolean OCI_API OCI_ElemSetShort(OCI_Elem *elem, short value)
Set a short value to a collection element.
struct OCI_Object OCI_Object
Oracle Named types representation.
OCI_EXPORT unsigned int OCI_API OCI_BindGetDataCount(OCI_Bind *bnd)
Return the number of elements of the bind handle.
OCI_EXPORT OCI_Mutex *OCI_API OCI_MutexCreate(void)
Create a Mutex object.
bool operator<=(const Date &other) const
Indicates if the current date value is inferior or equal to the given date value. ...
OCI_EXPORT OCI_Long *OCI_API OCI_LongCreate(OCI_Statement *stmt, unsigned int type)
Create a local temporary Long instance.
OCI_EXPORT boolean OCI_API OCI_IntervalAssign(OCI_Interval *itv, OCI_Interval *itv_src)
Assign the value of a interval handle to another one.
OCI_EXPORT int OCI_API OCI_IntervalCompare(OCI_Interval *itv, OCI_Interval *itv2)
Compares two interval handles.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfBigInts(OCI_Statement *stmt, const otext *name, big_int *data, unsigned int nbelem)
Bind an array of big integers.
OCI_EXPORT OCI_Timestamp *OCI_API OCI_ElemGetTimestamp(OCI_Elem *elem)
Return the Timestamp value of the given collection element.
Lob()
Create an empty null Lob instance.
static unsigned int GetRuntimeMajorVersion()
Return the major version number of OCI used at runtime.
void SetSeconds(int value)
Set the interval seconds value.
struct OCI_Column OCI_Column
Oracle SQL Column and Type member representation.
OCI_EXPORT unsigned int OCI_API OCI_GetDefaultLobPrefetchSize(OCI_Connection *con)
Return the default LOB prefetch buffer size for the connection.
bool GetServerOutput(ostring &line) const
Retrieve one line of the server buffer.
OCI_EXPORT boolean OCI_API OCI_LobFree(OCI_Lob *lob)
Free a local temporary lob.
OCI_EXPORT unsigned int OCI_API OCI_ColumnGetType(OCI_Column *col)
Return the type of the given column.
int GetMilliSeconds() const
Return the timestamp seconds value.
static bool SetFormat(FormatType formatType, const ostring &format)
Set the format string for implicit string conversions of the given type.
void AddMonths(int months)
Add or subtract months.
OCI_EXPORT OCI_Object *OCI_API OCI_GetObject(OCI_Resultset *rs, unsigned int index)
Return the current Object value of the column at the given index in the resultset.
OCI_EXPORT boolean OCI_API OCI_TimestampGetTimeZoneOffset(OCI_Timestamp *tmsp, int *hour, int *min)
Return the time zone (hour, minute) portion of a timestamp handle.
TypeInfo GetTypeInfo() const
Return the type information object associated to the collection.
OCI_EXPORT boolean OCI_API OCI_EnqueuePut(OCI_Enqueue *enqueue, OCI_Msg *msg)
Enqueue a message on the queue associated to the Enqueue object.
OCI_EXPORT boolean OCI_API OCI_TransactionResume(OCI_Transaction *trans)
Resume a stopped global transaction.
OCI_EXPORT unsigned int OCI_API OCI_GetSqlErrorPos(OCI_Statement *stmt)
Return the error position (in terms of characters) in the SQL statement where the error occurred in c...
OCI_EXPORT boolean OCI_API OCI_QueueStop(OCI_Connection *con, const otext *queue_name, boolean enqueue, boolean dequeue, boolean wait)
Stop enqueuing or dequeuing or both on the given queue.
OCI_EXPORT boolean OCI_API OCI_LobAppendLob(OCI_Lob *lob, OCI_Lob *lob_src)
Append a source LOB at the end of a destination LOB.
void Close()
Close the file on the server.
OCI_EXPORT boolean OCI_API OCI_MsgSetExceptionQueue(OCI_Msg *msg, const otext *queue)
Set the name of the queue to which the message is moved to if it cannot be processed successfully...
OCI_EXPORT boolean OCI_API OCI_RegisterInterval(OCI_Statement *stmt, const otext *name, unsigned int type)
Register an interval output bind placeholder.
struct OCI_Error OCI_Error
Encapsulates an Oracle or OCILIB exception.
void SetMonth(int value)
Set the interval month value.
OCI_EXPORT boolean OCI_API OCI_Parse(OCI_Statement *stmt, const otext *sql)
Parse a SQL statement or PL/SQL block.
bool operator==(const Interval &other) const
Indicates if the current Interval value is equal to the given Interval value.
Object identifying the SQL data type TIMESTAMP.
OCI_EXPORT boolean OCI_API OCI_IntervalSetYearMonth(OCI_Interval *itv, int year, int month)
Set the year / month portion if the given Interval handle.
OCI_EXPORT OCI_Statement *OCI_API OCI_ErrorGetStatement(OCI_Error *err)
Retrieve statement handle within the error occurred.
OCI_EXPORT boolean OCI_API OCI_SetFetchMode(OCI_Statement *stmt, unsigned int mode)
Set the fetch mode of a SQL statement.
OCI_EXPORT boolean OCI_API OCI_BindArrayOfColls(OCI_Statement *stmt, const otext *name, OCI_Coll **data, OCI_TypeInfo *typinf, unsigned int nbelem)
Bind an array of Collection handles.
TransactionFlags GetFlags() const
Return the transaction mode.
OCI_EXPORT boolean OCI_API OCI_DirPathSetDateFormat(OCI_DirPath *dp, const otext *format)
Set the default date format string for input conversion.
OCI_EXPORT boolean OCI_API OCI_DequeueSetRelativeMsgID(OCI_Dequeue *dequeue, const void *id, unsigned int len)
Set the message identifier of the message to be dequeued.
OCI_EXPORT boolean OCI_API OCI_RegisterRaw(OCI_Statement *stmt, const otext *name, unsigned int len)
Register an raw output bind placeholder.
OCI_EXPORT boolean OCI_API OCI_DirPathFinish(OCI_DirPath *dp)
Terminate a direct path operation and commit changes into the database.
OCI_EXPORT boolean OCI_API OCI_EnqueueFree(OCI_Enqueue *enqueue)
Free a Enqueue object.
void SetYearMonth(int year, int month)
Set the Year / Month parts.
OCI_EXPORT boolean OCI_API OCI_RefAssign(OCI_Ref *ref, OCI_Ref *ref_src)
Assign a Ref to another one.
OCI_EXPORT const otext *OCI_API OCI_GetTrace(OCI_Connection *con, unsigned int trace)
Get the current trace for the trace type from the given connection.
OCI_EXPORT OCI_Msg *OCI_API OCI_MsgCreate(OCI_TypeInfo *typinf)
Create a message object based on the given payload type.
Object identifying the SQL data type OBJECT.
OCI_EXPORT boolean OCI_API OCI_AgentSetAddress(OCI_Agent *agent, const otext *address)
Set the given AQ agent address.
static ThreadId GetThreadId(ThreadHandle handle)
Return the system Thread ID of the given thread handle.
OCI_EXPORT boolean OCI_API OCI_LobFlush(OCI_Lob *lob)
Flush Lob content to the server.
OCI_EXPORT OCI_Lob *OCI_API OCI_GetLob(OCI_Resultset *rs, unsigned int index)
Return the current lob value of the column at the given index in the resultset.
unsigned int GetTimeout() const
Get the idle timeout for connections/sessions in the pool.
struct OCI_Event OCI_Event
OCILIB encapsulation of Oracle DCN event.
OCI_EXPORT boolean OCI_API OCI_BindUnsignedShort(OCI_Statement *stmt, const otext *name, unsigned short *data)
Bind an unsigned short variable.
OCI_EXPORT OCI_Subscription *OCI_API OCI_SubscriptionRegister(OCI_Connection *con, const otext *name, unsigned int type, POCI_NOTIFY handler, unsigned int port, unsigned int timeout)
Register a notification against the given database.
OCI_EXPORT OCI_Ref *OCI_API OCI_ElemGetRef(OCI_Elem *elem)
Return the Ref value of the given collection element.
OCI_EXPORT boolean OCI_API OCI_RegisterFloat(OCI_Statement *stmt, const otext *name)
Register a float output bind placeholder.
bool operator<(const Interval &other) const
Indicates if the current Interval value is inferior to the given Interval value.
OCI_EXPORT boolean OCI_API OCI_ElemSetFloat(OCI_Elem *elem, float value)
Set a float value to a collection element.
Subscription to database or objects changes.
int GetSeconds() const
Return the date seconds value.
OCI_EXPORT unsigned int OCI_API OCI_ObjectGetRawSize(OCI_Object *obj, const otext *attr)
Return the raw attribute value size of the given object attribute into the given buffer.
struct OCI_Lob OCI_Lob
Oracle Internal Large objects:
OCI_EXPORT boolean OCI_API OCI_BindRef(OCI_Statement *stmt, const otext *name, OCI_Ref *data)
Bind a Ref variable.
int GetMonth() const
Return the date month value.
OCI_EXPORT boolean OCI_API OCI_FileIsEqual(OCI_File *file, OCI_File *file2)
Compare two file handle for equality.
OCI_EXPORT boolean OCI_API OCI_Cleanup(void)
Clean up all resources allocated by the library.
Reference GetReference() const
Creates a reference on the current object.
FailoverResult(* TAFHandlerProc)(Connection &con, FailoverRequest failoverRequest, FailoverEvent failoverEvent)
User callback for TAF event notifications.
unsigned int GetStatementCacheSize() const
Return the maximum number of statements to keep in the statement cache.
OCI_EXPORT unsigned int OCI_API OCI_BindGetType(OCI_Bind *bnd)
Return the OCILIB type of the given bind.
static ThreadHandle Create()
Create a Thread.
void Copy(Lob &dest, big_uint offset, big_uint offsetDest, big_uint length) const
Copy the given portion of the lob content to another one.
Connection()
Default constructor.
bool operator>=(const Date &other) const
Indicates if the current date value is superior or equal to the given date value. ...
OCI_EXPORT OCI_Pool *OCI_API OCI_PoolCreate(const otext *db, const otext *user, const otext *pwd, unsigned int type, unsigned int mode, unsigned int min_con, unsigned int max_con, unsigned int incr_con)
Create an Oracle pool of connections or sessions.
bool IsReferenceNull() const
Check if the reference points to an object or not.
Interval operator-(const Interval &other)
Return a new Interval holding the difference of the current Interval value and the given Interval val...
Object identifying the SQL data type DATE.
OCI_EXPORT boolean OCI_API OCI_TimestampConvert(OCI_Timestamp *tmsp, OCI_Timestamp *tmsp_src)
Convert one timestamp value from one type to another.