Реализация доступа к базам данных в среде VISUAL STUDIO.NET на языке С++ с применением MFC
Библиотека MFC
Среда Visual Studio.NET предоставляет различные подходы для реализации работы с базами данных:
- Применение библиотеки MFC (Microsoft Foundation Class Library).
- Применение ATL (Active Template Library).
- Использование библиотек Framework.
Библиотека MFC реализует поддержку доступа к базам данных, основанную на двух механизмах:
- через ODBC-драйверы;
- с применением провайдеров данных OLE DB.
Приложения, использующие доступ к базам данных с применением ODBC-драйверов, в обязательном порядке используют класс CDatabase для создания объекта "база данных" и класс CRecordset для создания объекта "результирующий набор".
Библиотека MFC предоставляет для работы с базами данных через ODBC-драйверы следующие классы:
- CDatabase – класс, инкапсулирующий соединение с источником данных;
- CRecordset – класс, инкапсулирующий работу с результирующим набором, включая переход между записями, добавление, удаление и изменение записей, задание фильтров и выполнение параметризированных запросов;
- CRecordView – класс, предоставляющий средства визуального отображения данных из созданного результирующего набора;
- CDBException – класс, предназначаемый для обработки ошибок, которые возникают при работе с источником данных;
- CFieldExchange – класс, который поддерживает RFX обмен данными между полями – членами класса результирующего набора и столбцами таблицы источника данных.
Библиотека MFC предоставляет для работы с базами данных с применением провайдеров OLE DB класс COleDBRecordView, используемый для отображения данных из результирующего набора (представляемого классом CRowset ) в элементах управления шаблона диалога. Этот класс объявляется в заголовочном файле afxoledb.h.
Для реализации клиентов и серверов OLE DB можно использовать ATL, предоставляющую OLE DB шаблоны как С++ шаблоны. Более подробно шаблоны ATL будут рассмотрены в следующей лекции.
Библиотека MFC предоставляет следующие два класса, упрощающие обмен данными:
- CLongBinary – класс, предоставляющий средства работы с BLOB-объектами (Binary Large OBject), такими как bitmap-изображения, хранимыми в базе данных;
- CDBVariant – класс, реализующий тип Variant, который позволяет сохранять информацию в базе данных, используя текущее значение, хранимое в переменной типа union.
Для доступа к конкретной базе данных требуется, чтобы был установлен соответствующий драйвер ODBC или OLE DB провайдер.
Приложения, работающие с базами данных, могут быть реализованы как консольные приложения, приложения с архитектурой документ-отображение (SDI- и MDI-приложения), приложения-диалоги, серверные приложения.