VC 7.0 中使用CDaoRecordset 类/使用Dao 方法操作数据库

类别:VC语言 点击:0 评论:0 推荐:

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的记录集实类

本文地址:http://com.8s8s.com/it/it274.htm