[b]VS2010 MFC 利用ADO调用SQL2000数据库. 求好心人,为我解答解答!本机装的是SQL2008,运行MFC执行文件通过TCP/IP,用户名,密码,连接局域网内装有SQL2000的电脑,连接成功,并且程序运行正常。
但是,将exe文件拷贝到那台装有SQL2000的电脑上,再运行时,却在创建
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
会失败,出现“程序异常,创建实例失败!”,不知道是什么原因?代码:
BOOL CPage4::AutoDataInsertDataBase()
{
_ConnectionPtr pMyConnect = NULL;
_RecordsetPtr pRecordset = NULL; HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if(FAILED(hr))
{
MessageBox(_T("程序异常,创建实例失败1!"),_T ("警告"),MB_ICONWARNING|MB_OK);
return FALSE;
}
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
MessageBox(_T("程序异常,创建实例失败2!"),_T("警告"),MB_ICONWARNING|MB_OK);
return FALSE;
}
if(!OpenDataBase(pMyConnect, pRecordset))
{
MessageBox(_T("数据库打开失败!请先确认数据库参数配置是否正确!"),_T("警 告"),MB_ICONWARNING|MB_OK);
return FALSE;
} pMyConnect->Close(); /*****关闭数据库****/
pMyConnect.Release();
pMyConnect = NULL;
pRecordset.Release();
pRecordset = NULL;
return TRUE;
}BOOL CPage4::OpenDataBase(_ConnectionPtr &nMyConnect, _RecordsetPtr &nRecordset)
{
CString tempConnect;
tempConnect.Format(_T("Provider=SQLOLEDB;Server=%s;Database=%s;uid=%s;pwd=%s;"), dbSetInfo.ServerName, bSetInfo.DataBaseUser, dbSetInfo.DataBasePassWord); _bstr_t strConnect = (_bstr_t)tempConnect;
//执行连接
try
{
nMyConnect->Open(strConnect, "", "", NULL);
}
catch (_com_error &e)
{
MessageBox(e.Description(), _T("警告"), MB_OK|MB_ICONINFORMATION);
return FALSE;
}
return TRUE;
}[/b]mfcsql数据库
但是,将exe文件拷贝到那台装有SQL2000的电脑上,再运行时,却在创建
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
会失败,出现“程序异常,创建实例失败!”,不知道是什么原因?代码:
BOOL CPage4::AutoDataInsertDataBase()
{
_ConnectionPtr pMyConnect = NULL;
_RecordsetPtr pRecordset = NULL; HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if(FAILED(hr))
{
MessageBox(_T("程序异常,创建实例失败1!"),_T ("警告"),MB_ICONWARNING|MB_OK);
return FALSE;
}
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
MessageBox(_T("程序异常,创建实例失败2!"),_T("警告"),MB_ICONWARNING|MB_OK);
return FALSE;
}
if(!OpenDataBase(pMyConnect, pRecordset))
{
MessageBox(_T("数据库打开失败!请先确认数据库参数配置是否正确!"),_T("警 告"),MB_ICONWARNING|MB_OK);
return FALSE;
} pMyConnect->Close(); /*****关闭数据库****/
pMyConnect.Release();
pMyConnect = NULL;
pRecordset.Release();
pRecordset = NULL;
return TRUE;
}BOOL CPage4::OpenDataBase(_ConnectionPtr &nMyConnect, _RecordsetPtr &nRecordset)
{
CString tempConnect;
tempConnect.Format(_T("Provider=SQLOLEDB;Server=%s;Database=%s;uid=%s;pwd=%s;"), dbSetInfo.ServerName, bSetInfo.DataBaseUser, dbSetInfo.DataBasePassWord); _bstr_t strConnect = (_bstr_t)tempConnect;
//执行连接
try
{
nMyConnect->Open(strConnect, "", "", NULL);
}
catch (_com_error &e)
{
MessageBox(e.Description(), _T("警告"), MB_OK|MB_ICONINFORMATION);
return FALSE;
}
return TRUE;
}[/b]mfcsql数据库
解决方案 »
- MFC单文档创建两个Button一个不能显示
- 一个应用程序只能有一个进程吗?还是说可以有几个进程,我怎么没看到哪个软件是用好几个进程做的,有吗?
- 这两条语句究竟错在哪里?
- http1.0和1.1协议规定client提交表单时候的内容用怎样的格式编码?
- 如何在视图中加入ToolTips?高手们给点意见:)
- 大虾帮忙解释一下这个宏是什么意思?
- 【【【只有10分了,问一下在按Ctrl+W时,出现这样的错误:parsing error:Identifier expected.】】】
- 大家写程序时碰到问题是怎么一个解决思路???
- 我的机器的开机密码不能用!user password是灰色的不可选,我已经把CMOS放电了
- 程序运行一段时间后出怪事了。
- QQ远程协助或者视频聊天打洞如何实现的
- DLL中包含头文件问题//就报重定义类错误!
看看你在程序中import进来的ADO的路径对吗?或者就是初始化COM库问题?
// do stuffCoinitialize(NULL);// do the ADO callsCounitialize();// do other stuff创建pMyConnect对象的时候 试试这样创建
pMyConnect.CreateInstance("ADODB.Connection");
具体看看这个blogs:http://blog.csdn.net/friendan/article/details/6981238
HRESULT hr = m_pConnection.CreateInstance("ADODB.Connection");
if (FAILED(hr))
{
_com_error e(hr);
AfxMessageBox(e.ErrorMessage());
return;
}