Чтение онлайн

на главную - закладки

Жанры

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Фролов Григорий Вячеславович

Шрифт:

Методы AssertValid и Dump класса CDaterView могут использоваться при отладке приложения.

Класс записи базы данных – CDaterDoc

Центральным классом приложений, которые взаимодействуют с базами данных через драйвера ODBC, является класс, наследованный от базового класса CRecordset. В нашем приложении в качестве этого класса выступает класс CDaterSet:

class CDaterSet : public CRecordset {

public:

 CDaterSet(CDatabase* pDatabase = NULL);

 DECLARE_DYNAMIC(CDaterSet)

// Field/Param Data

 //{{AFX_FIELD(CDaterSet, CRecordset)

 CString m_NAME;

 CString m_ADDRESS;

 long m_PRIORITY;

 CString m_PHONE;

 //}}AFX_FIELD

// Overrides

 //{{AFX_VIRTUAL(CDaterSet)

public:

 virtual CString GetDefaultConnect;

 virtual CString GetDefaultSQL;

 virtual void DoFieldExchange(CFieldExchange* pFX);

 //}}AFX_VIRTUAL

// Implementation

#ifdef _DEBUG

 virtual void AssertValid const;

 virtual void Dump(CDumpContext& dc) const;

#endif

};

Класс CDaterSet

содержит в себе переменные, представляющие поля записи базы данных. Эти переменные размещаются внутри комментариев вида //{{AFX_FIELD.

В нашем случае эти переменные называются m_NAME, m_ADDRESS, m_PRIORITY и m_PHONE. Они представляют поля NAME, ADDRESS, PRIORITY и PHONE соответственно.

В классе CDaterSet также определены конструктор класса и несколько методов – GetDefaultConnect, GetDefaultSQL, DoFieldExchange, а также AssertValid и Dump.

Конструктор класса CDaterSet

Конструктор класса CDaterSet вызывает конструктор базового класса CRecordset. В качестве параметра конструктору CDaterSet и конструктору базового класса передается указатель pdb на объект класса CDatabase, представляющий источник данных.

В приложении Dater конструктору CDaterSet параметр pdb не передается (см. класс CDaterDoc). Посмотрите описание конструктора класса CRecordset в документации Microsoft Visual C++. Если он вызывается без параметра или с параметром NULL, то конструктор автоматически создает объект класса CDatabase. С Этим объектом связывается источник данных, определенный в методе GetDefaultConnect:

CDaterSet::CDaterSet(CDatabase* pdb) : CRecordset(pdb) {

 DECLARE_DYNAMIC(CDaterSet)

// Field/Param Data

 //{{AFX_FIELD(CDaterSet, CRecordset)

 CString m_NAME;

 CString m_ADDRESS;

 long m_PRIORITY;

 CString m_PHONE;

 //}}AFX_FIELD

// Overrides

 //{{AFX_VIRTUAL(CDaterSet)

 public:

 virtual CString GetDefaultConnect;

 virtual CString GetDefaultSQL;

 virtual void DoFieldExchange(CFieldExchange* pFX);

 //}}AFX_VIRTUAL

// Implementation

#ifdef _DEBUG

 virtual void AssertValid const;

 virtual void Dump(CDumpContext& dc) const;

#endif

};

Класс CDaterSet

содержит в себе переменные, представляющие поля записи базы данных. Эти переменные размещаются внутри комментариев вида //{{AFX_FIELD.

В нашем случае эти переменные называются m_NAME, m_ADDRESS, m_PRIORITY и m_PHONE. Они представляют поля NAME, ADDRESS, PRIORITY и PHONE соответственно.

Метод GetDefaultConnect класса CDaterSet

Метод GetDefaultConnect возвращает текстовую строку, которая определяет источник данных, который будет связан с объектом CDaterSet. Эта строка формируется MFC AppWizard, при выборе вами источника данных:

CString CDaterSet::GetDefaultConnect {

 return _T("ODBC;DSN=Address Pad");

}

Метод GetDefaultSQL класса CDaterSet

Метод GetDefaultSQL возвращает текстовую строку, которая должна содержать имя таблицы источника данных или выражение SELECT языка SQL. На основе этой таблицы или результата запроса SELECT будет сформирован набор записей для объекта CDaterSet:

CString CDaterSet::GetDefaultSQL {

 return _T("[TextBase.txt]");

}

Метод DoFieldExchange класса CDaterSet

Метод DoFieldExchange выполняет обмен данными между элементами класса CDaterSet, представляющими поля набора записей, и источником данных:

void CDaterSet::DoFieldExchange(CFieldExchange* pFX) {

 //{{AFX_FIELD_MAP(CDaterSet)

 pFX->SetFieldType(CFieldExchange::outputColumn);

 RFX_Text(pFX, _T("[NAME]"), m_NAME);

 RFX_Text(pFX, _T("[ADDRESS]"), m_ADDRESS);

 RFX_Long(pFX, _T("[PRIORITY]"), m_PRIORITY);

Поделиться:
Популярные книги

Обнять космос

Данильченко Олег Викторович
2. МиГера
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Обнять космос

Мастер 4

Чащин Валерий
4. Мастер
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Мастер 4

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Князь Андер Арес 5

Грехов Тимофей
5. Андер Арес
Фантастика:
историческое фэнтези
фэнтези
героическая фантастика
5.00
рейтинг книги
Князь Андер Арес 5

Катриона

Стивенсон Роберт Льюис
Приключения:
исторические приключения
8.62
рейтинг книги
Катриона

Хранилище

Старухин Евгений
5. Лесовик
Фантастика:
фэнтези
рпг
7.43
рейтинг книги
Хранилище

Лекарь Империи 3

Карелин Сергей Витальевич
3. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
5.00
рейтинг книги
Лекарь Империи 3

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Убивая маску

Метельский Николай Александрович
13. Унесенный ветром
Фантастика:
боевая фантастика
5.75
рейтинг книги
Убивая маску

Прапорщик. Назад в СССР. Книга 7

Гаусс Максим
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7

Русская драматургия XVIII – XIX вв. (Сборник)

Пушкин Александр Сергеевич
Поэзия:
драматургия
6.25
рейтинг книги
Русская драматургия XVIII – XIX вв. (Сборник)

Сильнейший Столп Империи. Книга 2

Ермоленков Алексей
2. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 2

Рассвет русского царства 3

Грехов Тимофей
3. Новая Русь
Фантастика:
историческое фэнтези
альтернативная история
5.00
рейтинг книги
Рассвет русского царства 3

Поводырь

Щепетнов Евгений Владимирович
3. Ботаник
Фантастика:
фэнтези
6.17
рейтинг книги
Поводырь