⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hopekingrecordset.cpp

📁 一个多线程
💻 CPP
📖 第 1 页 / 共 2 页
字号:

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 + -