hr = theApp.idConn->Open((BSTR)"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\My Documents\\Visual Studio 2005\\Projects\\EPEMv1\\info.mdb","","",adModeRead); //建立连接楼主转意符用了么?

解决方案 »

  1.   

    强烈建议楼主去弄个Ado调试助手,专门帮你解决疑难杂症
      

  2.   

    转义字符?是‘/’么?用相对路径不行,用。udl文件生成的绝对路径加上转义字符也没有用,我看过你以前回复过的那个用转义字符解决的帖子,试过但是无效。
      

  3.   

    转义字符?是‘/’么?用相对路径不行,用。udl文件生成的绝对路径加上转义字符也没有用,我看过你以前回复过的那个用转义字符解决的帖子,试过但是无效。
      

  4.   

    SQL有问题,这样改改试试。
    sql.Format(_T("select * from CHECK_ID where ID=%s code=%s"),v1,v2);
    //--》
    sql.Format(_T("select * from CHECK_ID where ID='%s' AND code='%s'"),v1,v2);
      

  5.   

    catch(_com_error *e)
    {
    AfxMessageBox(e->ErrorMessage());
    }改正catch(_com_error e) 

       //AfxMessageBox("数据库连接失败,确认数据库是否在当前路径下!");    AfxMessageBox( e.Description() );
    } 看看报告什么错误
      

  6.   

    错了
    catch(_com_error e)
    {
    AfxMessageBox("数据库连接失败,请确认数据库info.mdb是否在当前路径下");}
    这里改
      

  7.   

    还有就是我想问下,AfxOleInit();这函数放在一个按钮的响应函数里合适么?应该放在哪里比较合适,程序为多个dialog访问同一个数据库,对话框弹出方式为模态对话框。
      

  8.   

    hr = theApp.idConn->Open((BSTR)"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\My Documents\\Visual Studio 2005\\Projects\\EPEMv1\\info.mdb","","",adModeUnknown); 再看看
      

  9.   

    是【microsoft】【odbc 驱动程序管理器】数据源名称过长
      

  10.   

    我猜,是因为“My Documents\\Visual Studio 2005”字母之间的空格引起的。楼主,你试试,换个路径
      

  11.   

    谢谢你,用L 代替BSTR就可以。虽然详细不知道,但猜测是unicode库的原因
      

  12.   

    http://wenwen.soso.com/z/q198520711.htm以其他方式打开数据库都同样的http://www.w3school.com.cn/ado/met_conn_open.asp
      

  13.   


            Ado调试助手不错!