VC 7.0 中使用CDaoRecordset 类/使用Dao 方法操作数据库
VC 7.0 中没有像VC 6.0那样方便的对CDaoRecordset的操作,只能手动写CDaoRecordset的继承类,并对一些函数进行重写,虽然增加了一些Dao记录集使用难度,但Dao本身就是不错的数据库访问模式,极为方便
首先添加类,由于VC 7.0的基类中没有提供CDaoRecordset,所以只能添加 一般c++类,把基类写成CDaoRecordset
设类名为 CData
在类属性里重写以下函数
GetDefaultDBName()
GetDefaultSQL()
DoFieldExchange(CDaoFieldExchange* pFX)
GetDefaultDBName()中返回数据库文件位置
GetDefaultSQL()中返回表名
DoFieldExchange(CDaoFieldExchange* pFX) 中如下写
pFX->SetFieldType(CDaoFieldExchange::outputColumn);
DFX_Text(pFX, _T("column1"), m_column1);
CDaoRecordset::DoFieldExchange(pFX);
其中DFX_Text(pFX, _T("column1"), m_column1) 一句,_T("column1")中的column1为数据表中列名,m_column1为对应的变量,DFX_Text这种写法仅限于CString ,其他类型可以查DFX宏[参考MSDN]
CData的构造函数需要重写,如下
CData::CDatabaseZhiWei(CDaoDatabase* pdb)
:CDaoRecordset(pdb)
{
m_column1 = _T("");
m_nFields = 1;
m_nDefaultType = dbOpenDynaset;
}
m_column为变量的初始化,m_nFields为列数,m_nDefaultType 为表的类型
如此,CData 就为CDaoRecordset的记录集实类