Базы данных (лабораторная работа 2, API сервера баз данных)

Для организации доступа из программ на различных языках программирования к возможностям сервера баз данных последний должен предоставлять соответствующий набор программных интерфейсов, так называемые API (Application Programming Interface). API представляет собой набор функций или классов для того или иного языка программирования, а также набор статических или динамических библиотек, устанавливаемых на клиентском компьютере. Разработчики серверов баз данных обычно создают как минимум один базовый API, для языка программирования Си. API для других языков часто создают сторонние разработчики, основываясь на базовом API. Для доступа к серверу баз данных MySQL разработчики языков программирования C++, PHP, Perl, FreePascal и многих других создали API, основанное на базовом API для языка программирования Си. При этом в большинстве случаев сохранены неизменными названия функций и типов данных, типы и порядок аргументов функций. Таким образом, изучение базового API для языка Си поможет в использовании аналогичного API для других языков.

Базовое API для сервера БД включает в себя обычно от нескольких десятков до нескольких сотен функций и типов данных. Документация на русском языке по базовому API для MySQL версии 4 может быть получена по адресу http://www.mysql.ru/docs/man/C.html. На английском языке документация для всех версий MySQL доступна на сайте разработчика, например, для версии 5.7, по адресу http://dev.mysql.com/doc/refman/5.7/en/c-api.html.

Программирование доступа к серверу баз данных с использованием API состоит из нескольких этапов.

  1. Инициализация используемых структур данных.
  2. Установка соединения
  3. Подготовка SQL-запроса
  4. Выполнение SQL-запроса, получение результата
  5. Анализ и обработка результата запроса
  6. Закрытие соединения
SQL-запрос представляет собой строку текста. Тип полученного результата зависит от исходного запроса. Для запросов-выборок данных (SELECT-запросов) каждая запись полученного набора данных представляет собой обычно массив строк. Дополнительно, API содержит множество вспомогательных функций для обработки результатов запроса (количество строк в запросе, количество полей, информация о каждом поле, включая тип и длину поля и т.д.).

Задания

Внимание! Уникальные решения принимаются сразу, плагиат гарантирует множество дополнительных вопросов и модификаций условий заданий.
  1. Используя операционную систему Linux, среду разработки Geany, язык программирования FreePascal и шаблон кода, создать программу для получения содержимого таблицы базы данных, разработанной на предыдущей лабораторной работе. Исходный код MySQL-API для FreePascal доступен на каждом компьютере по адресу /usr/share/fpcsrc/packages/mysql, разработан прямым преобразованием MySQL-API для Cи.
  2. Модернизировать программу, визуализируя названия и тип полученных полей набора данных. Использовать соответствующее API для доступа к информации о полях.
  3. Модернизировать программу, позволив пользователю ввести набор данных и сохранить их в базе данных.