我用了
if(pConnection->State==0)
     MessageBox("连接服务器失败!");//发现不论是否连接成功都等于1
if(pConnection->Errors->Count!=0)  //     !=2也试了
     MessageBox("连接服务器失败!");  //发现不论是否连接成功都等于0if(pConnection->State==adStateOpen)  //发现不论是否连接成功都等于adStateOpen 怎么回事呢?
或者那位能告诉我,vc那个控件专门用来连接数据库,不做别的操作,可以用来程序开头让用户登录某个sqlserver服务器的?    

解决方案 »

  1.   

    HRESULT hr;
    hr=pConnection->Open();
    if(FAILED(hr));
      MessageBox("连接失败");orif(SUCCESSDED(hr))
      MessageBox("连接成功");
      

  2.   

    你可以在程序的初始化中连接数据库
    try
    {
    m_pConnection->Open("Driver={SQL Server};Server=localhost;Database=Northwind;UID=sa;PWD=wxy","","",adModeUnknown);.........//其他数据库操作
    }
    catch(_com_error e)
    {
    //处理错误吧
    }
      

  3.   

    不行呀
    不论是否连接的上failed都是0
      

  4.   

    CString database;
    database="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog="+dbname+";Data Source="+sqlip;  
    try
    {    
       hr=pConnection->Open((_bstr_t)database,"","",adModeUnknown);
    }catch(_com_error e)
    {
        MessageBox("连接失败");

    dbname和sqlip不论怎么写,都不会弹出连接失败的对话框!!
      

  5.   

    dbname 这个是个连接服务器时的默认数据库  你还需要输入用户明和密码 ?
      

  6.   

    HRESULT hr;
    hr=pConnection->Open();
    if(FAILED(hr));
      MessageBox("连接失败");
    else
      MessageBox("连接成功");
      

  7.   

    dbname是我选择的数据库
    我也很奇怪,不需要输入用户名和密码就可以登陆
    这个是不是windows登录方式呀
      

  8.   

    我知道了,似乎都是Integrated Security=SSPI惹得祸