VC6.0中用ado连接数据库出错
Posted htj10
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC6.0中用ado连接数据库出错相关的知识,希望对你有一定的参考价值。
1. 在stdafx.h中添加 #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
并且要在电脑注册32位的msado15.dll。我的win7下没有注册成功,我后来用的XP(XP系统已经注册了不用自己注册)
2. 在CxxxApp.cpp的InitInstance()函数中添加数据库连接代码,如下。
AfxEnableControlContainer(); ::CoInitialize(NULL);AfxOleInit(); HRESULT hr; try { hr = m_pCon.CreateInstance("ADODB.Connection");//创建连接。若电脑没注册成功,则连接就会出错,hr=-2147221164 if(SUCCEEDED(hr)) { m_pCon->CommandTimeout = 3; //连接延迟设置为3秒 hr = m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=restaurant.mdb","","",adModeUnknown);//连接数据库。此处可能出错,因为mdb文件不兼容(Access2013建的mdb要另存为2000..版本,再在XP上使用)。 } else { _com_error e(hr); AfxMessageBox(e.ErrorMessage());//hr=-2147221164 没有注册类 } } catch(_com_error e) { CString temp; temp.Format("连接数据库错误信息:%s,%s",e.ErrorMessage(),e.Description()); ::MessageBox(NULL,temp,"提示信息",NULL); return FALSE; }
以上是关于VC6.0中用ado连接数据库出错的主要内容,如果未能解决你的问题,请参考以下文章
VC++用ADO连接SQL Server出错,异常:“Unknown error 0x800A0E7D".提示:“数据库连接失败”.