📄 ocinum.cpp
字号:
#ifndef _COCINumber
#include "ocinum.h"
#endif
#ifndef _COCISession
#include "ocisess.h"
#endif
#ifndef _INC_MEMORY
#include <memory.h>
#endif
#ifndef _INC_MALLOC
#include <malloc.h>
#endif
COCINumber::COCINumber(const COCISession& Sess)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NULL;
// Initialise number to null
set_null();
// Keep a null number for comparison
memset(&m_Null_Number, '\0', OCI_NUMBER_SIZE);
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::~COCINumber()
{
}
COCINumber::COCINumber(const COCISession& Sess, dvoid* instance)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
memcpy(&m_Number, instance, OCI_NUMBER_SIZE);
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, int num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromInt(m_Session.get_error(),
&num, sizeof(int),
OCI_NUMBER_SIGNED,
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, unsigned int num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromInt(m_Session.get_error(),
&num, sizeof(unsigned int),
OCI_NUMBER_UNSIGNED,
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, short num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromInt(m_Session.get_error(),
&num, sizeof(short),
OCI_NUMBER_SIGNED,
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, unsigned short num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromInt(m_Session.get_error(),
&num, sizeof(unsigned short),
OCI_NUMBER_UNSIGNED,
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, long num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromInt(m_Session.get_error(),
&num, sizeof(long),
OCI_NUMBER_SIGNED,
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, unsigned long num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromInt(m_Session.get_error(),
&num, sizeof(unsigned long),
OCI_NUMBER_UNSIGNED,
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, float num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromReal(m_Session.get_error(),
&num, sizeof(float),
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, double num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromReal(m_Session.get_error(),
&num, sizeof(double),
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::COCINumber(const COCISession& Sess, long double num)
: m_Session(Sess)
{
m_Indicator = OCI_IND_NOTNULL;
CHECK(m_Session.get_error(),
OCINumberFromReal(m_Session.get_error(),
&num, sizeof(long double),
(OCINumber *)&m_Number))
set_instance((dvoid*&)(m_pNumber = &m_Number));
set_null_struct(&m_Null_Number);
}
COCINumber::operator int () const
{
int temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(int),
OCI_NUMBER_SIGNED,
&temp))
return temp;
}
COCINumber::operator unsigned int () const
{
unsigned int temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(unsigned int),
OCI_NUMBER_UNSIGNED,
&temp))
return temp;
}
COCINumber::operator short () const
{
short temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(short),
OCI_NUMBER_SIGNED,
&temp))
return temp;
}
COCINumber::operator unsigned short () const
{
unsigned short temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(unsigned short),
OCI_NUMBER_UNSIGNED,
&temp))
return temp;
}
COCINumber::operator long () const
{
long temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(long),
OCI_NUMBER_SIGNED,
&temp))
return temp;
}
COCINumber::operator unsigned long () const
{
unsigned long temp = 0;
CHECK(m_Session.get_error(),
OCINumberToInt(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(unsigned long),
OCI_NUMBER_UNSIGNED,
&temp))
return temp;
}
COCINumber::operator float () const
{
float temp;
CHECK(m_Session.get_error(),
OCINumberToReal(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(float),
&temp))
return temp;
}
COCINumber::operator double () const
{
double temp;
CHECK(m_Session.get_error(),
OCINumberToReal(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(double),
&temp))
return temp;
}
COCINumber::operator long double () const
{
long double temp;
CHECK(m_Session.get_error(),
OCINumberToReal(m_Session.get_error(),
(OCINumber *)&m_Number,
sizeof(long double),
&temp))
return temp;
}
COCINumber & COCINumber::operator = (const COCINumber & Number)
{
if(!((COCINumber&)Number).is_null())
{
CHECK(m_Session.get_error(),
OCINumberAssign(m_Session.get_error(),
(OCINumber *)((COCINumber&)Number).get_oci_number(),
(OCINumber *)get_oci_number()) )
void* temp = &m_Number;
set_instance(temp);
set_null_struct(&m_Null_Number);
m_Indicator = OCI_IND_NOTNULL;
}
else
{
set_null();
}
return *this;
}
COCINumber & COCINumber::operator = (int num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
COCINumber & COCINumber::operator = (unsigned int num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
COCINumber & COCINumber::operator = (short num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
COCINumber & COCINumber::operator = (unsigned short num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
COCINumber & COCINumber::operator = (long num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
COCINumber & COCINumber::operator = (unsigned long num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
COCINumber & COCINumber::operator = (float num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
COCINumber & COCINumber::operator = (double num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
COCINumber & COCINumber::operator = (long double num)
{
COCINumber RhsNumber(m_Session, num);
*this = RhsNumber;
return *this;
}
bool COCINumber::operator == (const COCINumber & Number) const
{
sword result = compare(*this, Number);
return result ? false : true;
}
bool operator == (const COCINumber& lhs, int rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (const COCINumber& lhs, unsigned int rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (const COCINumber& lhs, short rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (const COCINumber& lhs, unsigned short rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (const COCINumber& lhs, long rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (const COCINumber& lhs, unsigned long rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (const COCINumber& lhs, float rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (const COCINumber& lhs, double rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (const COCINumber& lhs, long double rhs)
{
return (lhs.operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == true);
}
bool operator == (int lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator == (unsigned int lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator == (short lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator == (unsigned short lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator == (long lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator == (unsigned long lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator == (float lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator == (double lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator == (long double lhs, const COCINumber& rhs)
{
return (rhs.operator==(COCINumber(((COCINumber&)rhs).get_session(),lhs)) == true);
}
bool operator != (const COCINumber& lhs, int rhs)
{
return (((COCINumber&)lhs).operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == false);
}
bool operator != (const COCINumber& lhs, unsigned int rhs)
{
return (((COCINumber&)lhs).operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == false);
}
bool operator != (const COCINumber& lhs, short rhs)
{
return (((COCINumber&)lhs).operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == false);
}
bool operator != (const COCINumber& lhs, unsigned short rhs)
{
return (((COCINumber&)lhs).operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == false);
}
bool operator != (const COCINumber& lhs, long rhs)
{
return (((COCINumber&)lhs).operator==(COCINumber(((COCINumber&)lhs).get_session(),rhs)) == false);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -