try
  {  HRESULT hr;
   hr=m_pconnection.CreateInstance(__uuidof(Connection));
   if(SUCCEEDED(hr))
   {     //设置连接属性为udl文件
m_pconnection->ConnectionString="File Name =my_data1.udl";
m_pconnection->ConnectionTimeout=20;
hr=m_pconnection->Open(" "," "," ",adConnectUnspecified);
       if(FAILED(hr))
   {AfxMessageBox("open fail! ");
     return true;
    }
       else
           {  AfxMessageBox("createinstance of connection fail!");
              return true;
            }
   
          }      }
  catch(_com_error e)
  {
    //给出异常信息
      _bstr_t bstrsource(e.Source());
      _bstr_t bstrdecription(e.Description());
      AfxMessageBox(bstrsource+bstrdecription);
  return true;  }
运行后  程序捕到异常,给出提示:
{"[Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序" (1)}
用ado可以直接连SQL吧,为什么还要odbc设置呢?在udl文件中打开后,已经提供ole for sql 驱动,并且连接成功
我的udl文件是放在工程目录文件下的,请高手解答,谢谢

解决方案 »

  1.   

    不好意思
    else前有个打括号  }
      

  2.   

    ADO连接数据库不用配置ODBC,在instance()里运行了init()了?
      

  3.   

    我是在一个对话框类的oninitdialog()中加入上述代码的
    刚才用以下代码换替换udl文件后就连ok了
    CString str;
    str="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DVDrentDB;Data Source=BUAA121";
    m_pconnection->ConnectionString=_bstr_t(str);是不是与使用udl文件这种连接方式有关呢
    不明白
      

  4.   

    在系统中打开你的udl文件文件能正常连接到数据库吗?
      

  5.   

    连接字符串的data source 和database有什么区别啊?为什么data source 连不上呢
      

  6.   

    _RecordSet myset;
    myset->Open("select * from gdk",
    m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);