- •Аннотация к разделу
- •Теоритические принципы создания приложений бд
- •Основные задачи и сложности организации работы с бд
- •Программный (встроенный) sql
- •Статический sql
- •Динамический sql
- •Интерфейсы программирования приложений бд (api)
- •Интерфейс odbc
- •Механизм использования бд, применяемый в современных графических средствах разработки
- •Создание приложения, использующего бд Аннотация к подразделу
- •Настройка источников данных odbCвwindows
- •Базовые сведения о Qt
- •Введение
- •Модули Qt
- •Собственная система сборки Qt
- •Сигналы и слоты
- •Небольшой пример использования сигналов и слотов
- •Литература по Qt
- •Программный уровень
- •Уровень пользовательского интерфейса
- •Операции с бд
- •Соединение с бд
- •Выполнение запросов выборки и возврат результатов
- •Выполнение запросов вставки, обновления и удаления
- •Использование параметризованных запросов
- •Выполнение транзакций
- •Связь данных с пользовательским интерфейсом
- •Использование классов – моделей данных sql.
- •Отображение результата запроса выборки в таблице
- •Отображение и редактирование данных таблиц
- •Отображение и редактирование данных таблиц с использованием подстановки для внешних ключей
- •Связь элементов данных с обычными виджетами
- •Настройка собственной модели данных
Интерфейс odbc
ODBC(Open Database Connectivity) – это программный интерфейс (API) доступа к БД, разработанный фирмой Microsoft, в сотрудничестве с Simba Technologies на основе спецификацийCall Level Interface(CLI).CLIразрабатывался организациями SQL Access Group, X/Open и Microsoft. Впоследствии CLI был стандартизован ISO. Стандарт CLI призван унифицировать программное взаимодействие с СУБД, сделать его независимым от поставщика СУБД и программно-аппаратной платформы.Организация работы с БД в приложениях.
В начале 1990 г. существовало несколько поставщиков баз данных, каждый из которых имел собственный интерфейс. Если приложению было необходимо общаться с несколькими источниками данных, для взаимодействия с каждой из баз данных было необходимо написать свой код. Компания Microsoft и ряд других компаний сделали важный шаг к решению этой проблемы. Основная идея заключалась в разработке универсального интерфейса на уровне семейства операционных систем Windows, который мог бы быть поддержан в разных СУБД. Этот интерфейс был назван Open Database Connectivity, или открытый механизм взаимодействия с базами данных.
Рассмотрим кратко структуру программного обеспечения ODBC:
интерфейс вызовов функций ODBC: это так называемый верхний уровень ODBC, содержащий API, который и используется непосредственно приложениями. Данный API в частности реализован в виде библиотеки динамической компоновки Dll и входит в состав операционной системы Windows;
драйверы ODBC: это так называемый нижний уровень ODBC, содержащий набор драйверов для СУБД, поддерживающих протокол ODBC. В рамках технологии для каждой СУБД может быть разработан соответствующий ODBC-драйвер, который будет являться промежуточным звеном между прикладной программой и СУБД, транслируя вызовы функций СУБД в вызовы внутренних специализированных функций СУБД. Таким образом решается проблема стандартизации. Для многих современных СУБД существуют специализированные драйверы ODBC, отдельно устанавливаемые в операционную систему;
диспетчер драйверов ODBC: данный программный механизм представляет средний уровень ODBC, управляя процессом загрузки необходимых драйверов.
Схема выполнения программы с использованием протокола ODBC для доступа к данным приводится на рисунке 0.
Рисунок 0 – Схема выполнения программы со встроенными инструкциями динамического SQLс применением двухэтапной схемы
Механизм использования бд, применяемый в современных графических средствах разработки
Зачастую для разработки пользовательских приложений используют специализированные средства – фреймворки. Фреймворк (англ.framework– каркас, структура) – программная платформа, позволяющая уменьшить трудозатраты за счет применения готовой структуры программы и отдельных технических решений. Одним из главных преимуществ при использовании каркасных приложений является то, что такие приложения имеют стандартную структуру.
Примеры фреймворков: Zend Framework, VCL, MFC, .NET Framework, wxWidgets, Qt и т.д.
Фреймворки стали популярны с появлением графических интерфейсов пользователя, которые имели тенденцию к реализации стандартной структуры приложения.
Фреймворк отличается от понятия библиотекитем, что библиотека может быть использована в программном продукте просто как набор подпрограмм близкой функциональности, не влияя на архитектуру программного продукта и не накладывая на неё никаких ограничений. В то время как фреймворк диктует правила построения архитектуры приложения, задавая на начальном этапе разработки поведение по умолчанию, каркас, который нужно будет расширять и изменять согласно указанным требованиям. Также, в отличие от библиотеки, которая объединяет в себе набор близкой функциональности, каркас может содержать в себе большое число разных по тематике библиотек.
Другим ключевым отличием фреймворка от библиотеки может быть инверсия управления: пользовательский код вызывает функции библиотеки (или классы) и получает управление после вызова. Во фреймворке пользовательский код может реализовывать конкретное поведение, встраиваемое в более общий, абстрактный код фреймворка. При этом фреймворк вызывает функции (классы) пользовательского кода.
Многие фреймворки, предназначенные для разработки графических приложений включают в себя средства для организации взаимодействаия с БД. Распространенный подход к взаимодействию с БД, используемый в популярных графических фреймворках основан на использовании трех уровней абстракции:
Уровень драйверов;
Уровень SQL API (программный);
Уровень пользовательского интерфейса.
К уровню драйверовотносятся классы для получения данных специфичных БД на физическом уровне.
Программный уровеньпредназначен для обобщенной доступа в клиентском коде с любой БД, для которой определен соответствующий драйвер. На этом уровне как правило используются следующие основные абстракции (которые как правило определены в виде классов):
БД(илиподключение к БД) – обеспечивает подключение к БД;
Запрос– предоставляет средства для выполнения и получения результатовSQL-запросов;
Запись– класс, представляющий запись БД;
и т.д.
Программный уровень может использоваться в прикладной программе непосредственно, так и во взаимодействии с уровнем пользовательского интерфейса.
Классы уровня пользовательского интерфейса позволяют связать данные, получаемые в результате запросов к БД с графическими средствами представления информации (представлениями).