Назад | Начало урока | Вперед
Содержание

Создание класса хранения данных

Класс CCustomRs

Теперь необходимо создать класс хранения данных, который будет связан с набором записей. В этом классе каждому полю записи выбранной таблицы БД, должна соответствовать:

Для создания этого класса выполните следующее:

  1. Создайте новый класс таким же образом, как в предыдущие дни определив его как родовой класс.

    Создание базового класса

    Как вы помните из главы 10, чтобы создать новый класс, необходимо на вкладке Class View найти проект AdoDatabase, щелкнуть правой кнопкой и выбрать Add Class. В диалоговом окне Add Class задается тип класса. Это может быть класс библиотеки MFC, родовой класс или др. Для создания класса в котором хранится одна запись, удобнее всего использовать родовой класс. Кроме того необходимо указать имя класса и базовый класс.

    Для создаваемого приложения это делается так :

    1. Создайте новый класс щелкнув правой кнопкой на узле около названия проекта, а затем к конт меню выберите Add Class
    2. Выберите Generic Class C++ в качестве типа класса. Щелкните на Open для того чтобы открыть Generic C++ Class Wizard

    Подсказка

  2. Назовите класс CCustomRs и укажите класс CADORecordBinding в качестве его базового класса.

    АВ: Ясно, что родительский класс CADORecordBinding будет обеспечивать все основные функции работы с БД, этими функциями естественно будет обладать и наш вновь созданный класс как прямой потомок.

    Подсказка

  3. Удалите конструктор и деструктор из заголовочного файла, а так же из файла исходного кода нового класса.

    АВ: Конструкторы удаляем, потому, что передаем все полномочия родительскому классу.

  4. Отредактируйте заголовочный файл нового класса, импортируя динамически загружаемуж библиотеку (DLL)ADO. Кроме того вставьте необходимые макросы и переменные так, как в лист 13.1

    Листинг 13.1 Класс хранения данных



    #pragma once
    #define INITGUID
    #import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
    using namespace ADOCG;
    #include "icrsint.h"

    class CCustomRs :
    public CADORecordBinding {

    BEGIN_ADO_BINDING(CCustomRs)

    ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_szFirstName,
    sizeof(m_szFirstName), lFirstNameStatus, TRUE)

    ADO_VARIABLE_LENGTH_ENTRY2(3, adVarChar, m_szLastName,
    sizeof(m_szLastName), lLastNameStatus, TRUE)

    ADO_VARIABLE_LENGTH_ENTRY2(5, adVarChar, m_szAddress,
    sizeof(m_szAddress), lAddressStatus, TRUE)

    END_ADO_BINDING()

    public:

    CHAR m_szFirstName[51];
    ULONG lFirstNameStatus;

    CHAR m_szLastName[51];
    ULONG lLastNameStatus;

    CHAR m_szAddress[256];
    ULONG lAddressStatus;

    };

Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz