📄 ociattr.cpp
字号:
#ifndef _COCIAttribute
#include "ociattr.h"
#endif
#ifndef _COCISession
#include "ocisess.h"
#endif
#ifndef _COCILob
#include "ocilob.h"
#endif
#ifndef _COCIObject
#include "ociobj.h"
#endif
#ifndef _COCINumber
#include "ocinum.h"
#endif
#ifndef _COCIDate
#include "ocidate.h"
#endif
#ifndef _COCIString
#include "ocistr.h"
#endif
#ifndef _COCIRef
#include "ociref.h"
#endif
#ifndef _COCIVArray
#include "ocivry.h"
#endif
#ifndef _COCINestedTable
#include "ocintab.h"
#endif
#ifndef _STRING_
#include <string.h>
#endif
COCIAttribute::COCIAttribute(const COCISession& Sess, dvoid* instance, COCIType Type, COCIObject* parent)
: m_Session(Sess)
, m_pAttrInstance(instance)
, m_Type(Type)
, m_parent(parent)
{
}
COCIAttribute::COCIAttribute(const COCISession& Sess, dvoid* obj_instance, dvoid* attr_instance, text* attr_name, text* type_name, OCITypeCode typecode, COCIObject* parent)
: m_Session(Sess)
, m_pObjectInstance(obj_instance)
, m_pAttrInstance(attr_instance)
, m_parent(parent)
{
if(attr_name)
{
strcpy((char*)m_AttrName,(char*)attr_name);
}
if(type_name)
{
strcpy((char*)m_TypeName,(char*)type_name);
}
m_TypeCode = typecode;
}
COCIAttribute::operator int () const
{
int temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber*)m_pAttrInstance,
sizeof(temp),
OCI_NUMBER_SIGNED,
&temp));
return temp;
}
COCIAttribute::operator unsigned int () const
{
unsigned int temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)m_pAttrInstance,
sizeof(unsigned int),
OCI_NUMBER_UNSIGNED,
&temp))
return temp;
}
COCIAttribute::operator short () const
{
short temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)m_pAttrInstance,
sizeof(short),
OCI_NUMBER_SIGNED,
&temp))
return temp;
}
COCIAttribute::operator unsigned short () const
{
unsigned short temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)m_pAttrInstance,
sizeof(unsigned short),
OCI_NUMBER_UNSIGNED,
&temp))
return temp;
}
COCIAttribute::operator long () const
{
long temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)m_pAttrInstance,
sizeof(long),
OCI_NUMBER_SIGNED,
&temp))
return temp;
}
COCIAttribute::operator unsigned long () const
{
unsigned long temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)m_pAttrInstance,
sizeof(unsigned long),
OCI_NUMBER_UNSIGNED,
&temp))
return temp;
}
COCIAttribute::operator float () const
{
float temp;
CHECK(m_Session.get_error(),
OCINumberToReal(m_Session.get_error(),
(OCINumber *)m_pAttrInstance,
sizeof(float),
&temp))
return temp;
}
COCIAttribute::operator double () const
{
double temp;
CHECK(m_Session.get_error(),
OCINumberToReal(m_Session.get_error(),
(OCINumber *)m_pAttrInstance,
sizeof(double),
&temp))
return temp;
}
COCIAttribute::operator long double () const
{
long double temp;
CHECK(m_Session.get_error(),
OCINumberToReal(m_Session.get_error(),
(OCINumber *)m_pAttrInstance,
sizeof(long double),
&temp))
return temp;
}
COCIAttribute::operator char* () const
{
return (char*)OCIStringPtr(m_Session.get_env(), (OCIString*)*(void**)m_pAttrInstance);
}
COCIAttribute::operator COCIBLob () const
{
return COCIBLob(m_Session, *(void**)m_pAttrInstance);
}
COCIAttribute::operator COCICLob () const
{
return COCICLob(m_Session, *(void**)m_pAttrInstance);
}
COCIAttribute::operator COCIObject () const
{
return COCIObject(m_Session, m_pAttrInstance, m_Type, m_parent);
}
COCIAttribute::operator COCINumber () const
{
return COCINumber(m_Session, m_pAttrInstance);
}
COCIAttribute::operator COCIDate () const
{
return COCIDate(m_Session, m_pAttrInstance);
}
COCIAttribute::operator COCIString () const
{
return COCIString(m_Session, *(void**)m_pAttrInstance);
}
COCIAttribute::operator COCIRef () const
{
return COCIRef(m_Session, *(void**)m_pAttrInstance);
}
COCIAttribute::operator COCIVArray<COCINumber> () const
{
return COCIVArray<COCINumber>(m_Session, *(void**)m_pAttrInstance, m_Type);
}
COCIAttribute::operator COCIVArray<COCIString> () const
{
return COCIVArray<COCIString>(m_Session, *(void**)m_pAttrInstance, m_Type);
}
COCIAttribute::operator COCINestedTable<COCINumber> () const
{
return COCINestedTable<COCINumber>(m_Session, *(void**)m_pAttrInstance, m_Type);
}
COCIAttribute::operator COCINestedTable<COCIObject> () const
{
return COCINestedTable<COCIObject>(m_Session, *(void**)m_pAttrInstance, m_Type);
}
/*
COCIAttribute& COCIAttribute::operator = (const COCIAttribute& src)
{
if(&src != this)
{
m_pObjectInstance = src.m_pObjectInstance;
m_pAttrInstance = src.m_pAttrInstance;
strcpy((char*)m_AttrName, (char*)src.m_AttrName);
strcpy((char*)m_TypeName, (char*)src.m_TypeName);
m_TypeCode = src.m_TypeCode;
m_Type = src.m_Type;
m_parent = src.m_parent;
}
return *this;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -