_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
_variant_t var;
CString strName,strAge;m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
try                 
{
// 打开本地Access库Demo.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\book.mdb","","",adModeUnknown);
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT * FROM book",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
m_pRecordset->MoveLast();
/*
m_pRecordset->AddNew();
m_pRecordset->PutCollect("name", _variant_t("李白"));
m_pRecordset->PutCollect("pass", "admin");
m_pRecordset->Update();
AfxMessageBox("插入成功!");
*/
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("name");
if(var.vt!= VT_NULL)
strName = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("pass");
if(var.vt != VT_NULL)
strAge = (LPCSTR)_bstr_t(var);m_list.InsertString(1,"hi"); m_pRecordset->MoveNext(); }
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!!");
}      

解决方案 »

  1.   

    _ConnectionPtr m_pConnection;
    _RecordsetPtr m_pRecordset;
    _variant_t var;
    CString strName,strAge;m_pConnection.CreateInstance(__uuidof(Connection));
    m_pRecordset.CreateInstance(__uuidof(Recordset));
    try                 
    {
    // 打开本地Access库Demo.mdb
    m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\book.mdb","","",adModeUnknown);
    m_pRecordset->Open("SELECT * FROM book",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
    m_pRecordset->MoveFirst();
    while(!m_pRecordset->adoEOF)
    {
    var = m_pRecordset->GetCollect("name");
    if(var.vt!= VT_NULL)
    strName = (LPCSTR)_bstr_t(var);
    var = m_pRecordset->GetCollect("pass");
    if(var.vt != VT_NULL)
    strAge = (LPCSTR)_bstr_t(var);m_list.AddString("hi"); m_pRecordset->MoveNext(); }
    m_pRecordset->Close();
    m_pConnection->Close();
    }
    catch(_com_error e)
    {
    AfxMessageBox("数据库连接失败!!");
    }      
    m_pRecordset.Release();
    m_pConnection.Release();
      

  2.   

    编译时在m_list.AddString("hi");处报错
      

  3.   

    看来你的问题还是调用这段函数的位置在哪里?是不是m_list无效?