// CAdotestApp initializationBOOL CAdotestApp::InitInstance()
{
AfxEnableControlContainer();
AfxOleInit();
_ConnectionPtr m_pConnection;
m_pConnection.CreateInstance("ADO.Connection");
try{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=test.mdf",
"",
"",
adModeUnknown);
}
catch(_com_error e){
         AfxMessageBox(e.ErrorMessage());
 return false;
}

我仅在InitInstance函数中加如上面的代码,连接数据库,我用的是SQL 2000做的数据库test.mdf,用Windows身份验证
捕捉到“无效指针”
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename("EOF","adoEOF")
已经加入到stdAfx.h中

解决方案 »

  1.   

    你从控制面板里的数据源看看是不是有Microsoft.Jet.OLEDB的驱动,另外,你的连接字符串没有指定IP地址,
      

  2.   

    m_pConnection.CreateInstance("ADO.Connection");这一句执行失败,m_pConnection是空的,估计是ADO版本的问题,在csdn资源中找系统补丁KB983246装上就好了,win7 vista xp的都有
      

  3.   

    ADODB.Connection。不是ADO.Connection
      

  4.   

    改过来了,又报错了“未指定的错误”,控制面板-数据源-驱动程序里没有JET.OLE.4.0驱动,我连接的数据库是“test.mdf”,行吗?OPEN函数参数有没有填错?
      

  5.   

    CString strcon="DRIVER={Microsoft Access Driver (*.mdb)};\
    uid=xufan;\
    pwd=123456;\
    DBQ=Database1.mdb";改成这样的连接试试看...
      

  6.   

    sql 2000写出来的是*.mdf啊?不是mdb啊!
      

  7.   

    Ado支持WINDOWS系统身份验证吗,没玩过
      

  8.   

    不要用jet,jet驱动一般用于连接excel用oledb驱动,SQL SERVER数据库的正确连接字符串 with windows 认证Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=enter(修改成数据库名);Data Source=192.168.0.7(修改成你的数据库服务器的IP)
      

  9.   

    。。SQL2000 连接字符串写错了
    try{  _bstr_t strConnect="Provider=SQLOLEDB.1;Password=lantian;Persist Security Info=True;User ID=sa;Initial Catalog=yjk;Data Source=192.168.10.8";     m_pConnection->Open(strConnect,"","",adModeUnknown);  }  catch(_com_error e){   MessageBox("连接数据库失败!请与工程部联系,错误代码: "+e.Description());   return FALSE;  }
      

  10.   

    以解决,m_pConnection->Open("Provider=SQLOLEDB;Data Source=(local);Initial Catalog=eshop;uid=sa;pwd=",
    "",
    "",
    adModeUnknown);