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

Изменения в классе документа CAdoDatabaseDoc
Файлы CAdoDatabaseDoc.cpp и CAdoDatabaseDoc.h

Переменная m_rsRecSet
После создания класса хранения данных CCustomRs, добавьте в класс документа CAdoDatabaseDoc переменную m_rsRecSet типа CCustomRs, в качестве доступа укажите - private

private:

CCustomRs m_rsRecSet;

АВ:В этой переменной m_rsRecSet будет храниться экземпляр только что созданного нами класса хранения данных.

Функция GetRecSet
Кроме того необходимо сделать так, чтобы представление могло получать указатель на экземпляр класса хранения данных от класса хранения документов. (АВ:Обратите внимание, что есть класс хранения данных и класс хранения документов. Два разных класса. Класс хранения данных мы только что создали CCustomRs, а класс хранения документов - это AdoDatabaseDoc, а класс представления - это AdoDatabaseView) Функция, реализующая эту возможность, должна возвращать указатель на объект класса хранения данных.Добавьте эту функцию в создаваемое приложение, выполнив следующее:

  1. Добавьте в класс документа новую функцию укажите CCustomRs* в качестве типа результата, GetRecSet - имя, public - Доступ

    public:

    CCustomRs* GetRecSet(void);

  2. Отредактируйте функцию как в 13.2

    Вверх

    Листинг 13.2 Функция GetRecSet класса CAdoDatabaseDoc


    CCustomRs* CAdoDatabaseDoc::GetRecSet(void)
    {
    // Return a pointer to the record object
    return &m_rsRecSet;
    }

АВ:Функция GetRecSet возвращает указатель на экземпляр класса хранения данных.То есть фактически функция возвращает адрес экземпляра хранения данных, но мы этот адрес всегда можем присвоить указателю на экземпляр хранения данных и потому можно сказать что функция возвращает указатель на экземпляр класса хранения данных.
Напомню, что адрес первой записи в массиве записей является адресом самого массива записей.

Функция GenerateError
Перед тем как начать по настоящему использовать ADO, придется реализовать еще одну дополнительную функцию.Такая фукнция должна информировать пользователя об ошибках ADO и базы данных.Эта функция выдает сообщение об ошибке и код ошибки.Чтобы добавить эту функцию в приложение выполните следующее :

  1. Добавьте в класс документа новую функцию, не возвращающую ни какого значения, то есть укажите -void - тип результата.GenerateError - имя. Добавьте два параметра.Укажите HRESULT - тип первого параметра, hr - имя.Далее укажите PWSRT - тип второго параметра, pwsDescription - имя.Модификатор доступа к функции - public.

    Тип данных PWSRT -указатель на строку в двухбайтовой системе кодировки символов (UNICODE)

  2. Отредактируйте функцию как в 13.3

Вверх

Листинг 13.3 Функция GenerateError класса CAdoDatabaseDoc


void CAdoDatabaseDoc::GenerateError(HRESULT hr, PWSTR pwszDescription)
{
CString strError;
// Format and display the error message
strError.Format("Run-time error '%d (%x)'", hr, hr);
strError += "\n\n";
strError += pwszDescription;

AfxMessageBox(strError);

}


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

Hosted by uCoz