Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3878750
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2008-04-08 11:25:17

由于项目要发布一个单机版,原来用的数据库是大型数据库。需要在单机版中用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这个字符串的内容要正确。

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