23 #include "ocilibcpp/support.hpp"
34 template<
class I,
class O,
boolean B>
39 static const bool IsHandle = B;
55 template<
class I,
class O>
59 template<>
struct BindResolver<short> : BindResolverScalarType<short> {};
60 template<>
struct BindResolver<unsigned short> : BindResolverScalarType<unsigned short> {};
61 template<>
struct BindResolver<int> : BindResolverScalarType<int> {};
62 template<>
struct BindResolver<unsigned int> : BindResolverScalarType<unsigned int> {};
63 template<>
struct BindResolver<
big_int> : BindResolverScalarType<big_int> {};
64 template<>
struct BindResolver<big_uint> : BindResolverScalarType<big_uint> {};
65 template<>
struct BindResolver<float> : BindResolverScalarType<float> {};
66 template<>
struct BindResolver<double> : BindResolverScalarType<double> {};
67 template<>
struct BindResolver<
ocilib::
ostring> : BindResolverType<ocilib::ostring, otext, false> {};
68 template<>
struct BindResolver<
ocilib::
Raw> : BindResolverType<ocilib::ostring, unsigned char, false> {};
69 template<>
struct BindResolver<
ocilib::Number> : BindResolverHandleType<ocilib::Number, OCI_Number*> {};
70 template<>
struct BindResolver<
ocilib::Date> : BindResolverHandleType<ocilib::Date, OCI_Date*> {};
71 template<>
struct BindResolver<
ocilib::Timestamp> : BindResolverHandleType<ocilib::Timestamp, OCI_Timestamp*> {};
72 template<>
struct BindResolver<
ocilib::Interval> : BindResolverHandleType<ocilib::Interval, OCI_Interval*> {};
73 template<>
struct BindResolver<
ocilib::
Clob> : BindResolverHandleType<ocilib::Clob, OCI_Lob*> {};
74 template<>
struct BindResolver<
ocilib::
NClob> : BindResolverHandleType<ocilib::NClob, OCI_Lob*> {};
75 template<>
struct BindResolver<
ocilib::
Blob> : BindResolverHandleType<ocilib::Blob, OCI_Lob*> {};
76 template<>
struct BindResolver<
ocilib::File> : BindResolverHandleType<ocilib::File, OCI_File*> {};
77 template<>
struct BindResolver<
ocilib::
Clong> : BindResolverHandleType<ocilib::Clong, OCI_Long*> {};
78 template<>
struct BindResolver<
ocilib::
Blong> : BindResolverHandleType<ocilib::Blong, OCI_Long*> {};
79 template<>
struct BindResolver<
ocilib::Reference> : BindResolverHandleType<ocilib::Reference, OCI_Ref*> {};
80 template<>
struct BindResolver<
ocilib::Object> : BindResolverHandleType<ocilib::Object, OCI_Object*> {};
81 template<>
struct BindResolver<
ocilib::Statement> : BindResolverHandleType<ocilib::Statement, OCI_Statement*> {};
long long big_int
big_int is a C scalar integer (32 or 64 bits) depending on compiler support for 64bits integers....
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 )
Long< Raw, LongBinary > Blong
Class handling LONG RAW oracle type.
Lob< ostring, LobNationalCharacter > NClob
Class handling NCLOB oracle type.
Lob< ostring, LobCharacter > Clob
Class handling CLOB oracle type.
std::vector< unsigned char > Raw
C++ counterpart of SQL RAW data type.
Long< ostring, LongCharacter > Clong
Class handling LONG oracle type.
Lob< Raw, LobBinary > Blob
Class handling BLOB oracle type.
Simplified resolver for handle types.
Internal usage. Allow resolving a native type used by C API from a C++ type in binding operations.
Simplified resolver for scalar types that do not need translation.
Resolve a bind input / output types.