Конструктор класса CDaterSet
Конструктор класса CDaterSet вызывает конструктор базового класса CRecordset. В качестве параметра конструктору CDaterSet и конструктору базового класса передается указатель pdb на объект класса CDatabase, представляющий источник данных.
В приложении Dater конструктору CDaterSet параметр pdb не передается (см. класс CDaterDoc). Посмотрите описание конструктора класса CRecordset в документации Microsoft Visual C++. Если он вызывается без параметра или с параметром NULL, то конструктор автоматически создает объект класса CDatabase. С Этим объектом связывается источник данных, определенный в методе GetDefaultConnect:
CDaterSet::CDaterSet(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CDaterSet)
m_NAME = _T("");
m_ADDRESS = _T("");
m_PRIORITY = 0;
m_PHONE = _T("");
m_nFields = 4;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}
В конструкторе CDaterSet располагается блок операторов, ограниченный комментариями вида //{{AFX_FIELD_INIT, //}}AFX_FIELD_INIT. В нем выполняется инициализация элементов m_NAME, m_ADDRESS, m_PRIORITY и m_PHONE. Эти элементы входят в класс CDaterSet и представляют поля таблицы базы данных, связанной с соответствующим объектом CDaterSet (набором записей). Затем в этом же блоке инициализируется элемент m_nFields, принадлежащий базовому классу CRecordset.
Вы не должны модифицировать код, рассположенный внутри блока AFX_FIELD_INIT. Для этого используется MFC ClassWizard.
Последний оператор конструктора CDaterSet присваивает элементу m_nDefaultType, принадлежащему базовому классу CRecordset, значение snapshot (snapshot также входит в класс CRecordset). Этот элемент определяет тип набора записей, представленных классом CDaterSet. MFC AppWizard добавляет этот оператор, когда вы определяете режим работы с базой данных в диалоговой панели Database Options (рис. 5.7).