ADO连不上数据库?运行程序时出现:Microsoft OLE DB Provider for SQL Server 用户登录‘sa’失败

时间:2023-02-21 22:21:00
运行程序时出现:Microsoft OLE DB Provider for SQL Server 用户登录‘sa’失败
用ADO连接本地数据库SQL Server2008,用VS2010在当前工程下建立了my_data.udl文件,然后双击后,测试数据库连接成功。代码中利用。
HRESULT hr;
  try
  {
  //实例化连接对象
  hr=m_pConnection.CreateInstance(__uuidof(Connection));
  if(SUCCEEDED(hr))
  {
  //设置连接串属性为UDL文件
  m_pConnection->ConnectionString="File Name=my_data1.udl";
  //设置等待连接打开的时间为20秒
 
  m_pConnection->ConnectionTimeout=20;
  hr=m_pConnection->Open("","","",adConnectUnspecified);
  //hr = m_pConnection->Open(strConnect,"","",NULL);
  if(FAILED(hr))
  {
  AfxMessageBox(TEXT("open fail!"));
  return TRUE;
  }
  }
  else 
  {
  AfxMessageBox(TEXT("createinstance of Connection fail!"));
  return TRUE;
  }
  }
  catch (_com_error e) 
  {
  _bstr_t bstrSource(e.Source());
  _bstr_t bstrDescription(e.Description());
  AfxMessageBox(bstrSource+bstrDescription);
  return TRUE;
  }

7 个解决方案

#1


将my_data1.udl的内容复制赋值给m_pConnection->ConnectionString试试。

#2


该回复于2012-10-23 09:37:58被版主删除

#3


OLE初始化了没有,在工程的初始化函数里加上:AfxInitOle();

#4


引用 1 楼  的回复:
将my_data1.udl的内容复制赋值给m_pConnection->ConnectionString试试。

改完以后出现:Microsoft OLE DB Provider for ODBC Drivers[Microsoft][ODBC驱动程序管理器]未发现数据源名称,并且为指定默认驱动程序

#5


引用 3 楼  的回复:
OLE初始化了没有,在工程的初始化函数里加上:AfxInitOle();
我在InitInstance里面初始化完COM了。

#6


连接字符串里的驱动源改成类似Microsoft OLE DB1.1(具体忘了,就是后面有个版本号1.1),你在控制面板里的数据源里看看你的计算机里都有什么数据源,如果没有你建立一个数据源,但驱动是不变的

#7


问题解决了,建立.udl文件的时候,双击.udl文件后,输入sa,当输入密码后,点上“允许保存密码”单选框即可。这样就把密码写入到了.udl文件中了。

#1


将my_data1.udl的内容复制赋值给m_pConnection->ConnectionString试试。

#2


该回复于2012-10-23 09:37:58被版主删除

#3


OLE初始化了没有,在工程的初始化函数里加上:AfxInitOle();

#4


引用 1 楼  的回复:
将my_data1.udl的内容复制赋值给m_pConnection->ConnectionString试试。

改完以后出现:Microsoft OLE DB Provider for ODBC Drivers[Microsoft][ODBC驱动程序管理器]未发现数据源名称,并且为指定默认驱动程序

#5


引用 3 楼  的回复:
OLE初始化了没有,在工程的初始化函数里加上:AfxInitOle();
我在InitInstance里面初始化完COM了。

#6


连接字符串里的驱动源改成类似Microsoft OLE DB1.1(具体忘了,就是后面有个版本号1.1),你在控制面板里的数据源里看看你的计算机里都有什么数据源,如果没有你建立一个数据源,但驱动是不变的

#7


问题解决了,建立.udl文件的时候,双击.udl文件后,输入sa,当输入密码后,点上“允许保存密码”单选框即可。这样就把密码写入到了.udl文件中了。