MFC 远程访问SQL server数据库的问题,急求

itisapity 2014-10-08 10:11:18
用VS2013编的MFC客户端程序,想运行在机器A(XP系统)上并访问在机器B(wiin7系统)上的SQL server 2012,但是总是失败,而且抛出的异常e.Description()是空的。。。而如果在机器C(wiin7系统)上运行则可以访问数据库。这跟客户端操作系统有关吗?求高手帮忙!

连接字符串:Provider=SQLOLEDB.1;Password=123456789;Persist Security Info=True;User ID=sa;Initial Catalog=warehouse;Data Source=10.150.162.222;


连接数据库的代码:
BOOL ADOConn::OnInitADOConn(LPCTSTR ConnStr)
{
::CoInitialize(NULL);

try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = _bstr_t(ConnStr);//"Provider=SQLOLEDB; Server=127.0.0.1;Database=EventLogg; uid=event; pwd=event;";
m_pConnection->Open(strConnect, "", "", adModeUnknown);
return TRUE;
}
// 捕捉异常
catch (_com_error e)
{
// 显示错误信息
TRACE(e.Description());
throw new CADOException("连接数据库失败: " + e.Description()+ " ");
}

}
...全文
150 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
itisapity 2014-10-09
  • 打赏
  • 举报
回复
引用 6 楼 wxhxj0268 的回复:
[quote=引用 3 楼 itisapity 的回复:] [quote=引用 1 楼 oyljerry 的回复:] XP支持的ADO版本是不是跟WIN7不一样
我使用了XP上的msado15.dll,但还是不能在XP上运行[/quote] 你2个系统的位数不同吧?WIN7是不是64位系统[/quote] 已经解决了,用XP上的msado15.dll就可以,不过工程要重新编译,或者干脆把release或debug文件夹删除。谢谢各位!
笨笨仔 2014-10-09
  • 打赏
  • 举报
回复
引用 3 楼 itisapity 的回复:
[quote=引用 1 楼 oyljerry 的回复:] XP支持的ADO版本是不是跟WIN7不一样
我使用了XP上的msado15.dll,但还是不能在XP上运行[/quote] 你2个系统的位数不同吧?WIN7是不是64位系统
zgl7903 2014-10-09
  • 打赏
  • 举报
回复
用系统的ODBC管理工具连接看看是否能成功?
itisapity 2014-10-08
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
XP支持的ADO版本是不是跟WIN7不一样
我使用了XP上的msado15.dll,但还是不能在XP上运行
笨笨仔 2014-10-08
  • 打赏
  • 举报
回复
WIN7上编译的程序拿到XP下试试
oyljerry 2014-10-08
  • 打赏
  • 举报
回复
XP支持的ADO版本是不是跟WIN7不一样
zyq5945 2014-10-08
  • 打赏
  • 举报
回复
可以用ADO助手试试,这个是在XP上编译的,在WIN7上也可以运行,高版本兼容低版本。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧