ADO连接数据库成功,但无法执行SQL语句

zhengshouquan 2016-03-11 12:03:42
如题,程序在客户那边使用,用ADO连接SQL2008数据库成功,但无法执行任何SQL语句,包括执行SELECT 查询,存储过程等。。,但本人的计算机上就没问题。用户使用的win7版本和本人一模一样,急求问题解决方法。。

连接数据库语句:

CString vsql;
vsql.Format("driver=SQL Server;Server=%s;DATABASE=%s;UID=%s;PWD=%s",strServername,strDatabase,strLogin,strPassword);

hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
m_pRecordset.CreateInstance("ADODB.Recordset");
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout = 5;///设置超时时间为5秒
if(m_pConnection->State)
m_pConnection->Close(); ///如果已经打开了连接则关闭它
hr = m_pConnection->Open((_bstr_t)vsql,"","",adModeUnknown);///连接数据库
}

报错信息:
错误编号:80040e37
错误信息:IDispatch error #3127
错误源: Miscrosoft OLE DB Provider for ODBC Drivers
错误描述: [Microsoft][ODBC SQL Server Driver][SQL Server]对象名'gl_test'无效。

执行查询表gl_test就报以上错误信息。很奇怪,怎么错误源怎么是ODBC Drivers.把msado15.dll替换更新都没用。。。


...全文
977 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuankuan_qiao 2016-03-27
  • 打赏
  • 举报
回复
下断点调试 哪句出的错
worldy 2016-03-27
  • 打赏
  • 举报
回复
hr = m_pConnection.CreateInstance("ADODB.Connection")后,m_pConnection的Open在哪里?
zyq5945 2016-03-26
  • 打赏
  • 举报
回复
你用的连接字符串使用的是ODBC驱动,可以用ADO助手试试获取连接字符串和调试SQL语句。
赵4老师 2016-03-11
  • 打赏
  • 举报
回复
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll 在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe 在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
zhengshouquan 2016-03-11
  • 打赏
  • 举报
回复
引用 3 楼 oyljerry 的回复:
ADO对象等是否注册安装好
regsvr32 "C:\Program Files\Common Files\System\ado\msado15.dll" 提示已经注册成功!
oyljerry 2016-03-11
  • 打赏
  • 举报
回复
ADO对象等是否注册安装好
zhengshouquan 2016-03-11
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll 在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe 在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
都是在32位下的

4,011

社区成员

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

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