Программирование >>  Sql: полное руководство 

1 ... 161 162 163 [ 164 ] 165 166 167 ... 264


Встроенный 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-функции, отключающей ее от СУБД.



Вызовы API-функций

CONNECT (БД, пользователь, пароль)

SEND ( update orders set )

EXECUTE()

STATUS CHECK ()

Прикладная программа

SEND ( select from offices . )

СУБД

EXECUTE 0

GETROW ()

(101, New York , )

GETROW ()

(12, Chicago , )

DISCONNECT ()

Рис. 19.1. Применение SQL API дпя доступа к базе данных

SQL API часто используется в системах с архитектурой клиент/сервер (рис. 19.2). При этом библиотека, содержащая API-функции, расположена на клиентском компьютере, где выполняется приложение, а СУБД - на сервере, где находится база данных. Приложение вызывает API-функции локально, на клиентском компьютере, но связь между API-функциями и СУБД осуществляется по сети. Далее в настоящей главе будет показано, что применение SQL API в архитектуре клиент/сервер дает большие преимущества, поскольку позволяет свести к минимуму сетевой трафик.

Клиент

Клиент

Сервер

Программа

1 Профамма

1 API 1

1 API 1

База данных




Ранние интерфейсы программирования приложений в различных СУБД существенно отличались друг от друга. Как и в случае со многими другими аспектами языка 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 О Определяет пользовательскую процедуру обработки ошибок



1 ... 161 162 163 [ 164 ] 165 166 167 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика