| /* Copyright (c) 2000, 2008, Oracle. All rights reserved. */ |
| |
| /* |
| NAME |
| occiCommon.h - header file for doing forward references |
| |
| DESCRIPTION |
| Just declare all the classes |
| |
| RELATED DOCUMENTS |
| OCCI Programmer's Guide |
| |
| EXPORT FUNCTION(S) |
| none |
| |
| INTERNAL FUNCTION(S) |
| none |
| |
| EXAMPLES |
| |
| NOTES |
| none |
| |
| */ |
| |
| |
| #ifndef OCCICOMMON_ORACLE |
| # define OCCICOMMON_ORACLE |
| |
| #ifndef _olint |
| |
| #ifndef OCI_ORACLE |
| #include <oci.h> |
| #endif |
| |
| #ifndef ORASTRINGSTL |
| #define ORASTRINGSTL |
| #include <string> |
| #endif |
| |
| #ifndef ORAVECTORSTL |
| #include <vector> |
| #define ORAVECTORSTL |
| #endif |
| |
| #ifndef ORALISTSTL |
| #include <list> |
| #define ORALISTSTL |
| #endif |
| |
| #define OCCI_STD_NAMESPACE std |
| #define OCCI_HAVE_STD_NAMESPACE 1 |
| |
| // version definitions |
| #define OCCI_MAJOR_VERSION OCI_MAJOR_VERSION |
| #define OCCI_MINOR_VERSION OCI_MINOR_VERSION |
| |
| namespace oracle { |
| namespace occi { |
| |
| //UString is the class for UTF16 characterset |
| //check for version = 3.2 or 3.3 |
| #if (__GNUC__ == 3 && (__GNUC_MINOR__ == 2 || __GNUC_MINOR__ == 3)) |
| //char_traits<T> specialization for utext for gcc 3.2.3 |
| struct utext_char_traits |
| { |
| typedef utext char_type; |
| typedef unsigned int int_type; |
| |
| typedef OCCI_STD_NAMESPACE::streampos pos_type; |
| typedef OCCI_STD_NAMESPACE::streamoff off_type; |
| typedef OCCI_STD_NAMESPACE::mbstate_t state_type; |
| |
| //assign one char to another |
| static void assign(char_type& c1, const char_type& c2) |
| { |
| c1 = c2; |
| } |
| |
| //are 2 chars equal ? |
| static bool eq(const char_type& c1, const char_type& c2) |
| { |
| return c1 == c2; |
| } |
| |
| //is char c1 less then c2 ? |
| static bool lt(const char_type& c1, const char_type& c2) |
| { |
| return c1 < c2; |
| } |
| |
| //compare 2 strings of char |
| static int compare(const char_type* s1, const char_type* s2, size_t n) |
| { |
| for (size_t i = 0; i < n; ++i) |
| if (!eq(s1[i], s2[i])) |
| return s1[i] < s2[i] ? -1 : 1; |
| return 0; |
| } |
| |
| //length of a char string |
| static size_t length(const char_type* s) |
| { |
| const char_type nullchar = char_type(0); |
| size_t i = 0; |
| |
| while (!eq(*s++, nullchar)) i++; |
| return i; |
| } |
| |
| //find a character in the char string |
| static const char_type* find(const char_type* s, |
| size_t n, const char_type& c) |
| { |
| for ( ; n > 0 ; ++s, --n) |
| if (eq(*s, c)) |
| return s; |
| return 0; |
| } |
| |
| //move n chars from s2 to s1 |
| static char_type* move(char_type* s1, const char_type* s2, size_t n) |
| { |
| memmove(s1, s2, n * sizeof(char_type)); |
| return s1; |
| } |
| |
| //copy n chars from s2 to s1 |
| static char_type* copy(char_type* s1, const char_type* s2, size_t n) |
| { |
| memcpy(s1, s2, n * sizeof(char_type)); |
| return s1; |
| } |
| |
| //fill char c into s |
| static char_type* assign(char_type* s, size_t n, char_type c) |
| { |
| for (size_t i = 0; i < n; ++i) |
| assign(s[i], c); |
| return s; |
| } |
| |
| //is the int representation eof ? |
| static int_type not_eof(const int_type& c) |
| { |
| if (c == eof()) |
| return 0; |
| else |
| return c; |
| } |
| |
| //cast a int type to char |
| static char_type to_char_type(const int_type& c) |
| { |
| return static_cast<char_type>(c); |
| } |
| |
| //cast char to int type |
| static int_type to_int_type(const char_type& c) |
| { |
| return static_cast<int_type>(c); |
| } |
| |
| //eq operator when the chars are represented as ints |
| static bool eq_int_type(const int_type& c1, const int_type& c2) |
| { |
| return c1 == c2; |
| } |
| |
| //eof character |
| static int_type eof() |
| { |
| return static_cast<int_type>(-1); |
| } |
| |
| |
| }; //end char_traits<unsigned short> |
| |
| typedef OCCI_STD_NAMESPACE::basic_string<utext, utext_char_traits> UString; |
| #else |
| //for non gcc 3.2.3 platforms |
| typedef OCCI_STD_NAMESPACE::basic_string<utext> UString; |
| #endif /* if gcc 3.2.3 */ |
| |
| class Environment; |
| class EnvironmentImpl; |
| class Connection; |
| class ConnectionImpl; |
| class ConnectionPool; |
| class ConnectionPoolImpl; |
| class StatelessConnectionPool; |
| class StatelessConnectionPoolImpl; |
| class Statement; |
| class StatementImpl; |
| class ResultSet; |
| class ResultSetImpl; |
| class SQLException; |
| class SQLExceptionImpl; |
| class BatchSQLException; |
| class BatchSQLExceptionImpl; |
| class Stream; |
| class PObject; |
| class Number; |
| class Bytes; |
| class BytesImpl; |
| class Date; |
| class Timestamp; |
| |
| class MetaData; |
| class MetaDataImpl; |
| template <class T> class Ref; |
| class RefImpl; |
| class RefAny; |
| class Blob; |
| class Bfile; |
| class Clob; |
| class LobStreamImpl; |
| class AnyData; |
| class AnyDataImpl; |
| class Map; |
| class IntervalDS; |
| class IntervalYM; |
| |
| namespace aq { |
| class Message; |
| class MessageImpl; |
| class Agent; |
| class AgentImpl; |
| class Producer; |
| class ProducerImpl; |
| class Consumer; |
| class ConsumerImpl; |
| class Listener; |
| class Subscription; |
| class SubscriptionImpl; |
| class NotifyResult; |
| } |
| |
| typedef struct BFloat BFloat; |
| typedef struct BDouble BDouble; |
| |
| /*--------------------------------------------------------------------------- |
| ENUMERATORS |
| ---------------------------------------------------------------------------*/ |
| enum Type |
| { |
| OCCI_SQLT_CHR=SQLT_CHR, |
| OCCI_SQLT_NUM=SQLT_NUM, |
| OCCIINT = SQLT_INT, |
| OCCIFLOAT = SQLT_FLT, |
| OCCIBFLOAT = SQLT_BFLOAT, |
| OCCIBDOUBLE = SQLT_BDOUBLE, |
| OCCIIBFLOAT = SQLT_IBFLOAT, |
| OCCIIBDOUBLE = SQLT_IBDOUBLE, |
| OCCI_SQLT_STR=SQLT_STR, |
| OCCI_SQLT_VNU=SQLT_VNU, |
| OCCI_SQLT_PDN=SQLT_PDN, |
| OCCI_SQLT_LNG=SQLT_LNG, |
| OCCI_SQLT_VCS=SQLT_VCS, |
| OCCI_SQLT_NON=SQLT_NON, |
| OCCI_SQLT_RID=SQLT_RID, |
| OCCI_SQLT_DAT=SQLT_DAT, |
| OCCI_SQLT_VBI=SQLT_VBI, |
| OCCI_SQLT_BIN=SQLT_BIN, |
| OCCI_SQLT_LBI=SQLT_LBI, |
| OCCIUNSIGNED_INT = SQLT_UIN, |
| OCCI_SQLT_SLS=SQLT_SLS, |
| OCCI_SQLT_LVC=SQLT_LVC, |
| OCCI_SQLT_LVB=SQLT_LVB, |
| OCCI_SQLT_AFC=SQLT_AFC, |
| OCCI_SQLT_AVC=SQLT_AVC, |
| OCCI_SQLT_CUR=SQLT_CUR, |
| OCCI_SQLT_RDD=SQLT_RDD, |
| OCCI_SQLT_LAB=SQLT_LAB, |
| OCCI_SQLT_OSL=SQLT_OSL, |
| OCCI_SQLT_NTY=SQLT_NTY, |
| OCCI_SQLT_REF=SQLT_REF, |
| OCCI_SQLT_CLOB=SQLT_CLOB, |
| OCCI_SQLT_BLOB=SQLT_BLOB, |
| OCCI_SQLT_BFILEE=SQLT_BFILEE, |
| OCCI_SQLT_CFILEE=SQLT_CFILEE, |
| OCCI_SQLT_RSET=SQLT_RSET, |
| OCCI_SQLT_NCO=SQLT_NCO, |
| OCCI_SQLT_VST=SQLT_VST, |
| OCCI_SQLT_ODT=SQLT_ODT, |
| OCCI_SQLT_DATE=SQLT_DATE, |
| OCCI_SQLT_TIME=SQLT_TIME, |
| OCCI_SQLT_TIME_TZ=SQLT_TIME_TZ, |
| OCCI_SQLT_TIMESTAMP=SQLT_TIMESTAMP, |
| OCCI_SQLT_TIMESTAMP_TZ=SQLT_TIMESTAMP_TZ, |
| OCCI_SQLT_INTERVAL_YM=SQLT_INTERVAL_YM, |
| OCCI_SQLT_INTERVAL_DS=SQLT_INTERVAL_DS, |
| OCCI_SQLT_TIMESTAMP_LTZ=SQLT_TIMESTAMP_LTZ, |
| OCCI_SQLT_FILE=SQLT_FILE, |
| OCCI_SQLT_CFILE=SQLT_CFILE, |
| OCCI_SQLT_BFILE=SQLT_BFILE, |
| |
| OCCICHAR = 32 *1024, |
| OCCIDOUBLE, |
| OCCIBOOL, |
| OCCIANYDATA , |
| OCCINUMBER, |
| OCCIBLOB, |
| OCCIBFILE, |
| OCCIBYTES, |
| OCCICLOB , |
| OCCIVECTOR, |
| OCCIMETADATA, |
| OCCIPOBJECT, |
| OCCIREF , |
| OCCIREFANY, |
| OCCISTRING , |
| OCCISTREAM , |
| OCCIDATE , |
| OCCIINTERVALDS , |
| OCCIINTERVALYM , |
| OCCITIMESTAMP, |
| OCCIROWID, |
| OCCICURSOR |
| |
| |
| }; |
| |
| enum LockOptions {OCCI_LOCK_NONE = OCI_LOCK_NONE, |
| OCCI_LOCK_X = OCI_LOCK_X, |
| OCCI_LOCK_X_NOWAIT = OCI_LOCK_X_NOWAIT |
| }; |
| |
| enum {OCCI_MAX_PREFETCH_DEPTH = UB4MAXVAL}; |
| |
| enum TypeCode |
| { |
| |
| OCCI_TYPECODE_REF = OCI_TYPECODE_REF, |
| OCCI_TYPECODE_DATE = OCI_TYPECODE_DATE, |
| OCCI_TYPECODE_REAL = OCI_TYPECODE_REAL, |
| OCCI_TYPECODE_DOUBLE = OCI_TYPECODE_DOUBLE, |
| OCCI_TYPECODE_BDOUBLE = OCI_TYPECODE_BDOUBLE, |
| OCCI_TYPECODE_FLOAT = OCI_TYPECODE_FLOAT, |
| OCCI_TYPECODE_BFLOAT = OCI_TYPECODE_BFLOAT, |
| OCCI_TYPECODE_NUMBER = OCI_TYPECODE_NUMBER, |
| OCCI_TYPECODE_DECIMAL = OCI_TYPECODE_DECIMAL, |
| OCCI_TYPECODE_OCTET = OCI_TYPECODE_OCTET, |
| OCCI_TYPECODE_INTEGER = OCI_TYPECODE_INTEGER, |
| OCCI_TYPECODE_SMALLINT= OCI_TYPECODE_SMALLINT, |
| OCCI_TYPECODE_RAW = OCI_TYPECODE_RAW, |
| OCCI_TYPECODE_VARCHAR2 = OCI_TYPECODE_VARCHAR2, |
| OCCI_TYPECODE_VARCHAR = OCI_TYPECODE_VARCHAR, |
| OCCI_TYPECODE_CHAR = OCI_TYPECODE_CHAR, |
| OCCI_TYPECODE_VARRAY= OCI_TYPECODE_VARRAY, |
| OCCI_TYPECODE_TABLE = OCI_TYPECODE_TABLE, |
| OCCI_TYPECODE_CLOB = OCI_TYPECODE_CLOB, |
| OCCI_TYPECODE_BLOB = OCI_TYPECODE_BLOB, |
| OCCI_TYPECODE_BFILE = OCI_TYPECODE_BFILE, |
| OCCI_TYPECODE_OBJECT = OCI_TYPECODE_OBJECT, |
| OCCI_TYPECODE_NAMEDCOLLECTION = OCI_TYPECODE_NAMEDCOLLECTION |
| }; |
| |
| enum CharSetForm |
| { |
| OCCI_SQLCS_IMPLICIT = SQLCS_IMPLICIT // use local db char set |
| ,OCCI_SQLCS_NCHAR = SQLCS_NCHAR // use local db nchar set |
| ,OCCI_SQLCS_EXPLICIT = SQLCS_EXPLICIT // char set explicitly specified |
| ,OCCI_SQLCS_FLEXIBLE = SQLCS_FLEXIBLE // pl/sql flexible parameter |
| }; |
| |
| enum LobOpenMode |
| { OCCI_LOB_READONLY = OCI_LOB_READONLY |
| ,OCCI_LOB_READWRITE = OCI_LOB_READWRITE |
| ,OCCI_LOB_WRITEONLY = OCI_LOB_WRITEONLY |
| ,OCCI_LOB_APPENDONLY = OCI_LOB_APPENDONLY |
| ,OCCI_LOB_FULLOVERWRITE = OCI_LOB_FULLOVERWRITE |
| ,OCCI_LOB_FULLREAD = OCI_LOB_FULLREAD |
| }; |
| |
| enum LobOptionType |
| { |
| OCCI_LOB_OPT_NONE = 0, |
| OCCI_LOB_OPT_COMPRESS = OCI_LOB_OPT_COMPRESS, |
| OCCI_LOB_OPT_ENCRYPT = OCI_LOB_OPT_ENCRYPT, |
| OCCI_LOB_OPT_DEDUPLICATE = OCI_LOB_OPT_DEDUPLICATE, |
| OCCI_LOB_OPT_ALLOCSIZE = OCI_LOB_OPT_ALLOCSIZE, |
| OCCI_LOB_OPT_CONTENTTYPE = OCI_LOB_OPT_CONTENTTYPE, |
| OCCI_LOB_OPT_MODTIME = OCI_LOB_OPT_MODTIME |
| }; |
| |
| enum LobOptionValue |
| { |
| // Compression Options |
| OCCI_LOB_COMPRESS_OFF = OCI_LOB_COMPRESS_OFF, |
| OCCI_LOB_COMPRESS_ON = OCI_LOB_COMPRESS_ON, |
| // Encryption Options |
| OCCI_LOB_ENCRYPT_OFF = OCI_LOB_ENCRYPT_OFF, |
| OCCI_LOB_ENCRYPT_ON = OCI_LOB_ENCRYPT_ON, |
| // Sharing Options |
| OCCI_LOB_DEDUPLICATE_OFF = OCI_LOB_DEDUPLICATE_OFF, |
| OCCI_LOB_DEDUPLICATE_ON = OCI_LOB_DEDUPLICATE_ON |
| }; |
| |
| class RefCounted { |
| public: |
| RefCounted(); |
| virtual ~RefCounted(){} |
| const RefCounted * newRef() const; |
| void deleteRef() const; |
| |
| private: |
| |
| void onZeroReferences(); |
| unsigned long references_; |
| }; |
| |
| template <class T> |
| class ConstPtr |
| { |
| |
| public: |
| |
| ConstPtr( const T* ptr = 0 ); |
| ConstPtr( const ConstPtr<T>& mp ); |
| ~ConstPtr(); |
| const T * operator->() const; |
| const T* rawPtr() const; |
| |
| #ifdef MEMBER_TEMPLATE |
| template<class OtherType> operator ConstPtr<OtherType>(); |
| #endif |
| |
| protected: |
| |
| void operator=( const ConstPtr<T>& mp ); |
| const T* rawPtr_; |
| |
| }; |
| |
| template <class T> |
| class Ptr : public ConstPtr<T> { |
| |
| public: |
| |
| Ptr( T* ptr = 0 ); |
| Ptr( const Ptr<T>& mp ); |
| void operator=( const Ptr<T>& mp ); |
| const T * operator->() const; |
| T * operator->(); |
| T* rawPtr() ; |
| const T* rawPtr() const; |
| |
| |
| |
| #ifdef MEMBER_TEMPLATE |
| template<class OtherType> |
| operator Ptr<OtherType>(); |
| #endif |
| |
| }; |
| |
| /*--------------------------------------------------------------------------- |
| EXPORT FUNCTIONS |
| ---------------------------------------------------------------------------*/ |
| |
| void getVector(const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect); |
| void getVector(const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<UString> &vect); |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<Blob> &vect) ; |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<Clob> &vect) ; |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<Bfile> &vect) ; |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<Number> &vect) ; |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<BFloat> &vect); |
| void getVector(const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<BDouble> &vect); |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<Bytes> &vect) ; |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<Date> &vect) ; |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ; |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ; |
| void getVector( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ; |
| template <class T> |
| void getVectorOfRefs( const AnyData &any, |
| OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ; |
| |
| #if !defined(WIN32COMMON) && !defined(__MVS__) |
| template <class T> |
| void getVector(const AnyData &any, |
| OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ; |
| #endif |
| #if defined(WIN32COMMON) || defined(__MVS__) |
| template <class T> |
| void getVector(const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<T> &vect, |
| void *(*rSQL)(void *)); |
| #else |
| template <class T> |
| void getVector(const AnyData &any, |
| OCCI_STD_NAMESPACE::vector<T *> &vect, |
| void *(*rSQL)(void *)); |
| #endif |
| |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<UString> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<Blob> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<Clob> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<Bfile> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<BFloat> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<BDouble> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<Number> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<Bytes> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<Date> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ; |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ; |
| template <class T> |
| void setVectorOfRefs( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ; |
| #if !defined(WIN32COMMON) && !defined(__MVS__) |
| template <class T> |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ; |
| #endif |
| #if defined(WIN32COMMON) || defined(__MVS__) |
| template <class T> |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector< T > &vect) ; |
| #else |
| template <class T> |
| void setVector( AnyData &any, |
| const OCCI_STD_NAMESPACE::vector< T* > &vect) ; |
| #endif |
| |
| void getVector( ResultSet *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector<int> &vect) ; |
| void getVector( ResultSet *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ; |
| void getVector( ResultSet *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector<UString> &vect) ;//UTF16 support |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<unsigned int> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<float> &vect); |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<BFloat> &vect); |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<double> &vect); |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<BDouble> &vect); |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Date> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<RefAny> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Blob> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Clob> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Bfile> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Number> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ; |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ; |
| template <class T> |
| void getVectorOfRefs(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ; |
| #if !defined(WIN32COMMON) && !defined(__MVS__) |
| template <class T> |
| void getVector(ResultSet *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ; |
| #endif |
| #if defined(WIN32COMMON) || defined(__MVS__) |
| template <class T> |
| void getVector( ResultSet *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector< T > &vect) ; |
| #else |
| template <class T> |
| void getVector( ResultSet *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector< T* > &vect) ; |
| #endif |
| |
| |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<RefAny> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Blob> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Clob> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Bfile> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Number> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ; |
| void getVector( Statement *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector<int> &vect) ; |
| void getVector( Statement *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ; |
| void getVector( Statement *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector<UString> &vect) ;//UTF16 support |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<unsigned int> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<float> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<BFloat> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<double> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<BDouble> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Date> &vect) ; |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ; |
| template <class T> |
| void getVectorOfRefs(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ; |
| #if !defined(WIN32COMMON) && !defined(__MVS__) |
| template <class T> |
| void getVector(Statement *rs, unsigned int, |
| OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ; |
| #endif |
| #if defined(WIN32COMMON) || defined(__MVS__) |
| template <class T> |
| void getVector( Statement *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector< T > &vect) ; |
| #else |
| template <class T> |
| void getVector( Statement *rs, unsigned int index, |
| OCCI_STD_NAMESPACE::vector< T* > &vect) ; |
| #endif |
| |
| |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<int> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<unsigned int> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<double> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<BDouble> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<float> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<BFloat> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Number> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype); |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<RefAny> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Blob> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Clob> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Bfile> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Timestamp> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Date> &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| template <class T> |
| void setVectorOfRefs(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| #if !defined(WIN32COMMON) && !defined(__MVS__) |
| template <class T> |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| #endif |
| #if defined(WIN32COMMON) || defined(__MVS__) |
| template <class T> |
| void setVector( Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector< T > &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| #else |
| template <class T> |
| void setVector( Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<T* > &vect, |
| const OCCI_STD_NAMESPACE::string &sqltype) ; |
| #endif |
| |
| /* ------------------------------------------------------------------------ |
| Statement setVector functions, schema & type separate |
| arguments - multibyte support |
| ------------------------------------------------------------------------ |
| */ |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<int> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<unsigned int> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<double> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<BDouble> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<float> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<BFloat> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Number> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName); |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<RefAny> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Blob> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Clob> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Bfile> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Timestamp> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Date> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| template <class T> |
| void setVectorOfRefs(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| |
| #if !defined(WIN32COMMON) && !defined(__MVS__) |
| template <class T> |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| #endif |
| |
| #if defined(WIN32COMMON) || defined(__MVS__) |
| template <class T> |
| void setVector( Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector< T > &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| #else |
| template <class T> |
| void setVector( Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<T* > &vect, const OCCI_STD_NAMESPACE::string |
| &schemaName, const OCCI_STD_NAMESPACE::string &typeName) ; |
| #endif |
| |
| /*------------------------------------------------------------------------- |
| Statement setVector function - UTF16 support |
| ------------------------------------------------------------------------- |
| */ |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<int> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<unsigned int> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<double> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<BDouble> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<float> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<BFloat> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Number> &vect, |
| const UString &schemaName, |
| const UString &typeName); |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<UString> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<UString> &vect, |
| const OCCI_STD_NAMESPACE::string &schemaName, |
| const OCCI_STD_NAMESPACE::string &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<RefAny> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Blob> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Clob> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Bfile> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Timestamp> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Date> &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| template <class T> |
| void setVectorOfRefs(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| |
| #if !defined(WIN32COMMON) && !defined(__MVS__) |
| template <class T> |
| void setVector(Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| #endif |
| |
| #if defined(WIN32COMMON) || defined(__MVS__) |
| template <class T> |
| void setVector( Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector< T > &vect, |
| const UString &schemaName, |
| const UString &typeName) ; |
| #else |
| template <class T> |
| void setVector( Statement *stmt, unsigned int paramIndex, |
| const OCCI_STD_NAMESPACE::vector<T* > &vect, const UString |
| &schemaName, const UString &typeName) ; |
| #endif |
| |
| |
| /* Global method for array pins */ |
| template <class T> |
| void pinVectorOfRefs( const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, |
| OCCI_STD_NAMESPACE::vector<T* > &vectObj, |
| LockOptions lockOpt = OCCI_LOCK_NONE ); |
| |
| template <class T> |
| void pinVectorOfRefs( const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Ref<T> > &vect, |
| LockOptions lockOpt = OCCI_LOCK_NONE ); |
| |
| #ifdef ORAXB8_DEFINED |
| void readVectorOfBfiles(const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Bfile> &vec, |
| oraub8 *byte_amts, oraub8 *offsets, |
| unsigned char *buffers[], oraub8 *buffer_lens); |
| |
| void readVectorOfBlobs(const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Blob> &vec, |
| oraub8 *byte_amts, oraub8 *offsets, |
| unsigned char *buffers[], oraub8 *buffer_lens); |
| void writeVectorOfBlobs(const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Blob> &vec, |
| oraub8 *byte_amts, oraub8 *offsets, |
| unsigned char *buffers[], oraub8 *buffer_lens); |
| |
| void readVectorOfClobs(const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Clob> &vec, |
| oraub8 *byte_amts, oraub8 *char_amts, oraub8 *offsets, |
| unsigned char *buffers[], oraub8 *buffer_lens); |
| void writeVectorOfClobs(const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Clob> &vec, |
| oraub8 *byte_amts, oraub8 *char_amts, oraub8 *offsets, |
| unsigned char *buffers[], oraub8 *buffer_lens); |
| void readVectorOfClobs(const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Clob> &vec, |
| oraub8 *byte_amts, oraub8 *char_amts, oraub8 *offsets, |
| utext *buffers[], oraub8 *buffer_lens); |
| void writeVectorOfClobs(const Connection *conn, |
| OCCI_STD_NAMESPACE::vector<Clob> &vec, |
| oraub8 *byte_amts, oraub8 *char_amts, oraub8 *offsets, |
| utext *buffers[], oraub8 *buffer_lens); |
| #endif |
| |
| |
| /*--------------------------------------------------------------------------- |
| INTERNAL FUNCTIONS |
| ---------------------------------------------------------------------------*/ |
| |
| |
| } /* end of namespace occi */ |
| } /* end of namespace oracle */ |
| |
| |
| #endif /* _olint */ |
| |
| #endif /* OCCICOMMON_ORACLE */ |