00001 #ifndef __ORATYPE_H_
00002 #define __ORATYPE_H_
00003
00004 #include "ocicpp.h"
00005 #include "OraError.h"
00006
00007 namespace OCICPP {
00008 using std::string;
00009
00010 class OraType {
00011 protected:
00012 OCIDefine *definehp;
00013 OCIEnv *env;
00014 OCIError *err;
00015 string attrName;
00016 string typeName;
00017 ub2 internalType;
00018 ub2 ReqType;
00019 sb2 *null;
00020 int nRows;
00021 unsigned size;
00022 protected:
00023 virtual void setTypeName();
00024 public:
00025 OraType(OCIEnv *,OCIError *,OCIParam *,ub2,int nRows);
00026 virtual ~OraType();
00027
00028 virtual int getType() const;
00029 virtual int getReqType() const;
00030 virtual void getTypeName(string &tname) const;
00031 virtual void getAttrName(string &aname) const;
00032 virtual bool isNull(int row) const;
00033 virtual unsigned getSize() const;
00034 public:
00035
00036 virtual void getStr(string &,int row) = 0;
00037 virtual void define(OCIStmt *,int pos) = 0;
00038 };
00039
00040 }
00041
00042 #endif
00043