Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ОТИ - копия.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
8.91 Mб
Скачать

Перемещение на другую запись

При помощи модального диалогового окна, такого как использованное в процедуре добавления записи в MyFirst, базу данных можно обновить только после того, как это окно закроется. Однако в случае применения обычной, немодалыюи формы, типа класса представления, следует поискать другую возможность для записи данных. Как происходит в большинстве случаев, данные можно сохранить только тогда, когда пользователь перейдет на другую запись. Для записи данных потребуется переопределить функцию OnMove(). Для этого выполните такие шаги:

  1. Откроем Class Wizard и выберем класс CMySecondView. В списке Messages выбeрем виртуальную функцию OnMove(). Нажмём на Add Function.

  2. Как правило, класс CMySecondView удовлетворительно обновляет записи. Вы хотите действовать только после того, как добавили новую запись и пользователь переместился с нее. Добавьте выделенный код из листинга 34.2, который и реализует упомянутое поведение.

Листинг 34.2. Перекрытая виртуальная функция CMySecondView

BOOL CMySecond::OnMove(UINT nIDMoveCommand)

{

if (m_IsAdding)

{

UpdateData();

try

{

m_pSet->Update();

}

catch (CDaoException* err)

{

AfxMessageBox(err->m_pErrorInfo->m_strDescription);

m_pSet->MoveLast();

err->Delete();

}

UpdateData(FALSE);

m_IsAdding=false;

return TRUE;

}

Return CDaoRecordView::OnMove(nIDMoveCommand);

}

Откомпилируем и запустим программу. Добавим и удалим несколько записей.

Использование OLE DB

При построении приложений MyFirst и MySecond вы, вероятно заметили, что при выборе источника данных доступен ещё один вариант - OLE DB. OLE DB-это последняя технология Microsoft, которая предоставляет один интерфейс для всех ваших данных, где бы они не находились - в Web, в унаследованной системе либо в реляционной базе данных.

Настройка приложения на использование источника данных OLE DB даже проще настроек ODBC или DAO. После выбора OLE DB в АррWizard потребуется определить поставщика (provider) OLE DB и ввести информацию, необходимую для создания соединения. Затем, как и ранее, выбирается таблица для работы, и AppWizard создаст каркас приложения.

В случае использования классов OLE DB AppWizard создает класс, основанный на COIeDBRecordView. В свою очередь, этот класс унаследован от CFormViеw и работает практически так же, как и CRecordView и CDaoRecordView. На форме диалогового окна размещаются элементы управления, а класс COleDBRecordViеw будет осуществлять получение данных и управление всей базой.

COIeDBRecordView отличается от других главным образом в том, что ClassWizard не обеспечивает поддержку отображения внешних полей на ваши элементы управления — для этого потребуется вручную ввести код. Процесс хотя и не сложен, но достаточно утомителен.

Занятие №35 Лабораторная работа №12 «Исследование средств доступа к базам данных»

Цель: исследование средств доступа к базам данных таких, как Data Access Object (DAO) и OLE DB.

Упражнение 1. Создание приложения CDaoRecordView

Упражнение 2 Улучшение приложение MySecond

Упражнение 3 Добавление и удаление записей в MySecond

Упражнение 4 Использование OLE DB