代码如下
_ConnectionPtr   ADOConn; 
_RecordsetPtr   m_pADOSet;
CString   strConnect; 
::CoInitialize(NULL); 
strConnect="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ascw;Data Source=notebook";

try 

//ADOConn.CreateInstance(__uuidof(Connection)); 
ADOConn.CreateInstance( "ADODB.Connection");  
 if   (ADOConn==NULL) 
        { 
            AfxMessageBox( "失败!   \r\n "); 
            return; 
        }
//ADOConn-> Open((const   char   *)strConnect, " ", " ",adModeUnknown);//adConnectUnspecified 
ADOConn-> Open((_bstr_t)strConnect, " ", " ",adModeUnknown);  } 
catch(_com_error e)///捕捉异常
{
  CString errormessage;
  errormessage.Format(_T("连接数据库失败!/r/n错误信息:%s"),e.ErrorMessage());
  AfxMessageBox(errormessage);
}
------------------------------------------
执行到ADOConn-> Open时出现异常,e.ErrorMessage()信息为IDispatch error #3149,连接字符串是没问题的,已经连接测试成功的,大家帮忙看下是什么问题,谢谢了!

解决方案 »

  1.   

    你连的是什么数据库?Access么?连用户名和密码都不用
      

  2.   

    sqlserver2000,密码为空,password=;可加可不加的,就算加上也是报一样的错误!
      

  3.   

    连接字符串是没问题的,已经在vb里用ado.connection对象连接测试成功!
      

  4.   

    连接串有问题,给你个方法,建个记事本,把里面内容清空,把记事本扩展名写为.udl,双击打开,配置连接数据库的信息,然后测试连接成功后,确定。 再用记事本方式打开.udl文件,里面有连接串,那个串一定是对的,有疑问可找我QQ:275059714
      

  5.   

    另外补充下,代码头部为#import "c:/program files/common files/system/ado/msado15.dll" no_namespace  rename("EOF","adoEOF") rename("BOF","adoBOF")sqlserver2000的安全性设置为sqlserver和windows,安全性设置是没问题的
      

  6.   

    连接字符串是没有问题的,已经在vb里用ado.connection对象连接测试成功!
      

  7.   

    给的软件里有测试SQL和连接字符串的功能。
      

  8.   

    连接字符串是没有问题的,已经在vb里用ado.connection对象连接测试成功;同时也将其保存为udl文件测试连接成功!
      

  9.   

    问题解决了,不是字符串的问题,是open时输入的参数" "有误,应该是"",太隐蔽了;
    最后得感谢竹叶青的软件,试过字符串连接数据库是没问题的,就顺便复制了软件里open的代码,哪知道居然连接成功,最后仔细比较了下,原来是参数出问题!