如题,程序在客户那边使用,用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替换更新都没用

解决方案 »

  1.   

    在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
      

  2.   

    ADO对象等是否注册安装好
      

  3.   


    regsvr32 "C:\Program Files\Common Files\System\ado\msado15.dll"
    提示已经注册成功!
      

  4.   

    你用的连接字符串使用的是ODBC驱动,可以用ADO助手试试获取连接字符串和调试SQL语句。
      

  5.   

    hr = m_pConnection.CreateInstance("ADODB.Connection")后,m_pConnection的Open在哪里?