想问下在ADO在数据类型转换的时候用下面的程序,出现error C2511: 'VariantToCString' : overloaded member function 'class CString (const class _variant_t &)' not found in 'CLeftTreeView'
这是怎么回事?应该怎样处理?谢谢!
CString CLeftTreeView::VariantToCString(const _variant_t &var)
{
CString strValue;
switch(var.vt)
{
case VT_BSTR:
case VT_LPSTR:
case VT_LPWSTR:
strValue=(LPCTSTR)(_bstr_t)var;
break;
case VT_I1:
case VT_UI1:
strValue.Format ("%d",var.bVal);
break;
case VT_I2:
strValue.Format ("%d",var.iVal);
break;
case VT_INT:
strValue.Format("%d",var.intVal);
break;
case VT_I4:
case VT_I8:
strValue.Format("%d",var.lVal);
break;
case VT_UINT:
strValue.Format("%d",var.uintVal);
break;
    case VT_I4:
case VT_I8:
strValue.Format("%d",var.ulVal);
break;
case VT_VOID:
strValue.Format("%8x",var.byref);
break;
case VT_R4:
strValue.Format ("%.4f",var.fltVal);
break;
case VT_R8:
strValue.Format ("%.8f",var.dblVal);
break;
case VT_DECIMAL:
strValue.Format("%.8f",(double)var);
break;
case VT_CY:
{
COleCurrency cy= var.cyVal;
strValue=cy.Format();
}
break;
case VT_BLOB:
case VT_BLOB_OBJECT:
case 0x2011:
strValue="[BLOB]";
break;
case VT_BLOB:
strValue=var.boolVal?"TRUE":"FALSE";
break;
    case VT_DATE:
{
DATE dt=var.date;
COleDateTime da=COleDateTime(dt);
strValue=da.Format("%Y-%m-%d%H:%M:%S");
}
break;
    case VT_NULL:
case VT_EMPTY:
strValue="";
break;
case VT_UNKNOWN:
default:
strValue="UN_KNOW";
break;
}
return strValue;
}

解决方案 »

  1.   

    你的函数声明不是CString VariantToCString(const _variant_t &var)
    头文件里写错了吧。
      

  2.   

    我在打开记录集中出现这样的错误
    error C2065: 'm_pRecordset' : undeclared identifier
    这是怎么回事?
    代码如下
    COMCApp*pApp=(COMCApp*)AfxGetApp();
    m_pRecordset.CreateInstance(__uuidof(Recordset));
    try
    {
    recPtr->Open(strSQL.AllocSysString(),
    pApp->m_pConnection.GetInterfacePtr(),
    adOpenDynamic,
    adLockOptimistic;
        adCmdText);
    }
    catch (_com_error e)
    {
    CString strError;
    strError.Format("警告:打开数据表时发生异常。错误信息:%s",\
    e.ErrorMessage());
    AfxMessageBox(strError);
    return FALSE;
    }
        return TRUE;
      

  3.   

    在Stdafx.h文件中加入下面语句来
    // 加入ADO支持库, jingzhou xu
    #import "c:\program files\common files\system\ado\msado15.dll" \
    no_namespace \
    rename ("EOF", "adoEOF")