|
Программирование >> Sql: полное руководство
Встроенный SQL как средство программного доступа к реляционным базам данных появился еще в первых реляционных СУБД компании IBM и с тех пор нащед широкое применение во многих популярных реляционных продуктах. Но в некоторых ведущих СУБД, начиная с самой первой реализации SQL Server, выполненной еще компанией Sybase, стал применяться принципиально иной подход. В таких СУБД существует дополнительная библиотека функций, представляющая собой профам-мный интерфейс (Application Program Interface - API) между приложениями и СУБД Прикладная программа вызывает функции SQL API для передачи в СУБД инструкций SQL и для получения от СУБД результатов запросов и служебной информации. Многие профаммисты обладают опытом работы с различными библиотеками функций, предназначенггых для обработки сфок, выполнения математических вычислений, организации файлового ввода/вывода или отображения информации на экране В современных операционных системах, таких как Unix или Windows подобные библиотеки применяются чрезвычайно широко, так как они расширяют функциональные возможности самой операционной системы. Для знакомых с этой кухней профаммистов SQL API является просто новой библиотекой, которую необходимо освоить. За последние несколько лет появилось много различных библиотек SQL-функций, которые стали применяться даже более интенсивно, чем встроенный SQL. В настоящей главе приводится общая характеристика таких библиотек, а затем рассматриваются особенности профаммных интерфейсов некоторых ведущих СУБД. Подробно описывается также протокол ODBC компании Microsoft, который де-факто считается стандартом профаммного доступа к реляционным базам данных. Наконец, приводится описание международного стандарта SQL/CLI, сформированного на основе протокола ODBC. Принципы применения программных интерфейсов для доступа к базам данных Когда в СУБД имеется собственный профаммный интерфейс, приложение взаимодействует с СУБД только одним способом; вызывая функции, входящие в этот интерфейс. Типичная схема применения SQL API изображена на рис. 19.1: программа получает доступ к базе данных путем вызова одной или нескольких API-функций, подключающих профамму к СУБД и к конкретной базе данных; для пересылки инструкции SQL в СУБД профамма формирует инсфукцию в виде текстовой сфоки и затем передает эту сфоку в качестве парамефа при вызове API-функции; профамма вызывает API-функции для проверки состояния переданной в СУБД инструкции и для обработки ошибок; если инсфукция SQL представляет собой запрос на выборку, то, вызывая API-функции, программа записывает результаты запроса в свои переменные; обычно за один вызов возвращается одна сфока или один столбец данных; свое обрашение к базе данных профамма заканчивает вызовом API-функции, отключающей ее от СУБД.
Рис. 19.1. Применение SQL API дпя доступа к базе данных SQL API часто используется в системах с архитектурой клиент/сервер (рис. 19.2). При этом библиотека, содержащая API-функции, расположена на клиентском компьютере, где выполняется приложение, а СУБД - на сервере, где находится база данных. Приложение вызывает API-функции локально, на клиентском компьютере, но связь между API-функциями и СУБД осуществляется по сети. Далее в настоящей главе будет показано, что применение SQL API в архитектуре клиент/сервер дает большие преимущества, поскольку позволяет свести к минимуму сетевой трафик. Клиент Клиент Сервер
База данных Ранние интерфейсы программирования приложений в различных СУБД существенно отличались друг от друга. Как и в случае со многими другими аспектами языка SQL, эти интерфейсы просуществовали долгое время, прежде чем стали предприниматься попытки их стандартизировать. Кроме того, они в значительно большей степени связаны с особенностями конкретной СУБД, чем встроенный SQL. Тем не менее, в основе всех интерфейсов, применяемых в коммерческих СУБД, лежат одни и те же принципы, проиллюстрированные на рис. 19.1 и 19.2. Это относится и к протоколу ODBC, а также созданному позднее на его основе стандарту SQL/CLI. Библиотека DB-Library (SQL Server) Первой популярной СУБД, в которой появился интерфейс вызовов функций, была SQL Server, разработанная компаниями Microsoft и Sybase. Раньше профаммный дос1уп к данной СУБД можно было осуществлять только посредством этого интерфейса. В настоящее время в SQL Server уже появился всфоенный SQL, а также новые интерфейсы более высокого уровня, но исходный профаммный интерфейс все еще остается популярным средством доступа к базам данных, находящимся под управлением этой СУБД. Кроме того, он послужил основой, на которой впоследствии был сформирован протокол ODBC. СУБД SQL Server и ее профаммный интерфейс, помимо всего прочего, - это еще и прекрасньгй пример системы, которая изначально проектировалась для архитектуры клиент/сервер. Вот почему будет полезно начать изучение интерфейсов вызовов SQL-функций с интерфейса, имеющегося в SQL Server. В SQL Server основной профаммный интерфейс назьшается библиотекой базы данных, сокращенно DB-Library, и состоит из примерно 100 функций, доступных приложениям. Это весьма обширный интерфейс, однако обычная программа использует не более двух десятков функций, перечисленных в табл. 19.1. Остальные функции реализуют более сложные профаммные возможности, альтернативные методы взаимодействия с СУБД или обобщают несколько функций более низкого уровня. Таблица 19.1. paioBHmil-yHKtjmB SQL 5ег/щг Функция Описание Подключение к базе данных/Отключение от базы данных dblogm () Создает структуру, которая будет хранить информацию о подключении к SQL Server dbopen () Устанааливает соединение с SQL Server dbuse () Определяет базу данных, используемую по умолчанию dbexit О Разрывает соединение с SQL Server Базовая обработка инструкций dbcmd () Передает текст инструкции SQL в DB-Library dbsqlexec {) Запрашивает вьшолнение пакета инструкций SQL dbresults () Получает результаты выполнения следующей инструкции SQL в пакете dbcancel () Отменяет выполнение оставшейся части пакета инструкций SQL Обработка ошибок dbmsghandle () Определяет пользовательскую процедуру обработки сообщений dberrhandle О Определяет пользовательскую процедуру обработки ошибок
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |