23#include "ocilibcpp/core.hpp"
63 unsigned int GetMode()
const;
65 virtual void SetInData() = 0;
66 virtual void SetOutData() = 0;
87 void SetVector(std::vector<T>& vector,
bool isPlSqlTable,
unsigned int elemSize);
92 void SetInData()
override;
93 void SetOutData()
override;
95 unsigned int GetSize()
const;
96 unsigned int GetSizeForBindCall()
const;
100 class AbstractBindArrayObject
103 virtual ~AbstractBindArrayObject() {};
104 virtual void SetInData() = 0;
105 virtual void SetOutData() = 0;
106 virtual ostring GetName()
const = 0;
107 virtual bool IsHandleObject()
const = 0;
108 virtual unsigned int GetSize()
const = 0;
109 virtual unsigned int GetSizeForBindCall()
const = 0;
113 class BindArrayObject :
public AbstractBindArrayObject
117 typedef T ObjectType;
118 typedef std::vector<ObjectType> ObjectVector;
121 BindArrayObject(
const ocilib::Statement& statement,
const ostring& name, ObjectVector& vector,
bool isPlSqlTable,
unsigned int mode,
unsigned int elemSize);
122 virtual ~BindArrayObject()
noexcept;
123 void SetInData()
override;
124 void SetOutData()
override;
125 ostring GetName()
const override;
126 bool IsHandleObject()
const override;
127 unsigned int GetSize()
const override;
128 unsigned int GetSizeForBindCall()
const override;
130 operator ObjectVector& ()
const;
131 operator NativeType* ()
const;
136 void FreeData()
const;
140 ObjectVector& _vector;
144 unsigned int _elemCount;
145 unsigned int _elemSize;
148 AbstractBindArrayObject* _object;
162 typedef T ObjectType;
165 operator NativeType* ()
const;
167 void SetInData()
override;
168 void SetOutData()
override;
191 typedef T ObjectType;
194 operator NativeType* ()
const;
196 void SetInData()
override;
197 void SetOutData()
override;
228 std::vector<BindObject*> _bindObjects;
Object used for executing SQL or PL/SQL statement and returning the produced results.
Internal usage. Class implementing bind translations between C++ vectors and C API arrays.
Internal usage. Class implementing bind adapters between C++ class and C API types.
Internal usage. Base class for implementing bind translations for C++ objects and their counter parts...
Internal usage. Class implementing bind adapters between C++ types and C API types when C++ types do ...
Internal usage. Class owning bind objects allowing to set/get C data prior/after a statement executio...
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 )
Internal usage. Allow resolving a native type used by C API from a C++ type in binding operations.