首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

ado连接数据库类,函数重载有关问题

2012-03-18 
ado连接数据库类,函数重载问题?大家好请教一个问题,在这个函数BOOL CAdoRecordSet::PutCollect(LPCTSTR st

ado连接数据库类,函数重载问题?
大家好请教一个问题, 
在这个函数
BOOL CAdoRecordSet::PutCollect(LPCTSTR strFieldName, const BYTE &value)
{
ASSERT(m_pRecordset != NULL);
#ifdef _DEBUG
if (GetFieldType(strFieldName) != adUnsignedTinyInt)
AfxMessageBox("你要存储的字段与变量的数据类型不符");
#endif
ASSERT(GetFieldType(strFieldName) == adUnsignedTinyInt);

错误:return PutCollect(strFieldName, _variant_t(value));
}
提示error C2668: “CAdoRecordSet::PutCollect”: 对重载函数的调用不明确
 可能是“BOOL CAdoRecordSet::PutCollect(LPCSTR,const BYTE &)”
e:\hyproject\dbtest\ado.h(156): 或 “BOOL CAdoRecordSet::PutCollect(LPCSTR,const short &)”
e:\hyproject\dbtest\ado.h(155): 或 “BOOL CAdoRecordSet::PutCollect(LPCSTR,const int &)”
e:\hyproject\dbtest\ado.h(154): 或 “BOOL CAdoRecordSet::PutCollect(LPCSTR,const long &)”
试图匹配参数列表“(LPCTSTR, _variant_t)”时
实际类中有下面这个函数但是编译时报上面错误
BOOL CAdoRecordSet::PutCollect(LPCSTR strFieldName, _variant_t &value)
{
ASSERT(m_pRecordset != NULL);
try
{
if (m_pRecordset != NULL) 
{
m_pRecordset->put_Collect(_variant_t(strFieldName), value);
}
}
catch (_com_error e)
{
return FALSE;

returnFALSE;
}

[解决办法]
BOOL CAdoRecordSet::PutCollect(LPCSTR strFieldName, _variant_t &value)
改成
BOOL CAdoRecordSet::PutCollect(LPCSTR strFieldName, const _variant_t &value)
试试。

热点排行