Шаг 23 - Добавление класса наследника от CDaoRecordset

При создании приложения AppWizard умеет на основе известной таблицы создавать класс наследник от DaoRecordset. В него он помещает поля из таблицы и настраивает механизм обмена данными DoFieldExchange. Но то же самое мы можем сделать и в любой момент сами. Давайте создадим проект на базе диалогового окна. А теперь попробуем к нему добавить класс как наследник от CDaoRecordset.

23_1.gif (3435 b)

После нажатия на ОК начнется стандартная процедура, где Вас спросят какой файл и таблица будет использоваться для создания класса.

23_2.gif (5734 b)

После выбора у Вас сформируется класс с уже настроенным полями и механизмом обмена.

class CMySet : public CDaoRecordset
{
public:
	CMySet(CDaoDatabase* pDatabase = NULL);
	DECLARE_DYNAMIC(CMySet)
// Field/Param Data
	//{{AFX_FIELD(CMySet, CDaoRecordset)
	long	m_column1;
	CString	m_column2;
	CString	m_column3;
	CString	m_column4;
	//}}AFX_FIELD
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CMySet)
	public:
	virtual CString GetDefaultDBName();		// Default database name
	virtual CString GetDefaultSQL();		// Default SQL for Recordset
	virtual void DoFieldExchange(CDaoFieldExchange* pFX);  // RFX support
	//}}AFX_VIRTUAL
// Implementation
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif
};

void CMySet::DoFieldExchange(CDaoFieldExchange* pFX)
{
	//{{AFX_FIELD_MAP(CMySet)
	pFX->SetFieldType(CDaoFieldExchange::outputColumn);
	DFX_Long(pFX, _T("[КодАвтора]"), m_column1);
	DFX_Text(pFX, _T("[Имя]"), m_column2);
	DFX_Text(pFX, _T("[Фамилия]"), m_column3);
	DFX_Text(pFX, _T("[Заметки]"), m_column4);
	//}}AFX_FIELD_MAP
}

Обратите внимание, что там будет и доступ и таблица которая используется.

CString CMySet::GetDefaultDBName()
{
	return _T("D:\\VС\\Biblio\\biblio.mdb");
}

CString CMySet::GetDefaultSQL()
{
	return _T("[author]");
}

Не забудьте подключить afxdao.h так как проект на основе диалогового окна не подключает классы баз данных.

// MySet.h : header file
//

#include "afxdao.h"

//////////////////////////
// CMySet DAO recordset

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 02.08.2001