下面是连接数据库时候的代码 ::CoInitialize(NULL);
strname.Format("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=%s;Data Source=.",strsjk);
//strsjk为传进来的数据库名
try
{
           m_pConnection.CreateInstance("ADODB.Connection");//m_pConnection为_ConnectionPtr型
   _bstr_t strConnect=strname;
   m_pConnection->Open(strConnect,"","",adModeUnknown);
}
  catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
调试到红色代码时候,跟不下去了,提示很多如Loaded 'C:\WINDOWS\system32\dbnmpntw.dll', no matching symbolic information found.之类的信息。
这是怎么回事呢???我改了下
     strname.Format("Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=%s");
try
{
       m_pConnection.CreateInstance("ADODB.Connection");
       m_pConnection->ConnectionString = _bstr_t(strname);
       m_pConnection->Open("","","",adModeUnknown);
.................................
改成上面也是同样的问题 ,不知道怎么了  谢谢
 

解决方案 »

  1.   

    数据库在本地机器上吗? 改成如下:strname.Format("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=%s;Data Source=localhost",strsjk);
      

  2.   

    首先要看你的数据库是什么登录方式??混合认证的话,要用户名与密码,windows身份认证的话,则只要写SSPI,不要提供用户名与密码。。
      

  3.   

    另外,如果不是用的本地数据库,则需要提供数据库服务器的IP,如192.168.0.12:
    strname.Format("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=%s;Data Source=192.168.0.12",strsjk);
      

  4.   

    上面第一个是windows身份认证
    后来我改成混合认证了  但是 都没行通???
    恩 兄弟 可以去我另外2帖子留个话,我好把那2帖子结了,不然分浪费了可惜
      

  5.   

    你现在改成windows认证,用我上面的语句可以成功吗??
      

  6.   


    晕了 今天太蹊跷了
    还是提示Loaded 'C:\WINDOWS\system32\winrnr.dll', no matching symbolic information found.之类的提示
      

  7.   

    把debug目录清空,重新编译再运行看看。。
      

  8.   


    要是不调试的话就弹出个对话框,说是:用户'(NULL)'登陆失败。原因:未与信任SQL Server连接相关联
      

  9.   

    那你改成混合认证模式,再用如下字符串登录试试:
    Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=;Initial Catalog=%s;Data Source=IP
      

  10.   


    ok  搞定 
    可以了 不过不是很清楚为什么window认证登陆不行呢???有点迷糊。
    恩  非常感谢你哦