| TerraLib 4.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

E:/Projetos_Primeiro_Semestre_2012/TerraView/terralib/src/terralib/drivers/Oracle/OCI/include/occiCommon.h
Go to the documentation of this file.

    00001 /* Copyright (c) 2000, 2003, Oracle Corporation.  All rights reserved.  */
    00002
    00003 /*
    00004    NAME
    00005      occiCommon.h - header file for doing forward references
    00006
    00007    DESCRIPTION
    00008      Just declare all the classes
    00009
    00010    RELATED DOCUMENTS
    00011      <note any documents related to this facility>
    00012
    00013    EXPORT FUNCTION(S)
    00014      <external functions declared for use outside package - one-line
    00015       descriptions>
    00016
    00017    INTERNAL FUNCTION(S)
    00018      <other external functions declared - one-line descriptions>
    00019
    00020    EXAMPLES
    00021
    00022    NOTES
    00023      <other useful comments, qualifications, etc.>
    00024
    00025    MODIFIED   (MM/DD/YY)
    00026    cparampa    09/03/03 - Added NotifyResult
    00027    rvallam     02/12/03 - modified BFloat/BDouble interface - BFloat/BDouble
    00028                           type is now a struct
    00029    shiyer      01/02/03 - add setVector(vector<UString>,string schema/type)
    00030    rvallam     11/19/02 - added objects support for interval classes
    00031    cparampa    12/11/02 - removed declaration for Payload
    00032    srseshad    11/14/02 - Add OCCIIBFLOAT/OCCIIBDOUBLE
    00033    cparampa    10/17/02 - prototypes for getVectorOf BDouble and BFloat taking
    00034                           anydata.
    00035    cparampa    10/09/02 - Declarations for AQ classes
    00036    rvallam     10/12/02 - added new method for array pin - pinVectorOfRefs
    00037    rvallam     10/10/02 - objects performance enhancement - modified
    00038                           getObject and getVector<T *> to take the
    00039                           schName and typeName of the object
    00040    rvallam     10/11/02 - added native float/double API - get(set)vector
    00041                           methods, added the enum values for BFLOAT and
    00042                           BDOUBLE and typecodes for the same
    00043    shiyer      07/31/02 - 10iR1, OCCI Globalization support
    00044    cparampa    08/27/02 - Added forward reference for StatelessConnnectionPool
    00045                           and StatelessConnectionPoolImpl
    00046    vvinay      06/25/02 - fix #2415021:const of string changed
    00047    aahluwal    06/03/02 - bug 2360115
    00048    gayyappa    12/27/01 - fix bug 2073482 - remove include <map>
    00049    gayyappa    10/29/01 - removed CharSet - bug 1853748
    00050    gayyappa    09/21/01 - #include <map>
    00051    rratnam     06/18/01 - fixed bug1777042 -- HP support for "std"
    00052    rvallam     06/11/01 - fixed NT porting problem with template functions-
    00053                           added generic method get(set)VectorOfRefs
    00054    rratnam     04/25/01 - fixed NT porting bug1673780
    00055    rvallam     04/12/01 - added dummy parameter in getVector of AnyData
    00056                           for PObject *
    00057    rratnam     04/10/01 - removed references to wstring
    00058    rvallam     04/02/01 - fixed linux porting bug 1654670
    00059    gayyappa    03/29/01 - remove get/set vector methods for int/float/double/
    00060                           unsigned int for anydata.
    00061    rvallam     03/20/01 - added dummy parameter for Type in getVector for
    00062                           void * in statement and ResultSet
    00063                           added setVector of Ref<T> and Number prototype
    00064                           for statement
    00065    gayyappa    03/15/01 - added parameter to getvector on anydata with void*.
    00066    rratnam     03/13/01 - added virtual destructor to RefCounted
    00067    rkasamse    03/15/01 - add an arg, Type, to getVector of void*
    00068    rratnam     03/06/01 - removed references() from RefCounted
    00069    slari       02/15/01 - suppress lint warnings
    00070    rratnam     02/12/01 - removed #include <iostream.h>
    00071    rvallam     02/07/01 - added enum OCCI_MAX_PREFETCH_DEPTH
    00072    gayyappa    01/15/01 - change ub4 to unsigned int for
    00073                           get/set vector methods..
    00074    gayyappa    01/03/01 - put "using namespace std" in a ifndef
    00075    gayyappa    12/14/00 - add forward declaration for ResultSetImpl
    00076                           and StatementImpl.
    00077                           Remove commented #defines
    00078    gayyappa    11/17/00 - change Session to Connection
    00079    gayyappa    09/12/00 - remove OCCI_SQLT_INT, OCCI_SQLT_FLT
    00080                           remove OCCIUNSIGNED_CHAR, OCCISHORT,
    00081                           OCCIUNSIGNED_SHORT, OCCILONG ,OCCI_LONGDOUBLE,
    00082                           OCCI_UNSIGNEDLONG  from enum Type.
    00083    gayyappa    08/25/00 - add const to get/set vector mthds of anydata.
    00084    rvallam     08/10/00 - updated Type enum
    00085    slari       08/04/00 - add OCCIROWID and OCCICURSOR
    00086    rkasamse    08/04/00 - add setVector methods
    00087    slari       07/24/00 - add BytesImpl
    00088    rratnam     07/25/00 - Added forward declarations for LobStreamImpl,
    00089                           ConnectionPool[Impl], removed those for
    00090                           Connection[Impl]
    00091    rkasamse    07/28/00 - add getVector(ResultSet*...) methods
    00092    rratnam     06/14/00 - Added forward declaration for RefImpl,
    00093                           added DefaultCharSet to the CharSet
    00094                           enum
    00095    rratnam     06/13/00 - Added DefaultCharSet to the CharSet enum
    00096    kmohan      05/31/00 - RefCounted no more templated
    00097    rratnam     22/05/00 - Added forward declaration of ConnectionImpl, and the
    00098                          LobOpenMode enum
    00099    kmohan      05/05/00 - Added global routine prototypes
    00100    rkasamse    05/23/00 -
    00101    slari       04/28/00 - add forward declaration of SQLExceptionImpl
    00102    kmohan      04/19/00 - Added enums Type,CharSet,CharSetForm
    00103    gayyappa    04/18/00 - removed checkStatus. added checkOCICall and
    00104                           createSQLEXception functions
    00105    kmohan      04/11/00 - Creation
    00106
    00107 */
    00108
    00109
    00110 #ifndef OCCICOMMON_ORACLE
    00111 # define OCCICOMMON_ORACLE
    00112
    00113 #ifndef _olint
    00114
    00115 #ifndef OCI_ORACLE
    00116 #include <oci.h>
    00117 #endif
    00118
    00119 #ifndef ORASTRINGSTL
    00120 #define ORASTRINGSTL
    00121 #include <string>
    00122 #endif
    00123
    00124 #ifndef ORAVECTORSTL
    00125 #include <vector>
    00126 #define ORAVECTORSTL
    00127 #endif
    00128
    00129 #ifndef ORALISTSTL
    00130 #include <list>
    00131 #define ORALISTSTL
    00132 #endif
    00133
    00134 #define OCCI_STD_NAMESPACE std
    00135 #define OCCI_HAVE_STD_NAMESPACE 1
    00136
    00137 namespace oracle {
    00138 namespace occi {
    00139
    00140 //UString is the class for UTF16 characterset
    00141 typedef OCCI_STD_NAMESPACE::basic_string<utext> UString;
    00142
    00143 class Environment;
    00144 class EnvironmentImpl;
    00145 class Connection;
    00146 class ConnectionImpl;
    00147 class ConnectionPool;
    00148 class ConnectionPoolImpl;
    00149 class StatelessConnectionPool;
    00150 class StatelessConnectionPoolImpl;
    00151 class Statement;
    00152 class StatementImpl;
    00153 class ResultSet;
    00154 class ResultSetImpl;
    00155 class SQLException;
    00156 class SQLExceptionImpl;
    00157 class Stream;
    00158 class PObject;
    00159 class Number;
    00160 class Bytes;
    00161 class BytesImpl;
    00162 class Date;
    00163 class Timestamp;
    00164
    00165 class MetaData;
    00166 class MetaDataImpl;
    00167 template <class T> class Ref;
    00168 class RefImpl;
    00169 class RefAny;
    00170 class Blob;
    00171 class Bfile;
    00172 class Clob;
    00173 class LobStreamImpl;
    00174 class AnyData;
    00175 class AnyDataImpl;
    00176 class Map;
    00177 class IntervalDS;
    00178 class IntervalYM;
    00179
    00180 namespace aq {
    00181 class Message;
    00182 class MessageImpl;
    00183 class Agent;
    00184 class AgentImpl;
    00185 class Producer;
    00186 class ProducerImpl;
    00187 class Consumer;
    00188 class ConsumerImpl;
    00189 class Listener;
    00190 class Subscription;
    00191 class SubscriptionImpl;
    00192 class NotifyResult;
    00193 }
    00194
    00195 typedef struct BFloat BFloat;
    00196 typedef struct BDouble BDouble;
    00197
    00198 /*---------------------------------------------------------------------------
    00199                            ENUMERATORS
    00200   ---------------------------------------------------------------------------*/
    00201 enum Type
    00202 {
    00203  OCCI_SQLT_CHR=SQLT_CHR,
    00204  OCCI_SQLT_NUM=SQLT_NUM,
    00205  OCCIINT = SQLT_INT,
    00206  OCCIFLOAT = SQLT_FLT,
    00207  OCCIBFLOAT = SQLT_BFLOAT,
    00208  OCCIBDOUBLE = SQLT_BDOUBLE,
    00209  OCCIIBFLOAT = SQLT_IBFLOAT,
    00210  OCCIIBDOUBLE = SQLT_IBDOUBLE,
    00211  OCCI_SQLT_STR=SQLT_STR,
    00212  OCCI_SQLT_VNU=SQLT_VNU,
    00213  OCCI_SQLT_PDN=SQLT_PDN,
    00214  OCCI_SQLT_LNG=SQLT_LNG,
    00215  OCCI_SQLT_VCS=SQLT_VCS,
    00216  OCCI_SQLT_NON=SQLT_NON,
    00217  OCCI_SQLT_RID=SQLT_RID,
    00218  OCCI_SQLT_DAT=SQLT_DAT,
    00219  OCCI_SQLT_VBI=SQLT_VBI,
    00220  OCCI_SQLT_BIN=SQLT_BIN,
    00221  OCCI_SQLT_LBI=SQLT_LBI,
    00222  OCCIUNSIGNED_INT = SQLT_UIN,
    00223  OCCI_SQLT_SLS=SQLT_SLS,
    00224  OCCI_SQLT_LVC=SQLT_LVC,
    00225  OCCI_SQLT_LVB=SQLT_LVB,
    00226  OCCI_SQLT_AFC=SQLT_AFC,
    00227  OCCI_SQLT_AVC=SQLT_AVC,
    00228  OCCI_SQLT_CUR=SQLT_CUR,
    00229  OCCI_SQLT_RDD=SQLT_RDD,
    00230  OCCI_SQLT_LAB=SQLT_LAB,
    00231  OCCI_SQLT_OSL=SQLT_OSL,
    00232  OCCI_SQLT_NTY=SQLT_NTY,
    00233  OCCI_SQLT_REF=SQLT_REF,
    00234  OCCI_SQLT_CLOB=SQLT_CLOB,
    00235  OCCI_SQLT_BLOB=SQLT_BLOB,
    00236  OCCI_SQLT_BFILEE=SQLT_BFILEE,
    00237  OCCI_SQLT_CFILEE=SQLT_CFILEE,
    00238  OCCI_SQLT_RSET=SQLT_RSET,
    00239  OCCI_SQLT_NCO=SQLT_NCO,
    00240  OCCI_SQLT_VST=SQLT_VST,
    00241  OCCI_SQLT_ODT=SQLT_ODT,
    00242  OCCI_SQLT_DATE=SQLT_DATE,
    00243  OCCI_SQLT_TIME=SQLT_TIME,
    00244  OCCI_SQLT_TIME_TZ=SQLT_TIME_TZ,
    00245  OCCI_SQLT_TIMESTAMP=SQLT_TIMESTAMP,
    00246  OCCI_SQLT_TIMESTAMP_TZ=SQLT_TIMESTAMP_TZ,
    00247  OCCI_SQLT_INTERVAL_YM=SQLT_INTERVAL_YM,
    00248  OCCI_SQLT_INTERVAL_DS=SQLT_INTERVAL_DS,
    00249  OCCI_SQLT_TIMESTAMP_LTZ=SQLT_TIMESTAMP_LTZ,
    00250  OCCI_SQLT_FILE=SQLT_FILE,
    00251  OCCI_SQLT_CFILE=SQLT_CFILE,
    00252  OCCI_SQLT_BFILE=SQLT_BFILE,
    00253
    00254  OCCICHAR = 32 *1024,
    00255  OCCIDOUBLE,
    00256  OCCIBOOL,
    00257  OCCIANYDATA ,
    00258  OCCINUMBER,
    00259  OCCIBLOB,
    00260  OCCIBFILE,
    00261  OCCIBYTES,
    00262  OCCICLOB ,
    00263  OCCIVECTOR,
    00264  OCCIMETADATA,
    00265  OCCIPOBJECT,
    00266  OCCIREF ,
    00267  OCCIREFANY,
    00268  OCCISTRING  ,
    00269  OCCISTREAM  ,
    00270  OCCIDATE  ,
    00271  OCCIINTERVALDS  ,
    00272  OCCIINTERVALYM  ,
    00273  OCCITIMESTAMP,
    00274  OCCIROWID,
    00275  OCCICURSOR
    00276
    00277
    00278 };
    00279
    00280 enum LockOptions {OCCI_LOCK_NONE = OCI_LOCK_NONE,
    00281                       OCCI_LOCK_X = OCI_LOCK_X,
    00282                       OCCI_LOCK_X_NOWAIT = OCI_LOCK_X_NOWAIT
    00283                      };
    00284
    00285 enum {OCCI_MAX_PREFETCH_DEPTH = UB4MAXVAL};
    00286
    00287 enum TypeCode
    00288 {
    00289
    00290 OCCI_TYPECODE_REF = OCI_TYPECODE_REF,
    00291 OCCI_TYPECODE_DATE = OCI_TYPECODE_DATE,
    00292 OCCI_TYPECODE_REAL = OCI_TYPECODE_REAL,
    00293 OCCI_TYPECODE_DOUBLE = OCI_TYPECODE_DOUBLE,
    00294 OCCI_TYPECODE_BDOUBLE = OCI_TYPECODE_BDOUBLE,
    00295 OCCI_TYPECODE_FLOAT = OCI_TYPECODE_FLOAT,
    00296 OCCI_TYPECODE_BFLOAT = OCI_TYPECODE_BFLOAT,
    00297 OCCI_TYPECODE_NUMBER = OCI_TYPECODE_NUMBER,
    00298 OCCI_TYPECODE_DECIMAL = OCI_TYPECODE_DECIMAL,
    00299 OCCI_TYPECODE_OCTET = OCI_TYPECODE_OCTET,
    00300 OCCI_TYPECODE_INTEGER = OCI_TYPECODE_INTEGER,
    00301 OCCI_TYPECODE_SMALLINT= OCI_TYPECODE_SMALLINT,
    00302 OCCI_TYPECODE_RAW = OCI_TYPECODE_RAW,
    00303 OCCI_TYPECODE_VARCHAR2 = OCI_TYPECODE_VARCHAR2,
    00304 OCCI_TYPECODE_VARCHAR = OCI_TYPECODE_VARCHAR,
    00305 OCCI_TYPECODE_CHAR = OCI_TYPECODE_CHAR,
    00306 OCCI_TYPECODE_VARRAY= OCI_TYPECODE_VARRAY,
    00307 OCCI_TYPECODE_TABLE = OCI_TYPECODE_TABLE,
    00308 OCCI_TYPECODE_CLOB = OCI_TYPECODE_CLOB,
    00309 OCCI_TYPECODE_BLOB = OCI_TYPECODE_BLOB,
    00310 OCCI_TYPECODE_BFILE = OCI_TYPECODE_BFILE,
    00311 OCCI_TYPECODE_OBJECT = OCI_TYPECODE_OBJECT,
    00312 OCCI_TYPECODE_NAMEDCOLLECTION = OCI_TYPECODE_NAMEDCOLLECTION
    00313 };
    00314
    00315 enum CharSetForm
    00316 {
    00317   OCCI_SQLCS_IMPLICIT = SQLCS_IMPLICIT // use local db char set
    00318  ,OCCI_SQLCS_NCHAR = SQLCS_NCHAR // use local db nchar set
    00319  ,OCCI_SQLCS_EXPLICIT = SQLCS_EXPLICIT // char set explicitly specified
    00320  ,OCCI_SQLCS_FLEXIBLE = SQLCS_FLEXIBLE // pl/sql flexible parameter
    00321 };
    00322
    00323 enum LobOpenMode
    00324 { OCCI_LOB_READONLY = OCI_LOB_READONLY
    00325  ,OCCI_LOB_READWRITE = OCI_LOB_READWRITE
    00326 };
    00327
    00328 class RefCounted {
    00329 public:
    00330     RefCounted();
    00331     virtual ~RefCounted(){}
    00332     const RefCounted * newRef() const;
    00333     void deleteRef() const;
    00334
    00335 private:
    00336
    00337     void onZeroReferences();
    00338     unsigned long references_;
    00339   };
    00340
    00341 template <class T>
    00342 class ConstPtr
    00343 {
    00344
    00345 public:
    00346
    00347 ConstPtr( const T* ptr = 0 );
    00348 ConstPtr( const ConstPtr<T>& mp );
    00349 ~ConstPtr();
    00350 const T * operator->() const;
    00351 const T* rawPtr() const;
    00352
    00353 #ifdef MEMBER_TEMPLATE
    00354 template<class OtherType> operator ConstPtr<OtherType>();
    00355 #endif
    00356
    00357 protected:
    00358
    00359 void operator=( const ConstPtr<T>& mp );
    00360 const T* rawPtr_;
    00361
    00362 };
    00363
    00364 template <class T>
    00365 class Ptr : public ConstPtr<T> {
    00366
    00367 public:
    00368
    00369 Ptr( T* ptr = 0 );
    00370 Ptr( const Ptr<T>& mp );
    00371 void operator=( const Ptr<T>& mp );
    00372 const T * operator->() const;
    00373 T * operator->();
    00374 T* rawPtr() ;
    00375 const T* rawPtr() const;
    00376
    00377
    00378
    00379 #ifdef MEMBER_TEMPLATE
    00380   template<class OtherType>
    00381   operator Ptr<OtherType>();
    00382 #endif
    00383
    00384 };
    00385
    00386 /*---------------------------------------------------------------------------
    00387                            EXPORT FUNCTIONS
    00388   ---------------------------------------------------------------------------*/
    00389
    00390   void getVector(const AnyData &any,
    00391   OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect);
    00392   void getVector(const AnyData &any,
    00393   OCCI_STD_NAMESPACE::vector<UString> &vect);
    00394   void getVector( const AnyData &any,
    00395   OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
    00396   void getVector( const AnyData &any,
    00397   OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
    00398   void getVector( const AnyData &any,
    00399   OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
    00400   void getVector( const AnyData &any,
    00401   OCCI_STD_NAMESPACE::vector<Number> &vect) ;
    00402   void getVector( const AnyData &any,
    00403   OCCI_STD_NAMESPACE::vector<BFloat> &vect);
    00404   void getVector(const AnyData &any,
    00405   OCCI_STD_NAMESPACE::vector<BDouble> &vect);
    00406   void getVector( const AnyData &any,
    00407   OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
    00408   void getVector( const AnyData &any,
    00409   OCCI_STD_NAMESPACE::vector<Date> &vect) ;
    00410   void getVector( const AnyData &any,
    00411   OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
    00412   void getVector( const AnyData &any,
    00413   OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
    00414   void getVector( const AnyData &any,
    00415   OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
    00416   template <class T>
    00417   void getVectorOfRefs( const AnyData &any,
    00418   OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
    00419   #ifndef WIN32COMMON
    00420   template <class T>
    00421   void getVector(const AnyData &any,
    00422   OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
    00423   #endif
    00424   #ifdef WIN32COMMON
    00425   template <class T>
    00426   void getVector(const AnyData &any,
    00427   OCCI_STD_NAMESPACE::vector<T> &vect,
    00428   void *(*rSQL)(void *));
    00429   #else
    00430   template <class T>
    00431   void getVector(const AnyData &any,
    00432   OCCI_STD_NAMESPACE::vector<T *> &vect,
    00433   void *(*rSQL)(void *));
    00434   #endif
    00435
    00436   void setVector( AnyData &any,
    00437   const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
    00438   void setVector( AnyData &any,
    00439   const OCCI_STD_NAMESPACE::vector<UString> &vect) ;
    00440   void setVector( AnyData &any,
    00441   const OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
    00442   void setVector( AnyData &any,
    00443   const OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
    00444   void setVector( AnyData &any,
    00445   const OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
    00446   void setVector( AnyData &any,
    00447   const OCCI_STD_NAMESPACE::vector<BFloat> &vect) ;
    00448   void setVector( AnyData &any,
    00449   const OCCI_STD_NAMESPACE::vector<BDouble> &vect) ;
    00450   void setVector( AnyData &any,
    00451   const OCCI_STD_NAMESPACE::vector<Number> &vect) ;
    00452   void setVector( AnyData &any,
    00453   const OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;
    00454   void setVector( AnyData &any,
    00455   const OCCI_STD_NAMESPACE::vector<Date> &vect) ;
    00456   void setVector( AnyData &any,
    00457   const OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
    00458   void setVector( AnyData &any,
    00459   const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
    00460   void setVector( AnyData &any,
    00461   const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
    00462   template <class T>
    00463   void setVectorOfRefs( AnyData &any,
    00464   const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
    00465   #ifndef WIN32COMMON
    00466   template <class T>
    00467   void setVector( AnyData &any,
    00468   const OCCI_STD_NAMESPACE::vector< Ref<T> > &vect) ;
    00469   #endif
    00470   #ifdef WIN32COMMON
    00471   template <class T>
    00472   void setVector( AnyData &any,
    00473   const OCCI_STD_NAMESPACE::vector< T > &vect) ;
    00474   #else
    00475   template <class T>
    00476   void setVector( AnyData &any,
    00477   const OCCI_STD_NAMESPACE::vector< T* > &vect) ;
    00478   #endif
    00479
    00480   void getVector( ResultSet *rs, unsigned int index,
    00481   OCCI_STD_NAMESPACE::vector<int> &vect) ;
    00482   void getVector( ResultSet *rs, unsigned int index,
    00483   OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
    00484   void getVector( ResultSet *rs, unsigned int index,
    00485   OCCI_STD_NAMESPACE::vector<UString> &vect) ;//UTF16 support
    00486   void getVector(ResultSet  *rs, unsigned int,
    00487   OCCI_STD_NAMESPACE::vector<unsigned int> &vect) ;
    00488   void getVector(ResultSet  *rs, unsigned int,
    00489   OCCI_STD_NAMESPACE::vector<float> &vect);
    00490   void getVector(ResultSet  *rs, unsigned int,
    00491   OCCI_STD_NAMESPACE::vector<BFloat> &vect);
    00492   void getVector(ResultSet  *rs, unsigned int,
    00493   OCCI_STD_NAMESPACE::vector<double> &vect);
    00494   void getVector(ResultSet  *rs, unsigned int,
    00495   OCCI_STD_NAMESPACE::vector<BDouble> &vect);
    00496   void getVector(ResultSet  *rs, unsigned int,
    00497   OCCI_STD_NAMESPACE::vector<Date> &vect) ;
    00498   void getVector(ResultSet  *rs, unsigned int,
    00499   OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
    00500   void getVector(ResultSet  *rs, unsigned int,
    00501   OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
    00502   void getVector(ResultSet  *rs, unsigned int,
    00503   OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
    00504   void getVector(ResultSet  *rs, unsigned int,
    00505   OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
    00506   void getVector(ResultSet  *rs, unsigned int,
    00507   OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
    00508   void getVector(ResultSet  *rs, unsigned int,
    00509   OCCI_STD_NAMESPACE::vector<Number> &vect) ;
    00510   void getVector(ResultSet  *rs, unsigned int,
    00511   OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
    00512   void getVector(ResultSet  *rs, unsigned int,
    00513   OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
    00514   template <class T>
    00515   void getVectorOfRefs(ResultSet  *rs, unsigned int,
    00516   OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
    00517   #ifndef WIN32COMMON
    00518   template <class T>
    00519   void getVector(ResultSet  *rs, unsigned int,
    00520   OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
    00521   #endif
    00522   #ifdef WIN32COMMON
    00523   template <class T>
    00524   void getVector( ResultSet *rs, unsigned int index,
    00525   OCCI_STD_NAMESPACE::vector< T > &vect) ;
    00526   #else
    00527   template <class T>
    00528   void getVector( ResultSet *rs, unsigned int index,
    00529   OCCI_STD_NAMESPACE::vector< T* > &vect) ;
    00530   #endif
    00531
    00532
    00533   void getVector(Statement  *rs, unsigned int,
    00534   OCCI_STD_NAMESPACE::vector<RefAny> &vect) ;
    00535   void getVector(Statement  *rs, unsigned int,
    00536   OCCI_STD_NAMESPACE::vector<Blob> &vect) ;
    00537   void getVector(Statement  *rs, unsigned int,
    00538   OCCI_STD_NAMESPACE::vector<Clob> &vect) ;
    00539   void getVector(Statement  *rs, unsigned int,
    00540   OCCI_STD_NAMESPACE::vector<Bfile> &vect) ;
    00541   void getVector(Statement  *rs, unsigned int,
    00542   OCCI_STD_NAMESPACE::vector<Number> &vect) ;
    00543   void getVector(Statement  *rs, unsigned int,
    00544   OCCI_STD_NAMESPACE::vector<IntervalYM> &vect) ;
    00545   void getVector(Statement  *rs, unsigned int,
    00546   OCCI_STD_NAMESPACE::vector<IntervalDS> &vect) ;
    00547   void getVector( Statement *rs, unsigned int index,
    00548   OCCI_STD_NAMESPACE::vector<int> &vect) ;
    00549   void getVector( Statement *rs, unsigned int index,
    00550   OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect) ;
    00551   void getVector( Statement *rs, unsigned int index,
    00552   OCCI_STD_NAMESPACE::vector<UString> &vect) ;//UTF16 support
    00553   void getVector(Statement  *rs, unsigned int,
    00554   OCCI_STD_NAMESPACE::vector<unsigned int> &vect) ;
    00555   void getVector(Statement  *rs, unsigned int,
    00556   OCCI_STD_NAMESPACE::vector<float> &vect) ;
    00557   void getVector(Statement  *rs, unsigned int,
    00558   OCCI_STD_NAMESPACE::vector<BFloat> &vect) ;
    00559   void getVector(Statement  *rs, unsigned int,
    00560   OCCI_STD_NAMESPACE::vector<double> &vect) ;
    00561   void getVector(Statement  *rs, unsigned int,
    00562   OCCI_STD_NAMESPACE::vector<BDouble> &vect) ;
    00563   void getVector(Statement  *rs, unsigned int,
    00564   OCCI_STD_NAMESPACE::vector<Date> &vect) ;
    00565   void getVector(Statement  *rs, unsigned int,
    00566   OCCI_STD_NAMESPACE::vector<Timestamp> &vect) ;
    00567   template <class T>
    00568   void getVectorOfRefs(Statement  *rs, unsigned int,
    00569   OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
    00570   #ifndef WIN32COMMON
    00571   template <class T>
    00572   void getVector(Statement  *rs, unsigned int,
    00573   OCCI_STD_NAMESPACE::vector<Ref<T> > &vect) ;
    00574   #endif
    00575   #ifdef WIN32COMMON
    00576   template <class T>
    00577   void getVector( Statement *rs, unsigned int index,
    00578   OCCI_STD_NAMESPACE::vector< T > &vect) ;
    00579   #else
    00580   template <class T>
    00581   void getVector( Statement *rs, unsigned int index,
    00582   OCCI_STD_NAMESPACE::vector< T* > &vect) ;
    00583   #endif
    00584
    00585
    00586   void setVector(Statement *stmt, unsigned int paramIndex,
    00587                  const OCCI_STD_NAMESPACE::vector<int> &vect,
    00588                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00589   void setVector(Statement *stmt, unsigned int paramIndex,
    00590                  const OCCI_STD_NAMESPACE::vector<unsigned int> &vect,
    00591                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00592   void setVector(Statement *stmt, unsigned int paramIndex,
    00593                  const OCCI_STD_NAMESPACE::vector<double> &vect,
    00594                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00595   void setVector(Statement *stmt, unsigned int paramIndex,
    00596                  const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
    00597                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00598   void setVector(Statement *stmt, unsigned int paramIndex,
    00599                  const OCCI_STD_NAMESPACE::vector<float> &vect,
    00600                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00601   void setVector(Statement *stmt, unsigned int paramIndex,
    00602                  const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
    00603                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00604   void setVector(Statement *stmt, unsigned int paramIndex,
    00605                  const OCCI_STD_NAMESPACE::vector<Number> &vect,
    00606                  const OCCI_STD_NAMESPACE::string &sqltype);
    00607   void setVector(Statement *stmt, unsigned int paramIndex,
    00608          const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect,
    00609          const OCCI_STD_NAMESPACE::string &sqltype) ;
    00610   void setVector(Statement *stmt, unsigned int paramIndex,
    00611                  const OCCI_STD_NAMESPACE::vector<RefAny> &vect,
    00612                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00613   void setVector(Statement *stmt, unsigned int paramIndex,
    00614                  const OCCI_STD_NAMESPACE::vector<Blob> &vect,
    00615                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00616   void setVector(Statement *stmt, unsigned int paramIndex,
    00617                  const OCCI_STD_NAMESPACE::vector<Clob> &vect,
    00618                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00619   void setVector(Statement *stmt, unsigned int paramIndex,
    00620                  const OCCI_STD_NAMESPACE::vector<Bfile> &vect,
    00621                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00622   void setVector(Statement *stmt, unsigned int paramIndex,
    00623                  const OCCI_STD_NAMESPACE::vector<Timestamp> &vect,
    00624                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00625   void setVector(Statement *stmt, unsigned int paramIndex,
    00626                  const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect,
    00627                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00628   void setVector(Statement *stmt, unsigned int paramIndex,
    00629                  const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect,
    00630                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00631   void setVector(Statement *stmt, unsigned int paramIndex,
    00632                  const OCCI_STD_NAMESPACE::vector<Date> &vect,
    00633                  const OCCI_STD_NAMESPACE::string &sqltype) ;
    00634   template  <class T>
    00635   void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
    00636   const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
    00637   const OCCI_STD_NAMESPACE::string &sqltype) ;
    00638   #ifndef WIN32COMMON
    00639   template  <class T>
    00640   void setVector(Statement *stmt, unsigned int paramIndex,
    00641   const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
    00642   const OCCI_STD_NAMESPACE::string &sqltype) ;
    00643   #endif
    00644   #ifdef WIN32COMMON
    00645   template <class T>
    00646   void setVector( Statement *stmt, unsigned int paramIndex,
    00647                   const OCCI_STD_NAMESPACE::vector< T > &vect,
    00648                   const OCCI_STD_NAMESPACE::string   &sqltype) ;
    00649   #else
    00650   template <class T>
    00651   void setVector( Statement *stmt, unsigned int paramIndex,
    00652                   const OCCI_STD_NAMESPACE::vector<T* > &vect,
    00653                   const OCCI_STD_NAMESPACE::string &sqltype) ;
    00654   #endif
    00655
    00656 /* -----------------------------------------------------------------------------------
    00657    Statement setVector functions, schema & type separate arguments - multibyte support
    00658    -----------------------------------------------------------------------------------
    00659 */
    00660   void setVector(Statement *stmt, unsigned int paramIndex,
    00661                  const OCCI_STD_NAMESPACE::vector<int> &vect,
    00662                  const OCCI_STD_NAMESPACE::string &schemaName,
    00663                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00664   void setVector(Statement *stmt, unsigned int paramIndex,
    00665                  const OCCI_STD_NAMESPACE::vector<unsigned int> &vect,
    00666                  const OCCI_STD_NAMESPACE::string &schemaName,
    00667                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00668   void setVector(Statement *stmt, unsigned int paramIndex,
    00669                  const OCCI_STD_NAMESPACE::vector<double> &vect,
    00670                  const OCCI_STD_NAMESPACE::string &schemaName,
    00671                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00672   void setVector(Statement *stmt, unsigned int paramIndex,
    00673                  const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
    00674                  const OCCI_STD_NAMESPACE::string &schemaName,
    00675                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00676   void setVector(Statement *stmt, unsigned int paramIndex,
    00677                  const OCCI_STD_NAMESPACE::vector<float> &vect,
    00678                  const OCCI_STD_NAMESPACE::string &schemaName,
    00679                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00680   void setVector(Statement *stmt, unsigned int paramIndex,
    00681                  const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
    00682                  const OCCI_STD_NAMESPACE::string &schemaName,
    00683                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00684   void setVector(Statement *stmt, unsigned int paramIndex,
    00685                  const OCCI_STD_NAMESPACE::vector<Number> &vect,
    00686                  const OCCI_STD_NAMESPACE::string &schemaName,
    00687                  const OCCI_STD_NAMESPACE::string &typeName);
    00688   void setVector(Statement *stmt, unsigned int paramIndex,
    00689          const OCCI_STD_NAMESPACE::vector<OCCI_STD_NAMESPACE::string> &vect,
    00690          const OCCI_STD_NAMESPACE::string &schemaName,
    00691          const OCCI_STD_NAMESPACE::string &typeName) ;
    00692   void setVector(Statement *stmt, unsigned int paramIndex,
    00693                  const OCCI_STD_NAMESPACE::vector<RefAny> &vect,
    00694                  const OCCI_STD_NAMESPACE::string &schemaName,
    00695                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00696   void setVector(Statement *stmt, unsigned int paramIndex,
    00697                  const OCCI_STD_NAMESPACE::vector<Blob> &vect,
    00698                  const OCCI_STD_NAMESPACE::string &schemaName,
    00699                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00700   void setVector(Statement *stmt, unsigned int paramIndex,
    00701                  const OCCI_STD_NAMESPACE::vector<Clob> &vect,
    00702                  const OCCI_STD_NAMESPACE::string &schemaName,
    00703                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00704   void setVector(Statement *stmt, unsigned int paramIndex,
    00705                  const OCCI_STD_NAMESPACE::vector<Bfile> &vect,
    00706                  const OCCI_STD_NAMESPACE::string &schemaName,
    00707                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00708   void setVector(Statement *stmt, unsigned int paramIndex,
    00709                  const OCCI_STD_NAMESPACE::vector<Timestamp> &vect,
    00710                  const OCCI_STD_NAMESPACE::string &schemaName,
    00711                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00712   void setVector(Statement *stmt, unsigned int paramIndex,
    00713                  const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect,
    00714                  const OCCI_STD_NAMESPACE::string &schemaName,
    00715                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00716   void setVector(Statement *stmt, unsigned int paramIndex,
    00717                  const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect,
    00718                  const OCCI_STD_NAMESPACE::string &schemaName,
    00719                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00720   void setVector(Statement *stmt, unsigned int paramIndex,
    00721                  const OCCI_STD_NAMESPACE::vector<Date> &vect,
    00722                  const OCCI_STD_NAMESPACE::string &schemaName,
    00723                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00724   template  <class T>
    00725   void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
    00726   const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
    00727   const OCCI_STD_NAMESPACE::string &schemaName,
    00728   const OCCI_STD_NAMESPACE::string &typeName) ;
    00729
    00730   #ifndef WIN32COMMON
    00731   template  <class T>
    00732   void setVector(Statement *stmt, unsigned int paramIndex,
    00733   const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
    00734   const OCCI_STD_NAMESPACE::string &schemaName,
    00735   const OCCI_STD_NAMESPACE::string &typeName) ;
    00736   #endif
    00737
    00738   #ifdef WIN32COMMON
    00739   template <class T>
    00740   void setVector( Statement *stmt, unsigned int paramIndex,
    00741                   const OCCI_STD_NAMESPACE::vector< T > &vect,
    00742                   const OCCI_STD_NAMESPACE::string &schemaName,
    00743                   const OCCI_STD_NAMESPACE::string &typeName) ;
    00744   #else
    00745   template <class T>
    00746   void setVector( Statement *stmt, unsigned int paramIndex,
    00747   const OCCI_STD_NAMESPACE::vector<T* > &vect, const OCCI_STD_NAMESPACE::string
    00748   &schemaName, const OCCI_STD_NAMESPACE::string &typeName) ;
    00749   #endif
    00750
    00751 /*-------------------------------------------------------------------------
    00752   Statement setVector function - UTF16 support
    00753   -------------------------------------------------------------------------
    00754 */
    00755   void setVector(Statement *stmt, unsigned int paramIndex,
    00756                  const OCCI_STD_NAMESPACE::vector<int> &vect,
    00757                  const UString &schemaName,
    00758                  const UString &typeName) ;
    00759   void setVector(Statement *stmt, unsigned int paramIndex,
    00760                  const OCCI_STD_NAMESPACE::vector<unsigned int> &vect,
    00761                  const UString &schemaName,
    00762                  const UString &typeName) ;
    00763   void setVector(Statement *stmt, unsigned int paramIndex,
    00764                  const OCCI_STD_NAMESPACE::vector<double> &vect,
    00765                  const UString &schemaName,
    00766                  const UString &typeName) ;
    00767   void setVector(Statement *stmt, unsigned int paramIndex,
    00768                  const OCCI_STD_NAMESPACE::vector<BDouble> &vect,
    00769                  const UString &schemaName,
    00770                  const UString &typeName) ;
    00771   void setVector(Statement *stmt, unsigned int paramIndex,
    00772                  const OCCI_STD_NAMESPACE::vector<float> &vect,
    00773                  const UString &schemaName,
    00774                  const UString &typeName) ;
    00775   void setVector(Statement *stmt, unsigned int paramIndex,
    00776                  const OCCI_STD_NAMESPACE::vector<BFloat> &vect,
    00777                  const UString &schemaName,
    00778                  const UString &typeName) ;
    00779   void setVector(Statement *stmt, unsigned int paramIndex,
    00780                  const OCCI_STD_NAMESPACE::vector<Number> &vect,
    00781                  const UString &schemaName,
    00782                  const UString &typeName);
    00783   void setVector(Statement *stmt, unsigned int paramIndex,
    00784                  const OCCI_STD_NAMESPACE::vector<UString> &vect,
    00785                  const UString &schemaName,
    00786                  const UString &typeName) ;
    00787   void setVector(Statement *stmt, unsigned int paramIndex,
    00788                  const OCCI_STD_NAMESPACE::vector<UString> &vect,
    00789                  const OCCI_STD_NAMESPACE::string &schemaName,
    00790                  const OCCI_STD_NAMESPACE::string &typeName) ;
    00791   void setVector(Statement *stmt, unsigned int paramIndex,
    00792                  const OCCI_STD_NAMESPACE::vector<RefAny> &vect,
    00793                  const UString &schemaName,
    00794                  const UString &typeName) ;
    00795   void setVector(Statement *stmt, unsigned int paramIndex,
    00796                  const OCCI_STD_NAMESPACE::vector<Blob> &vect,
    00797                  const UString &schemaName,
    00798                  const UString &typeName) ;
    00799   void setVector(Statement *stmt, unsigned int paramIndex,
    00800                  const OCCI_STD_NAMESPACE::vector<Clob> &vect,
    00801                  const UString &schemaName,
    00802                  const UString &typeName) ;
    00803   void setVector(Statement *stmt, unsigned int paramIndex,
    00804                  const OCCI_STD_NAMESPACE::vector<Bfile> &vect,
    00805                  const UString &schemaName,
    00806                  const UString &typeName) ;
    00807   void setVector(Statement *stmt, unsigned int paramIndex,
    00808                  const OCCI_STD_NAMESPACE::vector<Timestamp> &vect,
    00809                  const UString &schemaName,
    00810                  const UString &typeName) ;
    00811   void setVector(Statement *stmt, unsigned int paramIndex,
    00812                  const OCCI_STD_NAMESPACE::vector<IntervalDS> &vect,
    00813                  const UString &schemaName,
    00814                  const UString &typeName) ;
    00815   void setVector(Statement *stmt, unsigned int paramIndex,
    00816                  const OCCI_STD_NAMESPACE::vector<IntervalYM> &vect,
    00817                  const UString &schemaName,
    00818                  const UString &typeName) ;
    00819   void setVector(Statement *stmt, unsigned int paramIndex,
    00820                  const OCCI_STD_NAMESPACE::vector<Date> &vect,
    00821                  const UString &schemaName,
    00822                  const UString &typeName) ;
    00823   template  <class T>
    00824   void setVectorOfRefs(Statement *stmt, unsigned int paramIndex,
    00825   const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
    00826   const UString &schemaName,
    00827   const UString &typeName) ;
    00828
    00829   #ifndef WIN32COMMON
    00830   template  <class T>
    00831   void setVector(Statement *stmt, unsigned int paramIndex,
    00832   const OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
    00833   const UString &schemaName,
    00834   const UString &typeName) ;
    00835   #endif
    00836
    00837   #ifdef WIN32COMMON
    00838   template <class T>
    00839   void setVector( Statement *stmt, unsigned int paramIndex,
    00840                   const OCCI_STD_NAMESPACE::vector< T > &vect,
    00841                   const UString &schemaName,
    00842                   const UString &typeName) ;
    00843   #else
    00844   template <class T>
    00845   void setVector( Statement *stmt, unsigned int paramIndex,
    00846   const OCCI_STD_NAMESPACE::vector<T* > &vect, const UString
    00847   &schemaName, const UString &typeName) ;
    00848   #endif
    00849
    00850
    00851 /* Global method for array pins */
    00852 template <class T>
    00853 void pinVectorOfRefs( const Connection *conn,
    00854 OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
    00855 OCCI_STD_NAMESPACE::vector<T* > &vectObj,
    00856 LockOptions lockOpt = OCCI_LOCK_NONE );
    00857
    00858 template <class T>
    00859 void pinVectorOfRefs( const Connection *conn,
    00860 OCCI_STD_NAMESPACE::vector<Ref<T> > &vect,
    00861 LockOptions lockOpt = OCCI_LOCK_NONE );
    00862
    00863 /*---------------------------------------------------------------------------
    00864                           INTERNAL FUNCTIONS
    00865   ---------------------------------------------------------------------------*/
    00866
    00867
    00868 } /* end of namespace occi */
    00869 } /* end of namespace oracle */
    00870 #endif /* _olint */
    00871
    00872 #endif                                              /* OCCICOMMON_ORACLE */

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines