📄 hopekingrecordset.cpp
字号:
void CHopeKingRecordset::SetParamValue(int i,BYTE btValue)
{
if(i>=0&&i<m_iParamNum){
m_pParam[i].SetType(1);
*m_pParam[i].m_Data.m_pByte=btValue;
}
}
void CHopeKingRecordset::SetParamValue(int i,CTime & ctValue)
{
if(i>=0&&i<m_iParamNum){
m_pParam[i].SetType(5);
*m_pParam[i].m_Data.m_pTime=ctValue;
}
}
CString CHopeKingRecordset::GetResultValueS(int i)
{
CString cs="";
if(i>=0&&i<m_iPreDefColNum){
try{
switch(m_pDefaultColum[i].m_iType){
case 0:
cs=*m_pDefaultColum[i].m_Data.m_pString;
break;
case 1:
cs.Format("%d",*m_pDefaultColum[i].m_Data.m_pByte);
break;
case 2:
case 8:
case 9:
cs.Format("%ld",*m_pDefaultColum[i].m_Data.m_pInt);
break;
case 3:
cs.Format("%f",*m_pDefaultColum[i].m_Data.m_pFloat);
break;
case 4:
cs.Format("%f",*m_pDefaultColum[i].m_Data.m_pDouble);
break;
case 5:
cs=(*m_pDefaultColum[i].m_Data.m_pTime).Format("%Y-%m-%d %H:%M:%S");
break;
}
}
catch(...){
}
}
return cs;
}
int CHopeKingRecordset::GetResultValueI(int i)
{
int iret=0;
if(i>=0&&i<m_iPreDefColNum){
try{
switch(m_pDefaultColum[i].m_iType){
case 0:
iret=atoi(*m_pDefaultColum[i].m_Data.m_pString);
break;
case 1:
iret=(int)*m_pDefaultColum[i].m_Data.m_pByte;
break;
case 2:
case 8:
case 9:
iret=*m_pDefaultColum[i].m_Data.m_pInt;
break;
case 3:
iret=(int)*m_pDefaultColum[i].m_Data.m_pFloat;
break;
case 4:
iret=(int)*m_pDefaultColum[i].m_Data.m_pDouble;
break;
case 5:
iret=(int)(*m_pDefaultColum[i].m_Data.m_pTime).GetTime();
break;
}
}
catch(...){
}
}
return iret;
}
void CHopeKingRecordset::GetResultValue(int i,UniVar & uv)
{
if(i>=0&&i<m_iPreDefColNum){
m_pDefaultColum[i].GetValue(uv);
}
}
CString CHopeKingRecordset::GetParamValueS(int i)
{
CString cs="";
if(i>=0&&i<m_iParamNum){
try{
switch(m_pParam[i].m_iType){
case 0:
cs=*m_pParam[i].m_Data.m_pString;
break;
case 1:
cs.Format("%d",*m_pParam[i].m_Data.m_pByte);
break;
case 2:
case 8:
case 9:
cs.Format("%ld",*m_pParam[i].m_Data.m_pInt);
break;
case 3:
cs.Format("%f",*m_pParam[i].m_Data.m_pFloat);
break;
case 4:
cs.Format("%f",*m_pParam[i].m_Data.m_pDouble);
break;
case 5:
cs=(*m_pParam[i].m_Data.m_pTime).Format("%Y-%m-%d %H:%M:%S");
break;
}
}
catch(...){
}
}
return cs;
}
int CHopeKingRecordset::GetParamValueI(int i)
{
int iret=0;
if(i>=0&&i<m_iParamNum){
try{
switch(m_pParam[i].m_iType){
case 0:
iret=atoi(*m_pParam[i].m_Data.m_pString);
break;
case 1:
iret=(int)*m_pParam[i].m_Data.m_pByte;
break;
case 2:
case 8:
case 9:
iret=*m_pParam[i].m_Data.m_pInt;
break;
case 3:
iret=(int)*m_pParam[i].m_Data.m_pFloat;
break;
case 4:
iret=(int)*m_pParam[i].m_Data.m_pDouble;
break;
case 5:
iret=(int)(*m_pParam[i].m_Data.m_pTime).GetTime();
break;
}
}
catch(...){
}
}
return iret;
}
void CHopeKingRecordset::SetParamValue(int i,UniVar & uv,int type)
{
if(i>=0&&i<m_iParamNum){
m_pParam[i].SetValue(uv,type);
}
}
void CHopeKingRecordset::GetParamValue(int i,UniVar & uv)
{
if(i>=0&&i<m_iParamNum){
m_pParam[i].GetValue(uv);
}
}
void COdbcData::SetType(int itype){
if(m_iType==itype)return;
ClearData();
m_iType=itype;
switch(itype){
case 0:
m_Data.m_pString=new CString();
break;
case 1:
m_Data.m_pByte=new BYTE;
*m_Data.m_pByte=0;
break;
case 2:
case 8:
case 9:
m_Data.m_pInt=new int;
*m_Data.m_pInt=0;
break;
case 3:
m_Data.m_pFloat=new float;
*m_Data.m_pFloat=0.0;
break;
case 4:
m_Data.m_pDouble=new double;
*m_Data.m_pDouble=0.0f;
break;
case 5:
m_Data.m_pTime=new CTime();
break;
case 6:
m_Data.m_pByteArray=new CByteArray();
break;
case 7:
m_Data.m_pLongBinary=new CLongBinary();
break;
default:
m_iType=-1;
break;
};
};
void COdbcData::SetValue(UniVar & uv,int type)
{
try{
int iftype=1;
if(type&0xf00){
iftype=3;
}
if(type==-1){
switch(uv.it){
case DATA_TYPE_INT:
case DATA_TYPE_DWORD:
type=9;
break;
case DATA_TYPE_FLOAT:
type=4;
break;
case DATA_TYPE_STRING:
type=0;
break;
case DATA_TYPE_HANDLE:
type=6;
break;
default:
return;
}
}
if(type!=m_iType){
if((type==2||type==8||type==9)&&(m_iType==2||m_iType==8||m_iType==9)){
m_iType=type;
}
else{
ClearData();
SetType(type);
}
}
SetFieldType(iftype);
switch(m_iType){
case 0:
*m_Data.m_pString=(LPSTR)uv;
break;
case 1:
*m_Data.m_pByte=(BYTE)(int)uv;
break;
case 2:
case 8:
case 9:
*m_Data.m_pInt=(int)uv;
break;
case 3:
*m_Data.m_pFloat=(float)uv;
break;
case 4:
*m_Data.m_pDouble=(double)uv;
break;
case 5:
if(uv.it==DATA_TYPE_STRING){
int iy=1970,im=1,id=1,ih=0,iu=0,is=0;
sscanf((LPSTR)uv,"%ld-%ld-%ld %ld:%ld:%ld",&iy,&im,&id,&ih,&iu,&is);
*m_Data.m_pTime=CTime(iy,im,id,ih,iu,is);
}
else{
*m_Data.m_pTime=CTime((long)(int)(uv));
}
break;
case 6:
uv.SetValue((void *)m_Data.m_pByteArray->GetData(),m_Data.m_pByteArray->GetSize());
break;
case 7:
uv.SetValue((void *)m_Data.m_pLongBinary->m_hData,m_Data.m_pLongBinary->m_dwDataLength);
break;
}
}
catch(...){}
}
void COdbcData::GetValue(UniVar & uv)
{
try{
if(m_Data.m_pByte){
switch(m_iType){
case 0:
uv.SetValue((LPSTR)(LPCTSTR)*m_Data.m_pString);
break;
case 1:
uv=(int)*m_Data.m_pByte;
break;
case 2:
case 8:
case 9:
uv=*m_Data.m_pInt;
break;
case 3:
uv=(double)*m_Data.m_pFloat;
break;
case 4:
uv=*m_Data.m_pDouble;
break;
case 5:
if(uv.it!=DATA_TYPE_FLOAT){
uv.SetValue((LPSTR)(LPCTSTR)m_Data.m_pTime->Format("%Y-%m-%d %H:%M:%S"));
}
else{
uv=(int)m_Data.m_pTime->GetTime();
}
break;
case 6:
uv.SetValue((void *)m_Data.m_pByteArray->GetData(),m_Data.m_pByteArray->GetSize());
break;
case 7:
uv.SetValue((void *)m_Data.m_pLongBinary->m_hData,m_Data.m_pLongBinary->m_dwDataLength);
break;
}
}
}
catch(...){
}
}
void COdbcData::ClearData(){
if(m_Data.m_pByte){
switch(m_iType){
case 0:
delete m_Data.m_pString;
break;
case 1:
delete m_Data.m_pByte;
break;
case 2:
case 8:
case 9:
delete m_Data.m_pInt;
break;
case 3:
delete m_Data.m_pFloat;
break;
case 4:
delete m_Data.m_pDouble;
break;
case 5:
delete m_Data.m_pTime;
break;
case 6:
delete m_Data.m_pByteArray;
break;
case 7:
delete m_Data.m_pLongBinary;
break;
}
}
m_iType=-1;
m_Data.m_pByte=NULL;
}
/////////////////////////////////////////////////////////////////////////////
// CHopeKingRecordset diagnostics
#ifdef _DEBUG
void CHopeKingRecordset::AssertValid() const
{
CRecordset::AssertValid();
}
void CHopeKingRecordset::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -