void CMy1234Dlg::OnButton1() 
{
    m_list.ResetContent();
int i=0;
m_pConnection.CreateInstance(__uuidof(Connection));
    m_pRecordset.CreateInstance(__uuidof(Recordset));
try{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb"," "," ",0); 
m_pRecordset->Open("SELECT * FROM DemoTable",(IDispatch *)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
i=i+1;
_variant_t theValue = m_pRecordset->GetCollect("Name");
if(theValue.vt != VT_NULL)
m_list.AddString((char *)_bstr_t(theValue));
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->Close();
}
catch(_com_error e) 
{
AfxMessageBox(e.ErrorMessage());    }
char str[32];
sprintf(str,"table have %d record",i);
AfxMessageBox(str);

m_pRecordset = NULL;
    m_pConnection = NULL; }
这是ADO连接ACCESS数据库的部分程序,
为什么运行之后显示:
IDispatch error #3149
table have 0 record
表也没有显示在出来,是不是没连接上,我要怎么改一下
哪位热心人帮忙看一下....

解决方案 »

  1.   

    怎么没人啊.......
    自已ding
      

  2.   

    try{ 
    m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb"," "," ",0);  
    m_pRecordset->Open("SELECT * FROM DemoTable",(IDispatch *)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText); 
    m_pRecordset->MoveFirst(); 
    while(!m_pRecordset->adoEOF) 

    i=i+1; 
    _variant_t theValue = m_pRecordset->GetCollect("Name"); 
    if(theValue.vt != VT_NULL) 
    m_list.AddString((char *)_bstr_t(theValue)); 
    m_pRecordset->MoveNext(); 

    就这部分有错,怎么改啊...
      

  3.   

    你要看哪个连接错误啊,你这里有两个,m_pConnection.和 m_pRecordset,一般的是先检验m_pConnection连接成功后才连接m_pRecordset,你这样混在一起,谁知道是哪个错误。把这两个改一下:
    m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);   
    m_pRecordset->Open("SELECT * FROM DemoTable",_variant((IDispatch *) m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText); 
      

  4.   

    我调试了,当执行了这句:
    m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb"," "," ",0)后 
    再执行: catch(_com_error e) 
    {
    AfxMessageBox(e.ErrorMessage());    }时产生错误...
    楼上的几位兄弟哥哥帮帮我,谢谢!