我的机子上有两个服务器:wtx和wtx\U8M,当前活动的服务器为wtx\U8M
我的代码如下:
   CoInitialize(NULL);
   m_pConnection.CreateInstance(_uuidof(Connection));
   try 
   {
   CString strConnection;  //连接字符串
   strConnection="DRIVER={SQL SERVER};DATABASE=u8m; UID=sa;PWD=; SERVER=wtx\U8M";
   m_pConnection->Open((_bstr_t)strConnection,"","",adModeUnknown);
   }
   catch(_com_error e)
   {
   AfxMessageBox("数据库连接失败");
   //return false;
   }
......
怎么联接都是失败
请高手指点.谢谢

解决方案 »

  1.   

    到www.vckbase.com找 UDL文件建立的方法
      

  2.   

    http://community.csdn.net/Expert/topic/3394/3394849.xml?temp=.8164331
    不知道有帮助没
      

  3.   

    不行啊 用此联接时,strConnection="DRIVER={SQL SERVER};DATABASE=u8m; UID=sa;PWD=; SERVER=wtx";
       显示的错误代码为:
    [microsoft][ODBC SQLSERVER DRIVER][SQL SERVER]无法打开登陆'u8m'中请求的数据库.登陆失败.当用 strConnection="DRIVER={SQL SERVER};DATABASE=u8m; UID=sa;PWD=; SERVER=wtx\U8M"; 时
    显示的错误代码为:
    [microsoft][ODBC SQLSERVER DRIVER][SQL SERVER]SQL SERVER dos not exist or access denied还有这里server的名字到底是主机的名字还是数据库服务器的名字?
       
      

  4.   

    strConnection = _T("Provider=sqloledb;Data Source=wtx;Initial Catalog=u8m;User Id=sa;Password=;"); 这样写试试看。。
      

  5.   

    你那个是用ADO通过ODBC连接数据库,另外一个是通过ADO的SQL SERVER数据库驱动直连数据库你服务器的名字是什么??数据库名称呢???
      

  6.   

    我的机子上有两个数据库服务器 wtx和wtx\U8M 。数据库的名称是u8m,位于wtx\U8M 下
    主机的名字是wtx
    在我的联接方式中,请问server的名字是到底主机的名字还是数据库服务器的名字?
      

  7.   

    Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=temp;Data Source=localhost在上面的语句当中,localhost是数据库服务器的名字,temp是数据库服务器上面数据库的名字。。
      

  8.   

    应该说是服务器wtx和他的一个实例wtx\U8M?
      

  9.   

    我将数据库u8m导入到服务器wtx里去用
    strConnection="DRIVER=SQL SERVER;DATABASE=u8m; UID=sa;PWD=; SERVER=127.0.0.1";联接,成功了,是怎么回事?
      

  10.   

    还有直接写数据库服务的IP ,别写机器名1.stdafx.h中加入
    #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 
    2。app文件的InitInstance中加入
    if(S_OK!=OleInitialize(NULL))
    {
    AfxMessageBox("初始化COM组件库错误");
    }
    下面就是数据库操作
    _ConnectionPtr pConn;
    _RecordsetPtr  pRs;
    CString strSQL;
    pConn.CreateInstance(__uuidof(Connection));
    pConn->CursorLocation=adUseClient;
    strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
    pConn->Open(_bstr_t(strSQL),"","",-1);

    pRs.CreateInstance(__uuidof(Recordset));
    pRs->CursorLocation=adUseClient;
    pRs->PutActiveConnection(pConn.GetInterfacePtr());

    pRs1.CreateInstance(__uuidof(Recordset));
    pRs1->CursorLocation=adUseClient;
    pRs1->PutActiveConnection(pConn.GetInterfacePtr()); strSQL="select * from catalog order by cataid";
    pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
      

  11.   

    我只是在连接数据库的过程中失败,其他的地方没有错误.
    我的机子上有两个数据库服务器wtx和wtx\U8M,
    我要登陆的数据库位于wtx\U8M下.服务器的名字不管写机器名还是ip都是一样的.都是失败
    用此联接时,strConnection="DRIVER={SQL SERVER};DATABASE=u8m; UID=sa;PWD=; SERVER=wtx";
       显示的错误代码为:
    [microsoft][ODBC SQLSERVER DRIVER][SQL SERVER]无法打开登陆'u8m'中请求的数据库.登陆失败.当用 strConnection="DRIVER={SQL SERVER};DATABASE=u8m; UID=sa;PWD=; SERVER=wtx\U8M"; 时
    显示的错误代码为:
    [microsoft][ODBC SQLSERVER DRIVER][SQL SERVER]SQL SERVER dos not exist or access denied还有这里server的名字到底是主机的名字还是数据库服务器的名字?
      

  12.   

    都是在本机上运行的,不会存在网络问题.
    我认为问题是出在这两个数据库服务器上.wtx和wx\U8M当我将数据库u8m导入到服务器wtx里去用
    strConnection="DRIVER=SQL SERVER;DATABASE=u8m; UID=sa;PWD=; SERVER=127.0.0.1";
    用此语句连接时,成功了.所以不存在语句和其他方面的问题
      

  13.   

    我试过,不行.
    我现在急于知道的就是SERVER的名字到底是数据库服务器的名字还是主机的名字?
    为什么我把数据库导入倒wtx下,连接成功,而在wtx\u8m下不成功?
      

  14.   

    问题已解决,我很遗憾在csdn上没有找到答案,也许是我的问题不够清楚明白,也许是csdn上的高手对这类弱智的问题不屑一顾吧.不过还是要感谢大家.