- •Аннотация к разделу
- •Теоритические принципы создания приложений бд
- •Основные задачи и сложности организации работы с бд
- •Программный (встроенный) sql
- •Статический sql
- •Динамический sql
- •Интерфейсы программирования приложений бд (api)
- •Интерфейс odbc
- •Механизм использования бд, применяемый в современных графических средствах разработки
- •Создание приложения, использующего бд Аннотация к подразделу
- •Настройка источников данных odbCвwindows
- •Базовые сведения о Qt
- •Введение
- •Модули Qt
- •Собственная система сборки Qt
- •Сигналы и слоты
- •Небольшой пример использования сигналов и слотов
- •Литература по Qt
- •Программный уровень
- •Уровень пользовательского интерфейса
- •Операции с бд
- •Соединение с бд
- •Выполнение запросов выборки и возврат результатов
- •Выполнение запросов вставки, обновления и удаления
- •Использование параметризованных запросов
- •Выполнение транзакций
- •Связь данных с пользовательским интерфейсом
- •Использование классов – моделей данных sql.
- •Отображение результата запроса выборки в таблице
- •Отображение и редактирование данных таблиц
- •Отображение и редактирование данных таблиц с использованием подстановки для внешних ключей
- •Связь элементов данных с обычными виджетами
- •Настройка собственной модели данных
Интерфейсы программирования приложений бд (api)
Недостатки обычного программного SQL.Как замечено выше, программный SQL характеризуется наличием некоторых специальных инструкций, а также механизмом трансляции и выполнения запросов. Таким образом, для применения программного SQL в тексте программы необходимо использовать специальный препроцессор для преобразования инструкций программногоSQLв вызовы СУБД, а также ознакомиться с некоторым специфическим набором инструкций. Стоит заметить, что в разных СУБД эти наборы инструкций могут несколько отличаться друг от друга. В результате возникает некоторая проблема, связанная с отсутствием переносимости программы.
Описание подхода.Наряду с описанным выше механизмом существует и активно применяется еще один подход, связанный с наличием специальных интерфейсов – API для связи прикладной программы с СУБД (application programming interface – интерфейс программирования приложений ). Эти API (далее –SQL API) представляют собой библиотеки функций, разработанные для обеспечения связи прикладной программы с СУБД посредством выполнения SQL-запросов. Прикладная программа вызывает специальные функции библиотеки для передачи в СУБД SQL-запроса в текстовом виде и для получения результатов выполнения запросов, а также различные служебные функции.
Достоинства подхода.ИспользованиеSQL API, вообще говоря, является широко используемым и стандартным подходом, поэтому для специалистов этот подход является вполне привычным. Программа, содержащая вызовы некоторых функцийAPI, ничем не отличается по схеме компиляции и выполнения от обычной программы. Так, подобная программа не требует применения специализированного препроцессора.
Существует множество библиотек, предоставляющие возможности SQL API. Принципы работы разных библиотек, как правило, аналогичны. Схема работы приложения совместно сSQLAPIвыглядит следующим образом:
программа получает доступ к БД путем вызова одной или нескольких API-функций, подключающих программу к СУБД и к конкретной БД;
для пересылки инструкций SQL в СУБД программа формирует инструкцию в виде текстовой строки и затем передает эту строку в качестве параметра при вызове API-функции;
программа вызывает выполнение API-функции для проверки состояния переданной в СУБД инструкции и обработки ошибок;
если инструкция SQL представляет собой запрос на выборку, то, вызывая API-функции, программа записывает результаты запроса в свои переменные; обычно за один вызов возвращается одна строка или столбец данных;
свое обращение к базе данных программа заканчивает вызовом API-функции, отключающей ее от СУБД.
Из имеющихся для реализации SQL-запросов интерфейсов API на настоящий момент выделилось несколько распространенных библиотек:
DB-Library– служит для совместной работы сMicrosoftSQLServer;
ODBC(OpenDatabaseConnectivity) – служит для доступа к различным БД;
OCI (Oracle Call Interface) – для доступа к БД Oracle;
JDBC(JavaDataBaseConnectivity) – платформенно-независимый промышленный стандарт взаимодействияJava-приложений с различными СУБД
и т.д.
Далее будем рассматривать ODBCкак один из самых распространенных интерфейсов.