CreateInstance(__uuidof(Connection)) 不支持此接口解决方法
2014-12-08 16:46
417 查看
bool CAdoMethod::OpenDatabase(CString dbIP, CString dbKey, CString dbName)
{
CString my_connect;
my_connect.Format("Provider=sqloledb;server=%s;database=%s", dbIP, dbName);
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance(__uuidof(Connection));//CreateInstance("ADODB.Connection");
if (SUCCEEDED(hr))
{
hr = m_pConnection->Open((LPCTSTR)my_connect, "sa", (_bstr_t)dbKey, adModeUnknown);
if (SUCCEEDED(hr))
m_IsConnection = true;
else
AfxMessageBox("m_pConnection->Open失败");
}else{
_com_error e(hr);
AfxMessageBox(e.ErrorMessage());
}
}
catch(_com_error e)///捕捉异常
{
m_IsConnection = FALSE;
_bstr_t bstrDescription(e.Description());
TRACE("Exception thrown for classes generated by #import");
TRACE("\t Description = %s \n", (LPCTSTR)bstrDescription);
AfxMessageBox(bstrDescription);
}
return m_IsConnection;
}
刚开始在win7上编译运行没有问题,但是程序拷贝到xp上就出现 不支持此接口的错误提示,找了半天找到原因了,主要是msado15.dll版本不同,在stdafx.h中,
#import "C:\Program Files\Common Files\System\ado\msado15.dll" \
no_namespace rename("EOF", "adoEOF")
此处编译进去的是win7的msado15.dll,当然在xp上没法运行。
解决方法:将xp下的C:\Program Files\Common Files\System\ado\msado15.dll拷贝到win7下相应目录重新编译即可(记得备份啊)
bool CAdoMethod::OpenDatabase(CString dbIP, CString dbKey, CString dbName)
{
CString my_connect;
my_connect.Format("Provider=sqloledb;server=%s;database=%s", dbIP, dbName);
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance(__uuidof(Connection));//CreateInstance("ADODB.Connection");
if (SUCCEEDED(hr))
{
hr = m_pConnection->Open((LPCTSTR)my_connect, "sa", (_bstr_t)dbKey, adModeUnknown);
if (SUCCEEDED(hr))
m_IsConnection = true;
else
AfxMessageBox("m_pConnection->Open失败");
}else{
_com_error e(hr);
AfxMessageBox(e.ErrorMessage());
}
}
catch(_com_error e)///捕捉异常
{
m_IsConnection = FALSE;
_bstr_t bstrDescription(e.Description());
TRACE("Exception thrown for classes generated by #import");
TRACE("\t Description = %s \n", (LPCTSTR)bstrDescription);
AfxMessageBox(bstrDescription);
}
return m_IsConnection;
}
刚开始在win7上编译运行没有问题,但是程序拷贝到xp上就出现 不支持此接口的错误提示,找了半天找到原因了,主要是msado15.dll版本不同,在stdafx.h中,
#import "C:\Program Files\Common Files\System\ado\msado15.dll" \
no_namespace rename("EOF", "adoEOF")
此处编译进去的是win7的msado15.dll,当然在xp上没法运行。
解决方法:将xp下的C:\Program Files\Common Files\System\ado\msado15.dll拷贝到win7下相应目录重新编译即可(记得备份啊)
相关文章推荐
- CreateInstance(__uuidof(Connection)) 不支持此接口解决方法
- CreateInstance(__uuidof(Connection)) 不支持此接口解决方法
- _ConnectionPtr.CreateInstance(__uuidof(Connection))“不支持此接口”错误解决
- CreateInstance(__uuidof(Connection))执行失败的解决办法
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- iisreset 不支持此接口的多种解决方法分享
- C++ CreateInstance("ADODB.Connection");创建接口失败的解决方法
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- WIN7系统VC6中添加OCX出现“不支持此接口” 问题的解决方法
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- CreateInstance(_T("ADODB.Connection"))和CreateInstance(__uuidof(Connection))的区别
- 解决方法:访问接口 "SQLNCLI10" 的架构行集 "DBSCHEMA_TABLES_INFO"。该访问接口支持该接口
- 装了Restorator,打开应用程序,提示不支持此接口的解决方法
- "Host is blocked because of many connection errors"解决方法
- WIN7系统VC6中添加OCX出现“不支持此接口” 问题的解决方法
- N7系统VC6中添加OCX出现“不支持此接口” 问题的解决方法
- Windows 2003 iisreset 不支持此接口原因分析及解决方法
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法