永发信息网

C++ 连ACCESS数据提示无法打开

答案:2  悬赏:0  手机版
解决时间 2021-08-11 11:27

我是初学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()
};

最佳答案

我帮你解决了,给我加分!嘻嘻...

全部回答
strSQL怎么写的?是不是错了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
炫舞体验服1.7.4怎么不能玩
感情有没有强大到可以在不同的世界也能没有隔
九年级英语(人叫版) 很急
为什么巴萨中文官网的新闻与其他语种的新闻不
资兴市郴州资兴原一纳米汗蒸馆这个地址在什么
图上这个女的叫啥阿
怎样判断金花松鼠的性别
古剑奇谭 紫榕林从外圈到中圈的走法
腾讯业务红钻会员什么的累计一年会成为年费么
SPECTROMAXX 直读光谱仪 类型标准化标样怎么
我是多普达S900手机在桌面的音乐播放器上不能
桦南县佳木斯城市e站旅游公司地址有谁知道?
银魂动画版什么时候出第二部?漫画出到多少了
网上有没有机床设备的专业报价网?
( )的我们 -填空题
推荐资讯
生化危机5威斯克
QQ魔法学堂炼好的卡片怎么放不进集卡册里面
买了汉波红枣浓浆,怎么喝比较合理呢?
哪位好心人给我一个田馥甄的WIN7主题啊!!!
Let it Rock是摇滚音乐吗?
西陵区长江科学院宜昌综合管理办公室地址在什
飞车点券月底什么时候清空
哪位好心人能送我个天龙八部号吗?90+的号!
谁能帮我把这段视频中的音频截下来、传给我?
油性头发怎办
身上有白带,怎么办
QQ飞车可以收几个徒弟?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?