谢谢

解决方案 »

  1.   

    FieldsPtr pFields;
    m_pRecordset->get_Fields(&pFields);
    int ncol=pFields->Count;
    就这样.
      

  2.   

    有一个简单的方法
    long recnum = m_pRs->GetRecordCount();
      

  3.   

    同意cupid008f4(吓不倒)和楼上的
      

  4.   

    try
    {
    CString str;
    str.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s", str_AccessDBName);
    m_pConnectionAccess.CreateInstance("ADODB.Connection");
    m_pConnectionAccess->Open((_bstr_t)str,"","",adModeUnknown);/// m_pRecordsetAccess.CreateInstance("ADODB.Recordset");
    }
    catch(_com_error e)   
    {
    n_ErrorFlag = 1;
    // ::MessageBox(NULL, "连接源数据库失败!","系统提示",MB_OK);
    return FALSE;
    }
    try
    {
    m_pRecordsetAccess->Open((_bstr_t)sql,_variant_t((IDispatch *)m_pConnectionAccess,true),adOpenKeyset,adLockPessimistic,adCmdText);
    m_pRecordsetAccess->MoveFirst ();
    }
    /////注意:open()中第三个参数要用adOpenKeyset,不要用adOpenDynamic
    catch(_com_error e)   
    {
    n_ErrorFlag = 2;
    // ::MessageBox(NULL, "打开导表出失败!","系统提示",MB_OK);
    return FALSE;
    }
    CString strcount;
    int ltemp;
    ltemp = m_pRecordsetAccess->RecordCount ;