📄 occicontrol.h
字号:
/* Copyright Oracle Corporation 2000, 2001. All Rights Reserved. */
/*
NAME
occiControl.h - header file for OCCI control classes
DESCRIPTION
Class definitions for MetaData,SQLException,Environment,
Connection,Session,Statement
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)
vvinay 02/21/02 - operator= added for SQLException
gayyappa 12/27/01 - add set/getDatabaseNCharParam
gayyappa 11/22/01 - modify interface to use strings for CharSet
gayyappa 10/01/01 - call reserve() on vector in set/getVector
rkasamse 07/30/01 -
rkasamse 07/26/01 - add env handle attrs - cache max/opt size
rvallam 07/23/01 - bug 1891228 - added throw() in destructor
of SQLException
rvallam 06/14/01 - replace call to get(set)VectorOfRefs in
get(set)Vector for Ref<T> with code in
get(set)VectorOfRefs
rvallam 11/06/01 - renamed internal methods in get/setVector to
get(set)VectorOfPObjects/get(set)VectorOfOCIRefs
as part of NT porting fix
added destructors to SQLException and MetaData
rvallam 05/03/01 - added const to the vector parameter in setVector
of Statement for Ref<T>
rratnam 04/10/01 - removed references to wstring
kmohan 04/04/01 - include math.h for WIN32COMMON
rvallam 04/02/01 - fixed linux porting bug 1654670
gayyappa 03/27/01 - add code for templated getVector on stmt for objects.
rvallam 03/20/01 - passed dummy parameter for Type in getVector for
void * in statement and ResultSet
rratnam 03/15/01 - fixed set and getRef / get and setVector for NULL Refs
rkasamse 03/19/01 - 1676579: HP compilation errors
rratnam 03/07/01 - derived SQLException from exception, added what()
chliang 03/05/01 - disable olint
rvallam 02/23/01 - made getReadSQL/getWriteSQL methods const
rratnam 01/29/01 - add closeStream() to Statement/ResultSet
rvallam 01/30/01 - added private method getListType() to
MetaData
rratnam 01/03/01 - removed preTruncationLength() and isTruncated(),
added setBinary/CharacterStreamMode()
rratnam 01/03/01 - added new method setErrorOnBusy in ConnectionPool
rratnam 12/29/00 - added a createProxyConnection without roles
gayyappa 12/14/00 - add virtual functions getStatement/getConnection
to resultset and statement (fix bug# 1529888)
gayyappa 12/13/00 - remove setErrorOnTruncate from Statement/resultset.
rvallam 11/30/00 - removed #define NEVER
gayyappa 11/17/00 - split get method in Map to getReadSQL
and getWriteSQL
rvallam 10/20/00 - modify cacheflush() to flushCache()
added enums to MetaData
rvallam 09/14/00 - uncomment result set getMetaData method
rename it to getColumnListMetaData.
add get/set interval methods to stmt.
add getinterval methods to resultset.
gayyappa 08/30/00 - added virtual destructor to occiconnection.
add default values to registerOutParam in
occistatement.
removed get/set vector and anydata in statement.
removed Stream header in ifdef directive.
rvallam 08/10/00 - uncomment gets(), update occiConnection, update
Stream
slari 08/06/00 - add statement stream methods
slari 08/04/00 - add Statement::getXXX methods
slari 08/02/00 - add Stream
rratnam 08/04/00 - put in connection-cloning, proxy connections
rvallam 08/04/00 - changed metadata header - method signatures
rkasamse 08/04/00 - add setObject,setRef methods on Statement
slari 07/27/00 - add Statement::setNull
slari 07/26/00 - disable getBytes
slari 07/25/00 - enable getBytes and getRowid
rratnam 07/25/00 - Conn Pooling changes - added ConnectionPool,
Connection, removed Session
modified Environment (made getOCIEnvironment(),
getMap() and getMode() const,
added create/terminateConnectionPool(),
added userName and password to createConnection() )
rkasamse 07/26/00 - uncomment getObject methods
slari 07/10/00 - enable getString
slari 07/05/00 - add result set methods
rkasamse 07/17/00 - add get function to Map
rratnam 06/16/00 - updated Session::getMetaData() to take the
parameter type
rvallam 06/13/00 - updated MetaData
rratnam 06/13/00 - added getRef() to Statement
and ResultSet,
made getOCIError(), getOCIEnvironment()
and getOCIServiceContext() in
Connection const
kmohan 05/31/00 - Datamember Session * changed to
SessionImpl *
in the class MetaData
change ORASTRINGSTL to ORASTRING
slari 05/26/00 - change ORAVECTOR to ORAVECTORSTL
slari 05/22/00 - add initial Statement class methods
slari 05/10/00 - enable Connection and Session methods
slari 04/21/00 - provide trivial implementation for
~Connection
slari 04/17/00 - make Environment methods abstract
slari 04/13/00 - add Environment
gayyappa 04/18/00 - changed defn of SQLException
kmohan 04/11/00 - added class definitions
rkasamse 04/03/00 - header (interface) files for OCCI
control classes.
rkasamse 04/03/00 - Creation
*/
#ifndef _olint /* disable olint check */
#ifndef OCCICONTROL_ORACLE
# define OCCICONTROL_ORACLE
#ifdef WIN32COMMON
#ifndef ORAMATH
#define ORAMATH
#include <math.h>
#endif
#endif
#ifndef OCCICOMMON_ORACLE
#include <occiCommon.h>
#endif
#ifndef ORAEXCEPTION
#define ORAEXCEPTION
#include <exception>
#endif
namespace oracle {
namespace occi {
/*---------------------------------------------------------------------------
PUBLIC TYPES AND CONSTANTS
---------------------------------------------------------------------------*/
class MetaData
{
public :
enum AttrId
{ATTR_PTYPE = OCI_ATTR_PTYPE,
ATTR_TIMESTAMP = OCI_ATTR_TIMESTAMP,
ATTR_OBJ_ID = OCI_ATTR_OBJ_ID,
ATTR_OBJ_NAME = OCI_ATTR_OBJ_NAME,
ATTR_OBJ_SCHEMA = OCI_ATTR_OBJ_SCHEMA,
ATTR_OBJID = OCI_ATTR_OBJID,
ATTR_NUM_COLS = OCI_ATTR_NUM_COLS,
ATTR_LIST_COLUMNS = OCI_ATTR_LIST_COLUMNS,
ATTR_REF_TDO = OCI_ATTR_REF_TDO,
ATTR_IS_TEMPORARY = OCI_ATTR_IS_TEMPORARY,
ATTR_IS_TYPED = OCI_ATTR_IS_TYPED,
ATTR_DURATION = OCI_ATTR_DURATION,
ATTR_COLLECTION_ELEMENT = OCI_ATTR_COLLECTION_ELEMENT,
ATTR_RDBA = OCI_ATTR_RDBA,
ATTR_TABLESPACE = OCI_ATTR_TABLESPACE,
ATTR_CLUSTERED = OCI_ATTR_CLUSTERED,
ATTR_PARTITIONED = OCI_ATTR_PARTITIONED,
ATTR_INDEX_ONLY = OCI_ATTR_INDEX_ONLY,
ATTR_LIST_ARGUMENTS = OCI_ATTR_LIST_ARGUMENTS,
ATTR_IS_INVOKER_RIGHTS = OCI_ATTR_IS_INVOKER_RIGHTS,
ATTR_LIST_SUBPROGRAMS = OCI_ATTR_LIST_SUBPROGRAMS,
ATTR_NAME = OCI_ATTR_NAME,
ATTR_OVERLOAD_ID = OCI_ATTR_OVERLOAD_ID,
ATTR_TYPECODE = OCI_ATTR_TYPECODE,
ATTR_COLLECTION_TYPECODE = OCI_ATTR_COLLECTION_TYPECODE,
ATTR_VERSION = OCI_ATTR_VERSION,
ATTR_IS_INCOMPLETE_TYPE = OCI_ATTR_IS_INCOMPLETE_TYPE,
ATTR_IS_SYSTEM_TYPE = OCI_ATTR_IS_SYSTEM_TYPE,
ATTR_IS_PREDEFINED_TYPE = OCI_ATTR_IS_PREDEFINED_TYPE,
ATTR_IS_TRANSIENT_TYPE = OCI_ATTR_IS_TRANSIENT_TYPE,
ATTR_IS_SYSTEM_GENERATED_TYPE =
OCI_ATTR_IS_SYSTEM_GENERATED_TYPE,
ATTR_HAS_NESTED_TABLE = OCI_ATTR_HAS_NESTED_TABLE,
ATTR_HAS_LOB = OCI_ATTR_HAS_LOB,
ATTR_HAS_FILE = OCI_ATTR_HAS_FILE,
ATTR_NUM_TYPE_ATTRS = OCI_ATTR_NUM_TYPE_ATTRS,
ATTR_LIST_TYPE_ATTRS = OCI_ATTR_LIST_TYPE_ATTRS,
ATTR_NUM_TYPE_METHODS = OCI_ATTR_NUM_TYPE_METHODS,
ATTR_LIST_TYPE_METHODS = OCI_ATTR_LIST_TYPE_METHODS,
ATTR_MAP_METHOD = OCI_ATTR_MAP_METHOD,
ATTR_ORDER_METHOD = OCI_ATTR_ORDER_METHOD,
ATTR_DATA_SIZE = OCI_ATTR_DATA_SIZE,
ATTR_DATA_TYPE = OCI_ATTR_DATA_TYPE,
ATTR_PRECISION = OCI_ATTR_PRECISION,
ATTR_SCALE = OCI_ATTR_SCALE,
ATTR_TYPE_NAME = OCI_ATTR_TYPE_NAME,
ATTR_SCHEMA_NAME = OCI_ATTR_SCHEMA_NAME,
ATTR_CHARSET_ID = OCI_ATTR_CHARSET_ID,
ATTR_CHARSET_FORM = OCI_ATTR_CHARSET_FORM,
ATTR_ENCAPSULATION = OCI_ATTR_ENCAPSULATION,
ATTR_IS_CONSTRUCTOR = OCI_ATTR_IS_CONSTRUCTOR,
ATTR_IS_DESTRUCTOR = OCI_ATTR_IS_DESTRUCTOR,
ATTR_IS_OPERATOR = OCI_ATTR_IS_OPERATOR,
ATTR_IS_SELFISH = OCI_ATTR_IS_SELFISH,
ATTR_IS_MAP = OCI_ATTR_IS_MAP,
ATTR_IS_ORDER = OCI_ATTR_IS_ORDER,
ATTR_IS_RNDS = OCI_ATTR_IS_RNDS,
ATTR_IS_RNPS = OCI_ATTR_IS_RNPS,
ATTR_IS_WNDS = OCI_ATTR_IS_WNDS,
ATTR_IS_WNPS = OCI_ATTR_IS_WNPS,
ATTR_NUM_ELEMS = OCI_ATTR_NUM_ELEMS,
ATTR_LINK = OCI_ATTR_LINK,
ATTR_MIN = OCI_ATTR_MIN,
ATTR_MAX = OCI_ATTR_MAX,
ATTR_INCR = OCI_ATTR_INCR,
ATTR_CACHE = OCI_ATTR_CACHE,
ATTR_ORDER = OCI_ATTR_ORDER,
ATTR_HW_MARK = OCI_ATTR_HW_MARK,
ATTR_IS_NULL = OCI_ATTR_IS_NULL,
ATTR_POSITION = OCI_ATTR_POSITION,
ATTR_HAS_DEFAULT = OCI_ATTR_HAS_DEFAULT,
ATTR_LEVEL = OCI_ATTR_LEVEL,
ATTR_IOMODE = OCI_ATTR_IOMODE,
ATTR_RADIX = OCI_ATTR_RADIX,
ATTR_SUB_NAME = OCI_ATTR_SUB_NAME,
ATTR_LIST_OBJECTS = OCI_ATTR_LIST_OBJECTS,
ATTR_NCHARSET_ID = OCI_ATTR_NCHARSET_ID,
ATTR_LIST_SCHEMAS = OCI_ATTR_LIST_SCHEMAS,
ATTR_MAX_PROC_LEN = OCI_ATTR_MAX_PROC_LEN,
ATTR_MAX_COLUMN_LEN = OCI_ATTR_MAX_COLUMN_LEN,
ATTR_CURSOR_COMMIT_BEHAVIOR =
OCI_ATTR_CURSOR_COMMIT_BEHAVIOR,
ATTR_MAX_CATALOG_NAMELEN = OCI_ATTR_MAX_CATALOG_NAMELEN,
ATTR_CATALOG_LOCATION = OCI_ATTR_CATALOG_LOCATION,
ATTR_SAVEPOINT_SUPPORT = OCI_ATTR_SAVEPOINT_SUPPORT,
ATTR_NOWAIT_SUPPORT = OCI_ATTR_NOWAIT_SUPPORT,
ATTR_AUTOCOMMIT_DDL = OCI_ATTR_AUTOCOMMIT_DDL,
ATTR_LOCKING_MODE = OCI_ATTR_LOCKING_MODE,
ATTR_IS_FINAL_TYPE = OCI_ATTR_IS_FINAL_TYPE,
ATTR_IS_INSTANTIABLE_TYPE = OCI_ATTR_IS_INSTANTIABLE_TYPE,
ATTR_IS_SUBTYPE = OCI_ATTR_IS_SUBTYPE,
ATTR_SUPERTYPE_SCHEMA_NAME = OCI_ATTR_SUPERTYPE_SCHEMA_NAME,
ATTR_SUPERTYPE_NAME = OCI_ATTR_SUPERTYPE_NAME,
ATTR_FSPRECISION = OCI_ATTR_FSPRECISION,
ATTR_LFPRECISION = OCI_ATTR_LFPRECISION,
ATTR_IS_FINAL_METHOD = OCI_ATTR_IS_FINAL_METHOD,
ATTR_IS_INSTANTIABLE_METHOD = OCI_ATTR_IS_INSTANTIABLE_METHOD,
ATTR_IS_OVERRIDING_METHOD = OCI_ATTR_IS_OVERRIDING_METHOD,
ATTR_CHAR_USED = OCI_ATTR_CHAR_USED,
ATTR_CHAR_SIZE = OCI_ATTR_CHAR_SIZE
};
enum ParamType
{
PTYPE_TABLE = OCI_PTYPE_TABLE
,PTYPE_VIEW = OCI_PTYPE_VIEW
,PTYPE_PROC = OCI_PTYPE_PROC
,PTYPE_FUNC = OCI_PTYPE_FUNC
,PTYPE_PKG = OCI_PTYPE_PKG
,PTYPE_TYPE = OCI_PTYPE_TYPE
,PTYPE_TYPE_ATTR = OCI_PTYPE_TYPE_ATTR
,PTYPE_TYPE_COLL = OCI_PTYPE_TYPE_COLL
,PTYPE_TYPE_METHOD = OCI_PTYPE_TYPE_METHOD
,PTYPE_SYN = OCI_PTYPE_SYN
,PTYPE_SEQ = OCI_PTYPE_SEQ
,PTYPE_COL = OCI_PTYPE_COL
,PTYPE_ARG = OCI_PTYPE_ARG
,PTYPE_TYPE_ARG = OCI_PTYPE_TYPE_ARG
,PTYPE_TYPE_RESULT = OCI_PTYPE_TYPE_RESULT
,PTYPE_SCHEMA = OCI_PTYPE_SCHEMA
,PTYPE_DATABASE = OCI_PTYPE_DATABASE
,PTYPE_UNK = OCI_PTYPE_UNK
};
enum { DURATION_SESSION = OCI_DURATION_SESSION
,DURATION_TRANS = OCI_DURATION_TRANS
,DURATION_NULL = OCI_DURATION_NULL
,TYPEENCAP_PRIVATE = OCI_TYPEENCAP_PRIVATE
,TYPEENCAP_PUBLIC = OCI_TYPEENCAP_PUBLIC
,TYPEPARAM_IN = OCI_TYPEPARAM_IN
,TYPEPARAM_OUT = OCI_TYPEPARAM_OUT
,TYPEPARAM_INOUT = OCI_TYPEPARAM_INOUT
,CURSOR_OPEN = OCI_CURSOR_OPEN
,CURSOR_CLOSED = OCI_CURSOR_CLOSED
,CL_START = OCI_CL_START
,CL_END = OCI_CL_END
,SP_SUPPORTED = OCI_SP_SUPPORTED
,SP_UNSUPPORTED = OCI_SP_UNSUPPORTED
,NW_SUPPORTED = OCI_NW_SUPPORTED
,NW_UNSUPPORTED = OCI_NW_UNSUPPORTED
,AC_DDL = OCI_AC_DDL
,NO_AC_DDL = OCI_NO_AC_DDL
,LOCK_IMMEDIATE = OCI_LOCK_IMMEDIATE
,LOCK_DELAYED = OCI_LOCK_DELAYED
};
MetaData(const MetaData &omd);
unsigned int getAttributeCount() const
;
AttrId getAttributeId(unsigned int attributenum) const
;
Type getAttributeType(unsigned int attributenum) const
;
int getInt(MetaData::AttrId attrid) const
;
bool getBoolean(MetaData::AttrId attrid) const
;
unsigned int getUInt(MetaData::AttrId attrid) const
;
OCCI_STD_NAMESPACE::string getString(MetaData::AttrId attrid) const
;
Number getNumber(MetaData::AttrId attrid) const
;
RefAny getRef(MetaData::AttrId attrid) const
;
Timestamp getTimestamp(MetaData::AttrId attrid) const
;
MetaData getMetaData(MetaData::AttrId attrid) const
;
OCCI_STD_NAMESPACE::vector<MetaData> getVector(MetaData::AttrId attrid)
const ;
void operator =(const MetaData &omd);
~MetaData();
private:
enum ociAttrType { OCI_UB1,
OCI_UB2,
OCI_UB4,
OCI_SB1,
OCI_WORD,
OCI_UB1_BOOL,
OCI_UB1PTR_TIMESTAMP,
OCI_UB1PTR_NUMBER,
OCI_TEXTPTR,
OCI_DVOIDPTR_PARAM,
OCI_DVOIDPTR_PARAMLIST,
OCI_OCIREFPTR,
OCI_OCIDURATION,
OCI_OCITYPECODE,
OCI_OCITYPEENCAP,
OCI_OCITYPEPARAMMODE,
OCI_OCIPRECISION
};
enum AttrCount {COMMON_ATTR_COUNT = 5,
TABLE_ATTR_COUNT = 12,
VIEW_ATTR_COUNT = 7,
FUNCPROC_ATTR_COUNT = 4,
PKG_ATTR_COUNT = 2,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -