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