?? occidata.h
字號:
/* Copyright (c) Oracle Corporation 2000, 2001. All Rights Reserved. */ /* NAME occiData.h - header file for OCCI data classes DESCRIPTION Class definitions for Stream, Blob, Clob ,Bfile, Number, Date, IntervalYM, IntervalDS, Time, Timestamp RELATED DOCUMENTS <note any documents related to this facility> EXPORT FUNCTION(S) <external functions declared for use outside package - one-line descriptions> INTERNAL FUNCTION(S) <other external functions declared - one-line descriptions> EXAMPLES NOTES <other useful comments, qualifications, etc.> MODIFIED (MM/DD/YY) rvallam 04/09/01 - change private constructor in Number to pass parameter by reference and made it const chliang 03/05/01 - disable olint rvallam 01/27/02 - remove #include <ostream> gayyappa 01/17/01 - add methods/operators to Interval and timestamp classes.. gayyappa 12/15/00 - interface changes in set methods rvallam 11/29/00 - change method signature in Bytes added 3 new methods in Number rvallam 10/20/00 - change method signatures in Date rvallam 09/15/00 - make StmtImpl/ResultSetImpl friend to interval classes gayyappa 08/21/00 - modified timestamp, interval headers. add OCIEnv to constructor of Bytes., removed getOCIRaw from Bytes. add const to setVector mthds of anydata. add dvoid* data member to Timestamp/Interval. rvallam 08/10/00 - modified CORE class headers to add friends , added private constructor in Bytes slari 08/02/00 - comment out Stream rratnam 08/04/00 - updated the LOB stream interface rkasamse 08/07/00 - make getVector friend of Time slari 07/31/00 - add const to Bytes methods slari 07/25/00 - disable Bytes(Bytes *) slari 07/23/00 - add Bytes gayyappa 07/26/00 - update Timestamp, IntervalYM, IntervalDS. gayyappa 07/04/00 - for fixing a problem in occiNumber rratnam 06/13/00 - Updated LOB class headers kmohan 05/31/00 - Change Environment to Environment * in Date constructor kmohan 05/29/00 - No string rkasamse 04/25/00 - Added string class header etucker 04/19/00 - Added CORE class headers kmohan 04/11/00 - Creation*/#ifndef _olint /* disable olint check */#ifndef OCCIDATA_ORACLE# define OCCIDATA_ORACLE#ifndef OCCICOMMON_ORACLE#include <occiCommon.h>#endif#ifndef OCCICONTROL_ORACLE#include <occiControl.h>#endifnamespace oracle {namespace occi {class Bytes{ public: Bytes(const Environment *env = NULL); // default constructor Bytes(unsigned char *value, unsigned int count, unsigned int offset = 0, const Environment *env = NULL); Bytes(const Bytes &e); // copy constructor // public methods virtual void getBytes(unsigned char *dst, unsigned int count, unsigned int srcBegin = 0, unsigned int dstBegin = 0) const; virtual unsigned int length() const; virtual unsigned char byteAt(unsigned int index) const; virtual bool isNull() const; virtual void setNull(); virtual ~Bytes() {}private: // private data members Bytes(OCIEnv *,OCIRaw *) ; Ptr<BytesImpl> ptr_; friend class AnyDataImpl; friend void getVector(const AnyData &any, OCCI_STD_NAMESPACE::vector<Bytes> &vect) ; friend void setVector(AnyData &any, const OCCI_STD_NAMESPACE::vector<Bytes> &vect) ;}; class Bfile{ public : Bfile(); Bfile(const Connection *connectionp) ; Bfile(const Bfile &srcBfile) ; ~Bfile(); unsigned int length() const ; OCCI_STD_NAMESPACE::string getDirAlias() const ; OCCI_STD_NAMESPACE::string getFileName() const ; void setName(const OCCI_STD_NAMESPACE::string &dirAlias, const OCCI_STD_NAMESPACE::string &fileName) ; bool fileExists() const ; Bfile& operator =(const Bfile &srcBfile) ; bool operator ==(const Bfile &srcBfile) const ; bool operator !=(const Bfile &srcBfile) const ; void setNull() ; bool isNull() const ; bool isInitialized() const; void open() ; void close() ; bool isOpen() const ; unsigned int read(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) const ; Stream* getStream(unsigned int offset = 1, unsigned int amount =0) ; void closeStream(Stream *stream); private: //Data Members: // pointer to the FILE locator OCIBFileLocator *filep; // pointer to the ConnectionImpl instance const ConnectionImpl *connp; // pointer to the LobStreamImpl instance obtained from this FILE LobStreamImpl *streamp; void *bfileExt; //Enumerations: enum {MAXDIRNAMELEN = 32, MAXFILENAMELEN = 256}; //Constructor: Bfile(const Connection *connectionp, OCIBFileLocator *locatorp) ; //Methods: OCIBFileLocator* getLocator() const; // Friends friend class AnyDataImpl; friend class StatementImpl; friend class ResultSetImpl; friend class Blob; friend class Clob; friend void getVector(const AnyData&, OCCI_STD_NAMESPACE::vector<Bfile>&) ; friend void getVector(Statement*, unsigned int, OCCI_STD_NAMESPACE::vector<Bfile>&) ; friend void getVector(ResultSet*, unsigned int , OCCI_STD_NAMESPACE::vector<Bfile>&) ; friend void setVector(AnyData&, const OCCI_STD_NAMESPACE::vector<Bfile>&) ; friend void setVector(Statement*, unsigned int, const OCCI_STD_NAMESPACE::vector<Bfile>&, const OCCI_STD_NAMESPACE::string&) ;};class Blob{ public: Blob(); Blob(const Connection *connectionp) ; Blob(const Blob &srcBlob) ; ~Blob(); unsigned int getChunkSize() const ; unsigned int length() const ; Blob& operator =(const Blob &srcBlob) ; bool operator ==(const Blob &srcBlob) const ; bool operator !=(const Blob &srcBlob) const ; void setNull() ; bool isNull() const ; void setEmpty() ; bool isInitialized() const; void open(LobOpenMode mode=OCCI_LOB_READWRITE) ; void close() ; bool isOpen() const ; void copy(const Blob &srcBlob, unsigned int numBytes, unsigned int dstOffset =1, unsigned int srcOffset =1) ; void copy(const Bfile &srcBfile, unsigned int numBytes, unsigned int dstOffset =1, unsigned int srcOffset =1) ; void append(const Blob &srcBlob) ; unsigned int read(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) const ; unsigned int write(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) ; unsigned int writeChunk(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1) ; void trim(unsigned int newlen) ; Stream* getStream(unsigned int offset = 1, unsigned int amount =0) ; void closeStream(Stream *stream); private: //Data Members: // pointer to the BLOB locator OCIBlobLocator *lobp; // pointer to the ConnectionImpl instance const ConnectionImpl *connp; // pointer to the LobStreamImpl instance obtained from this LOB LobStreamImpl *streamp; //for future use ! void *blobExt; //Constructor: Blob(const Connection *connectionp, OCIBlobLocator *locatorp) ; //Methods: OCIBlobLocator* getLocator() const; // Friends friend class AnyDataImpl; friend class StatementImpl; friend class ResultSetImpl; friend void getVector(const AnyData&, OCCI_STD_NAMESPACE::vector<Blob>&) ; friend void getVector(Statement*, unsigned int, OCCI_STD_NAMESPACE::vector<Blob>&) ; friend void getVector(ResultSet*, unsigned int, OCCI_STD_NAMESPACE::vector<Blob>&) ; friend void setVector(AnyData&, const OCCI_STD_NAMESPACE::vector<Blob>&) ; friend void setVector(Statement*, unsigned int, const OCCI_STD_NAMESPACE::vector<Blob>&, const OCCI_STD_NAMESPACE::string&) ;};class Clob{ public: Clob(); Clob(const Connection *connectionp) ; Clob(const Clob &srcClob) ; ~Clob(); unsigned int getChunkSize() const ; unsigned int length() const ; CharSet getCharSetId() const; CharSetForm getCharSetForm() const; Clob& operator =(const Clob &srcClob) ; bool operator ==(const Clob &srcClob) const ; bool operator !=(const Clob &srcClob) const ; void setNull() ; bool isNull() const ; void setEmpty() ; bool isInitialized() const; void open(LobOpenMode mode=OCCI_LOB_READWRITE) ; void close() ; bool isOpen() const ; void copy(const Clob &srcClob, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1) ; void copy(const Bfile &srcBfile, unsigned int numBytes, unsigned int dstOffset = 1, unsigned int srcOffset = 1) ; void append(const Clob &srcClob) ; unsigned int read(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1, CharSet charsetId=DefaultCharSet, CharSetForm charsetForm = OCCI_SQLCS_IMPLICIT) const ; unsigned int write(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1, CharSet charsetId=DefaultCharSet, CharSetForm charsetForm = OCCI_SQLCS_IMPLICIT) ; unsigned int writeChunk(unsigned int amt, unsigned char *buffer, unsigned int bufsize, unsigned int offset = 1, CharSet charsetId=DefaultCharSet, CharSetForm charsetForm = OCCI_SQLCS_IMPLICIT) ; void trim(unsigned int newlen) ; Stream* getStream(unsigned int offset = 1, unsigned int amount =0, CharSet charsetId=DefaultCharSet, CharSetForm charsetForm = OCCI_SQLCS_IMPLICIT) ; void closeStream(Stream *stream); private: //Data Members: // pointer to the CLOB locator OCIClobLocator *lobp; // pointer to the ConnectionImpl instance const ConnectionImpl *connp; // pointer to the LobStreamImpl instance obtained from this LOB LobStreamImpl *streamp; //for future use ! void *clobExt; //Constructor: Clob(const Connection *connectionp, OCIClobLocator *locatorp) ; //Methods: OCIClobLocator* getLocator() const; // Friends friend class AnyDataImpl; friend class StatementImpl; friend class ResultSetImpl; friend void getVector(const AnyData&, OCCI_STD_NAMESPACE::vector<Clob>&) ; friend void getVector(Statement*, unsigned int, OCCI_STD_NAMESPACE::vector<Clob>&) ; friend void getVector(ResultSet*, unsigned int, OCCI_STD_NAMESPACE::vector<Clob>&) ; friend void setVector(AnyData&, const OCCI_STD_NAMESPACE::vector<Clob>&) ; friend void setVector(Statement*, unsigned int, const OCCI_STD_NAMESPACE::vector<Clob>&, const OCCI_STD_NAMESPACE::string&) ;};class Number{ public: // Constructors /* default constructor added */ Number(); Number(const Number &srcNum); Number(long double val) ; Number(double val) ; Number(float val) ; Number(long val) ; Number(int val) ; Number(short val) ; Number(char val) ; Number(unsigned long val) ; Number(unsigned int val) ; Number(unsigned short val) ; Number(unsigned char val) ; ~Number(); // Methods const Number abs() const ; // unary negate const Number operator-() ; // unary increment Number& operator++() ; const Number operator++(int) ; // unary decrement Number& operator--() ; const Number operator--(int) ; // assigment operator Number& operator=(const Number &a); // add and assign Number& operator+=(const Number &a) ; // subtract and assign Number& operator-=(const Number &a) ; // Mulitply an assign Number& operator*=(const Number &a) ; // divide and assign Number& operator/=(const Number &a) ; // Modulo and assign Number& operator%=(const Number &a) ; // casting operators operator long() const; operator int() const; operator short() const; operator char() const; operator unsigned long() const; operator unsigned int() const; operator unsigned short() const; operator unsigned char() const; operator long double() const; operator double() const; operator float() const; // Decimal shift const Number shift(int val) const ; // Integer Power
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -