给你一个例子:
_variant_t Index; Index.vt=VT_I2;
for (int i=0;i<pRecordset->GetFields ()->Count;i++)                            {
       Index.iVal =i;
       FieldPtr FieldVal = pRecordset->GetFields()->GetItem(Index); 
       if ( FieldVal->ActualSize !=0 )
   {                             // field is not empty 
             strField[i].Format ("%s",(char*)(_bstr_t)FieldVal->Value) ;

   }
       else
   {          // field is empty ,setItemText is space
         strField[i]=" ";
   }

}
这里 strField[i]
是一个数组,我取每条纪录放入数组中

解决方案 »

  1.   

    试着写了写:CString strName
    _variant_t  Index;
    Index.vt=VT_I2;  FieldPtr  FieldVal=m_pRec->GetFields()->GetItem(Index);
    if  (  FieldVal->ActualSize  !=0  )
       {
          strName.Format  (  "%s",(char*)(_bstr_t)FieldVal->Value) ;
       }一运行出了许多错啊。FieldPtr是什么类,MSDN都查不到的。还有_variant_t,需要包含ComDEF.h,VC里对数据操作这么麻烦哪?象MSDN的例子那样用rs.GetFieldValue不行吗?似乎那样要简单一些,只是不明白该怎样写
      

  2.   


    Somebody....
        
       Anybody....这是最基本的数据库操作吧,50分丢在马路上都没有人捡么?
      

  3.   

    白丢了。
    oracle的表名和列名都是大写的(内部转换了),所以最好用idx;
      

  4.   

    “最好用idx”说的是用rs.GetFieldValue( index, varValue )还是楼上介绍的_variant_t  Index?前者试过了,还是出错后者代码里FieldPtr FieldVal = pRecordset->GetFields()->GetItem(Index); 中的FieldPtr是什么类?编译出错:error C2065: 'FieldPtr' : undeclared identifier查了MSDN,查不到FieldPtr啊
      

  5.   

    不好意思我去看了一下,果然没有FieldPtr,
    我是使用ADO操作数据库,当初是别人的代码,也没有仔细看
    能使用就可以了
    没有想到在你那里又这问题
    我问问先
      

  6.   

    参看了一下因为我使用的是ADO,因此在import Msado15.dll 的时候,会引入FieldPtr
    所以我可以使用
    而你不是使用ADO因此你那里会错我使用FieldPtr 的目的主要是检测字段是否为空
    如果你不检测
    可以这样访问
    pRecordset->GetFields()->GetItem(Index)->Value
    是一样的
    注意Index 
    _variant_t Index;
    Index.vt=VT_I2;
    Index.iVal =i;需要指定你要访问的列
      

  7.   

    根据字段名访问_RecordsetPtr MySet;
    MySet.CreateInstance(__uuidof(Recordset));
    MySet->Open("SELECT * FROM ftp",m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic, adCmdText);
    MySet->GetCollect("字段名");
    CString sValue=(char *)_bstr_t(TheValue);
    sValue.TrimRight();
    sValue就是字段值了