想要读出Access数据库中的备注数据类型的数据。这是一个很长的中文注释。用
CDBVariant varValue;
m_recordset->GetFieldValue( 5, varValue );
提示数据被截断,行不通。请问还有没有别的方法。最好有代码,小弟刚学数据库编程不久。先谢了。

解决方案 »

  1.   

    _variant varValue;
    m_recordset->GetFieldValue( 5, varValue );再将varValue转成CString
      

  2.   

    error C2065: '_variant' : undeclared identifier
    syntax error : missing ';' before identifier 'varValue'
    C2065: 'varValue' : undeclared identifier
    出现如上的错误。
    这里的_variant是什么类型啊。怎么CSDN里找不到?
      

  3.   

    CDBVariant 能处理的数据类型
    union
    {
      BOOL              m_boolVal;
      unsigned char     m_chVal;
      short             m_iVal;
      long              m_lVal;
      float             m_fltVal;
      double            m_dblVal;
      TIMESTAMP_STRUCT* m_pdate;
      CString*          m_pstring;
      CLongBinary*      m_pbinary;
    };
    _variant_t能处理的数据类型:
    struct  tagVARIANT
        {
        union 
            {
            struct  __tagVARIANT
                {
                VARTYPE vt;
                WORD wReserved1;
                WORD wReserved2;
                WORD wReserved3;
                union 
                    {
                    LONG lVal;
                    BYTE bVal;
                    SHORT iVal;
                    FLOAT fltVal;
                    DOUBLE dblVal;
                    VARIANT_BOOL boolVal;
                    _VARIANT_BOOL bool;
                    SCODE scode;
                    CY cyVal;
                    DATE date;
                    BSTR bstrVal;
                    IUnknown __RPC_FAR *punkVal;
                    IDispatch __RPC_FAR *pdispVal;
                    SAFEARRAY __RPC_FAR *parray;
                    BYTE __RPC_FAR *pbVal;
                    SHORT __RPC_FAR *piVal;
                    LONG __RPC_FAR *plVal;
                    FLOAT __RPC_FAR *pfltVal;
                    DOUBLE __RPC_FAR *pdblVal;
                    VARIANT_BOOL __RPC_FAR *pboolVal;
                    _VARIANT_BOOL __RPC_FAR *pbool;
                    SCODE __RPC_FAR *pscode;
                    CY __RPC_FAR *pcyVal;
                    DATE __RPC_FAR *pdate;
                    BSTR __RPC_FAR *pbstrVal;
                    IUnknown __RPC_FAR *__RPC_FAR *ppunkVal;
                    IDispatch __RPC_FAR *__RPC_FAR *ppdispVal;
                    SAFEARRAY __RPC_FAR *__RPC_FAR *pparray;
                    VARIANT __RPC_FAR *pvarVal;
                    PVOID byref;
                    CHAR cVal;
                    USHORT uiVal;
                    ULONG ulVal;
                    INT intVal;
                    UINT uintVal;
                    DECIMAL __RPC_FAR *pdecVal;
                    CHAR __RPC_FAR *pcVal;
                    USHORT __RPC_FAR *puiVal;
                    ULONG __RPC_FAR *pulVal;
                    INT __RPC_FAR *pintVal;
                    UINT __RPC_FAR *puintVal;
                    struct  __tagBRECORD
                        {
                        PVOID pvRecord;
                        IRecordInfo __RPC_FAR *pRecInfo;
                        } __VARIANT_NAME_4;
                    } __VARIANT_NAME_3;
                } __VARIANT_NAME_2;
            DECIMAL decVal;
            } __VARIANT_NAME_1;
        };
      

  4.   

    问题是怎么从数据库中读出那一长串中文的注释。
    m_recordset->GetFieldValue( 5, varValue );不行。
    还有读出后怎么转成CString型。