操作ACCESS的类CADOConn (五)

2014-11-24 03:07:08 · 作者: · 浏览: 17
;
vIndex.iVal = index;
vValue = m_pRecordset->GetCollect(vIndex);
// vValue = m_pRecordset->Fields->GetItem(vIndex)->Value;

switch(vValue.vt)
{
case VT_NULL:
str = "";
break;
case VT_ERROR:
str = "";
break;
case VT_EMPTY:
str = "";
break;
default:
str = (LPCTSTR)_bstr_t(vValue);
}

strValue.Format(_T("%s"), str);
strValue.TrimRight();
strValue.TrimLeft();

return strValue;
}

/************************************************************************
函数名: GetItemInt
作 者: 谭友亮(Charles Tan)
日 期: 2013-3-18
作 用: 取得字段中的整数
形参数: index:字段集中的索引
返回值:
修改记录:
************************************************************************/
int CADOConn::GetItemInt(int index)
{
_variant_t vValue;
_variant_t vIndex;
int iValue;

if (m_pRecordset == NULL || m_pRecordset->adoEOF)
{
exit(1);
}

vIndex.vt = VT_I2;
vIndex.iVal = index;
vValue = m_pRecordset->GetCollect(vIndex);
// vValue = m_pRecordset->Fields->GetItem(vIndex)->Value;

switch(vValue.vt)
{
case VT_NULL:
iValue = 0;
break;
case VT_ERROR:
iValue = 0;
break;
case VT_EMPTY:
iValue = 0;
break;
default:
iValue = vValue.iVal;
}

return iValue;
}

/************************************************************************
函数名: GetItemLong
作 者: 谭友亮(Charles Tan)
日 期: 2013-3-18
作 用: 取得字段中的整数
形参数: index:字段集中的索引
返回值:
修改记录:
************************************************************************/
long CADOConn::GetItemLong(int index)
{
long lValue;
_variant_t vIndex;
_variant_t vValue;

vIndex.vt = VT_I2;
vIndex.iVal = index;
vValue = m_pRecordset->Fields->GetItem(vIndex)->Value;

switch(vValue.vt)
{
case VT_NULL:
lValue = 0;
break;
case VT_ERROR:
lValue = 0;
break;
case VT_EMPTY:
lValue = 0;
break;
default:
lValue = vValue.lVal;
}

return lValue;
}

/************************************************************************
函数名: GetFieldName
作 者: 谭友亮(Charles Tan)
日 期: 2013-3-6
作 用: 取得列标题
形参数: index:字段集中的索引,最小值为0
返回值:
修改记录:
************************************************************************/
CString CADOConn::GetFieldName(int index)
{
_variant_t vIndex;
CString strFieldName;

if (index < m_pRecordset->Fields->Count)
{
vIndex.vt = VT_I2;
vIndex.iVal = index;
strFieldName = (LPCTSTR)m_pRecordset->Fields->GetItem(vIndex)->GetName();
}
else
{
AfxMessageBox("Invalid index!");
}

return strFieldName;
}

/************************************************************************
函数名: GetFieldsCount
作 者: 谭友亮(Charles Tan)
日 期: 2013-3-6
作 用: 取得列数
形参数:
返回值:
修改记录:
************************************************************************/
int CADOConn::GetFieldsCount()
{
int colNum = m_pRecordset->Fields->Count;