运行的代码:
          CoInitialize(NULL);  //初始化COM库
_ConnectionPtr pConn(__uuidof(Connection)); 
_RecordsetPtr pRst(__uuidof(Recordset)); pConn->ConnectionString="Provider=SQLOLEDB.1;Password=12345678henry;Persist Security      Info=True;User ID=sa;Initial Catalog=机床实时监控信息;Data Source=AD48BAD6679A475\SQLEXPRESS";
        //为数据库连接对象的连接字符串赋值
pConn->Open(" "," "," ",adConnectUnspecified);     
pRst=pConn->Execute("select * from 总表",NULL,adCmdText); 
    while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("加工零件号"));
    
pRst->MoveNext();
}
  pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize(); 但是运行进行连接时出现错误提示!希望各位高手指点迷津!

解决方案 »

  1.   

    错误信息:
    对话框:
    Runtime Error!Program :D:……This application has requested the Runtime to terminate it in unusual way
    Please contact the application's support team for more information
      

  2.   

    问题补充:调试运行到:pConn->Open(" "," "," ",adConnectUnspecified); 时,就不能往下执行了,不明白是什么原因,是不是跟SQL 2005 有关?连接SQL 2000 会容易些吗
      

  3.   

    先把异常捕捉下来,再看看是什么错误,也好定位啊!
    用ADO,一定要try catch。
    另外,用其他的数据库连接工具试验一下,是不是能连上,排除数据库服务本身的问题。
    Windows自带的“管理工具-〉数据源(ODBC)”也是一个可用测试的链接客户端。
      

  4.   

    ConnectionString问题,将Data Source换成指定IP地址。
      

  5.   

    vcpConn->Open(" "," "," ",adConnectUnspecified);    
    open里应该是需要填入如:
    //数据库服务器(local),数据库名staff,用户名sa,密码sa
    这样的数据库的数据的吧,你这样是空的啊。
      

  6.   

    [Quote=引用 5 楼 zhoujianhei 的回复:]
    ConnectionString问题,将Data Source换成指定IP地址。 如果是本机Data Source=.或Data Source=(local)
    如果是远程Data Source=指定IP地址
      

  7.   

    m_pConnection->Open("Driver={SQL Server};Server=192.168.40.106;Database=Account;User ID=sa;PWD=123456","","",adModeUnknown);
      

  8.   

    楼主写得没有错,可以这么用的,但是你后面的Open时的" "空格不正确,中间不能有空格,而是空: ""
    所以将你的三对双引号中的空格去掉就可以了,你试一下:
    pConn->Open(" "," "," ",adConnectUnspecified);    
    改为:
    pConn->Open("","","",adConnectUnspecified);
    //如果还是连不上,就再将后面的adConnectUnspecified换成:adModeUnknown试试。不过我还是建议用我下面这种方法,你只要将IP改为你的实例名就可以了://定义数据库连接字符串     
    _bstr_t ConnectionStr ="Provider=sqloledb;Network Library=DBMSSOCN;Initial Catalog=数据库的名称;User ID=sa;Password=数据库的密码;Data Source=172.16.211.1,1433";
        HRESULT   hr;   
        try   
           {   
             hr=pConn.CreateInstance(__uuidof(Connection));   
             if(SUCCEEDED(hr))   
             {   
                 //不使用DNS,而是使用了SQL的实例方法,打开数据库连接
                   pConn->ConnectionTimeout = 5;///设置超时时间为5秒
          hr=pConn->Open(ConnectionStr, "", "", adModeUnknown);
             }   
             if(SUCCEEDED(hr))   
            {   
               //成功
             }      
          }
    catch(_com_error &e)
    {
              ADOError(e,""); //显示错误的原因,函数在后,你要将定义复制一下放在文件头处否则编译会出错
      return FALSE;
    }void ADOError(_com_error &e,CString strFirstLineText="") //显示ADO错误信息
    {
    ::CoUninitialize(); //先释放COM对象         _bstr_t bstrSource(e.Source());
             _bstr_t bstrDescription(e.Description());
             CString str;
             str.Format("Code = %08lx", e.Error());
             str += "\nMsg: ";   
     str += e.ErrorMessage();
             str += "\nSource: "; 
     str += bstrSource;
             str += "\nDescription: "; 
     str += bstrDescription;  if (strFirstLineText=="") 
     {
      str = "数据库发生错误,信息如下:\n"+str;
     }
             else
     {
      str = strFirstLineText+str;
     }
             AfxMessageBox(str);
    }