麻烦各位帮忙看看啊代码如下:
CoInitialize(NULL);    _ConnectionPtr pConn(__uuidof(Connection)); 
_RecordsetPtr pRst(__uuidof(Recordset)); pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\access\db1.mdb;Persist Security Info=False";
pConn->Open("","","",adConnectUnspecified);
         pRst=pConn->Execute("select * from author",NULL,adCmdText);
    while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("jk"));
pRst->MoveNext();
}
pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release(); CoUninitialize();
编译通过,但执行出错abnormal program termination

解决方案 »

  1.   

    D:\access\db1.mdb;
    改成
    D:\\access\\db1.mdb
    试试
      

  2.   

    pRst.Release();
    pConn.Release();
    pRst->Close();
    pConn->Close();
    顺序反了吧.
      

  3.   

      
    改成如下形式试试(未在本人机器上测试过)
    ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\access\db1.mdb;Persist Security Info=False";
    pConn->Open(ConnectionString,"","",adConnectUnspecified); 
      

  4.   

    pConn->Open("","","",adConnectUnspecified); 
    改为
    pConn->Open("","","",adModeUnknown); 试试
      

  5.   

    ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\access\db1.mdb;Persist Security Info=False"; 
    这个路径,肯定不行的!D:\\access\\db1.mdb
    用这样:
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\access\\db1.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password=''
    另外,打开access,一般是这样:pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\access\\db1.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password=''","","",adModeUnknown); 
    这样,不设置ConnectionString了!
      

  6.   

    这是一个非常简单的例子:
    http://download.csdn.net/source/1070271
    你下载下来看看!
      

  7.   

    去掉:
    pRst.Release(); 
    pConn.Release(); 
      

  8.   


    同意楼上的观点。
    如果还是有问题的话,看下
    ((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
    (_bstr_t)pRst->GetCollect("jk"));
    pRst->MoveNext();

     这里字段'jk'类型 用_bstr_t来转化对不?
    String m_csMBOwnerTEL = pRst->GetCollect("jk").bstrVal;//前提是你的jk字段属于字符串型的
    这里如何没有搞对,很容易引起abnormal program termination。我曾经很有体会遇到过。
    建议你设置一个MessageBox()提示来调试下你的abnormal program termination出现在那个语句的前后,进而排除错误,找到答案!祝你好运。