我是初学mfc的,运行后一直提示无法打开数据库,麻烦大虾们看下,在线等啊,一晚上了我都没搞定
//////////////////// cfile.h 里面的代码
class CCfileApp : public CWinApp
{
public:
CCfileApp();
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCfileApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CCfileApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
//数据库打开
BOOL CCfileApp::OpenDatabase(const CString strSQL){
_bstr_t strContent; //连接串变量定义
strContent="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\StudentInfo.mdb"; //建立连接串
HRESULT hr; //返回值变量定义
//链接并打开数据库
try{
//创建connection对象
hr = m_pConnection.CreateInstance(_uuidof(Connection));
//验证connection对象是否成功创建
if(SUCCEEDED(hr)){
hr = m_pConnection->Open(strContent,"","",adModeUnknown); // 链接数据库
}
}
catch(_com_error e){
CString errormessage;
//格式化错误信息
errormessage.Format("数据库连接失败!\r\n错误信息是:%s",e.ErrorMessage);
//显示错误信息
AfxMessageBox(errormessage);
return false;
}
//打开表
try{
m_pRecordset.CreateInstance(_uuidof(Recordset)); //创建Recordset对象
m_pRecordset->CursorType = adOpenStatic; //指定游标类型
m_pRecordset->CursorLocation = adUseClient; //指定游标位置
//打开表
m_pRecordset->Open( (_variant_t)strSQL, _variant_t( (IDispatch*) m_pConnection,true),
adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error e){
CString errormessage;
//格式化错误信息
errormessage.Format("数据库打开失败!\r\n错误信息是:%s",e.ErrorMessage);
//显示错误信息
AfxMessageBox(errormessage);
return false;
}
}
//数据库关闭
void CCfileApp::CloseDatabase(){
//判断数据库的链接状态
if(m_pConnection->State){
m_pConnection->Close();
}
}
//卸载COM库
int CCfileApp::ExitInstance(){
CoUninitialize();
return CWinApp::ExitInstance();
}
DECLARE_MESSAGE_MAP()
};