Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49912
  • 博文数量: 23
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-09 13:42
文章分类
文章存档

2017年(4)

2016年(19)

我的朋友
最近访客

分类: C/C++

2016-08-09 13:50:08

由于项目要发布一个单机版,原来用的数据库是大型数据库。需要在单机版中用Access比较方便,另外也不能让用户自己创建数据源,最终的方案就是在程序中直接访问(*.mdb)Access数据库文件,下面简要给出在VC6.0中的访问Access数据库文件的方法:
注:data.mdb数据库文件中有一个表(tperson),有一个字段(name)

 CString strSql;
 CString strName;
 CString strDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
 CString strDsn;
 CString strFile = "E:\\CurrentWork\\AccessTest\\data.mdb";
 strDsn.Format("ODBC;DRIVER={%s};UID=sa;PWD=;DBQ=%s",strDriver,strFile);
 TRY
 {

   CDatabase m_db;//加上这个定义,本来这个是一个类中的成员,暂时就放在这。
   m_db.Open(NULL,false,false,strDsn);
  CString strConnect = m_db.GetConnect();
  CRecordset rs(&m_db);
  strSql = "select * from tperson";
  rs.Open(CRecordset::forwardOnly,strSql,CRecordset::readOnly);
  while(!rs.IsEOF())
  {
   rs.GetFieldValue("name",strName);//读取数据库内容的代码
   rs.MoveNext();
  }
  m_db.Close();
 }
 CATCH(CDBException,e)
 {
  AfxMessageBox("Database Error:" + e->m_strError);
 }
 END_CATCH;
其中最关键的地方也就是strDSN这个字符串的内容要正确。

阅读(1300) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~