Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Технологии доступа к данным. Система драйверов ODBC. Источники данных. Создание DSN-файла

MS SQL Server является на настоящий момент одним из наиболее мощных серверов БД. Важнейшим этапом в построении приложения клиент-сервер является установка связи клиентского приложения с источником данных, находящимся на сервере БД. В настоящий момент различные средства разработки используют несколько технологий обеспечения доступа к данным. Общепризнанным стандартом, как мы уже писали ранее, является технология ODBC.

Открытый доступ к данным - Open Database Connectivity (ODBC) - это общее определение языка и набор протоколов. ODBC позволяет клиентскому приложению, написанному, например, на Access или Visual FoxPro, работать с командами и функциями, поддерживаемыми сервером.

В качестве сервера может выступать любой сервер БД, имеющий драйвер ODBC (MS SQL Server, Oracle и т. д.), или даже настольная база данных, ведь часто может возникнуть необходимость в совместной обработке данных, хранящихся в формате Paradox, приложениями, написанными и на FoxPro и на Delphi. ODBC находится как бы посредине между приложением, использующем данные, и самими данными, хранящимися в формате, которые мы не можем обработать напрямую в приложении, и используется как средство коммуникации между двумя front-end и back-end сторонами.

Для использования ODBC с целью получения данных в сети вам необходимы средства коммуникации между машиной, на которой находятся данные, и станцией, где они будут просматриваться, модифицироваться и, возможно, пополняться. Это специальная программа, которая называется Администратор ODBC на рабочей станции, и драйверы, которые могут работать как с приложением, так и с данными на сервере. Технология ODBC обеспечивает возможность хранить данные на разных серверах БД, причем не обязательно в одном формате. В теории подразумевается, что для этого не надо переписывать ни одной строчки в вашем пользовательском приложении, работающем на клиентской ПЭВМ. На практике так бывает не всегда, из-за различий в структуре различных уровней построения ODBC.

ODBC определяет минимальный набор SQL команд и набор функций вызова с двумя уровнями расширений. Технология ODBC включает также механизм для вызова специфических для сервера возможностей, которые не включены в стандарт ODBC. В целом, это дает возможность разработчику решать самостоятельно, какой уровень функциональности ему достаточен для доступа к серверу баз данных. Разработчик выбирает между наименьшей обеспечиваемой ODBC функциональностью или пытается использовать все возможности сервера.

С минимальным набором функциональности ODBC разработчик может установить связь с источником данных через стандартный интерфейс загрузки, выполнять SQL команды, выбирать данные и получать сообщения об ошибках, если предпринятое действие закончилось неудачей.

С расширенной функциональностью ODBC разработчик может использовать дополнительные возможности стандарта SQL и функции ODBC, чтобы расширить возможности управления внешней СУБД. Расширения ODBC включают в себя такие дополнительные возможности, как асинхронное выполнение запросов, нестандартные в среде приложения типы данных (Timestamp, Binary), прокручиваемые курсоры, SQL команды для скалярных функций, внешние объединения, хранимые процедуры и способность использовать SQL расширения, характерные для конкретного сервера БД.

Одна из главных целей создания ODBC - скрыть сложность соединения с сервером и по мере возможности автоматизировать выполнение многочисленных процедур, связанных с получением данных. ODBC требует от разработчика только имени источника данных, при этом функции драйвера, адреса серверов, сети и шлюзы скрыты от пользователя. Возможно, вам как разработчикам захочется знать все тонкости работы ODBC, но учтите, прямая работа с функциями драйвера требует более сложного программирования, что не всегда сопровождается выигрышем в скорости.

Описание основных компонентов ODBC приведено в табл. 8.1.

Таблица 8.1. Основные компоненты ODBC

Компоненты Описание
Приложение Использует ODBC для связи с источником данных, отправления и получения данных. Приложение может использовать функцию SQLConnect(), чтобы передать указатель соединения, имя источника данных, идентификатор пользователя и пароль Диспетчеру драйверов.
Диспетчер драйверов Поддерживает связь между приложением и источником данных, обеспечивая информацией приложение и загружая драйверы динамически, по мере необходимости. ODBC позволяет приложению взаимодействовать с источниками данных разных типов посредством драйверов СУБД, используя Администратор ODBC для установки соединения. Диспетчер драйверов и сами драйверы разработаны как библиотеки DLL. Диспетчер драйверов загружает нужную библиотеку, соединяется с сервером с помощью драйвера, который на самом деле и выполняет все вызовы функций из приложения.
Драйвер Выполняет все вызовы ODBC функций, управляет всеми взаимодействиями между приложением и сервером, переводит SQL выражения на синтаксис источника данных. Драйверы обычно поставляются продавцом сервера БД и имеет смысл получить самую последнюю версию, в которой, вероятнее всего, будет наименьшее количество ошибок. Драйвер перехватывает все ошибки программ, переводя их в стандартные ошибки ODBC. Драйвер позволяет узнать информацию об объектах в базе данных, таких как таблицы, поля, индексы и т. п.
Сервер БД Хранит и выводит данные в ответ на запросы со стороны ODBC драйвера. Сервер по запросу возвращает данные или код ошибки, которые передаются в приложение.

 

 

Интерфейс прикладного программирования ODBC API предоставляет общие методы доступа на основе языка баз данных SQL как к реляционным, так и к нереляционным (ISAM) источникам данных.

Наиболее современный стандарт ANSI SQL (фактически, это часть разрабатываемого стандарта SQL-3) включает спецификацию интерфейса на уровне вызовов (CLI - Call-Level Interface), на которую опирается ODBC для обеспечения доступа и работы с данными во многих системах управления базами данных. Интерфейс CLI соответствует требованиям, установленным в 1996 году комитетом SQL Access Group и определяющим общий синтаксис SQL и интерфейса API. Иметь общий метод доступа к источникам данных удобно потому, что тогда база данных на сервере становится прозрачной для приложений, которые написаны в соответствии со специфицированным уровнем совместимости ODBC.

Интерфейс ODBC API реализован как набор расслоенных DLL-функций для Windows. Динамическая библиотека ODBC.DLL - это основная библиотека управления драйверами ODBC, которая содержит функции вызовов специализированных драйверов для разных поддерживаемых системой баз данных. Каждый драйвер совместим со своим уровнем CLI и относится к одной из двух категорий: одноуровневые или многоуровневые драйверы.

Одноуровневые драйверы предназначены для использования при работе с теми источниками данных, которые не могут быть прямо обработаны с использованием ANSI SQL. Обычно это локальные базы данных на персональных компьютерах, такие как dBase, Paradox, FoxPro и Excel. Драйверы, соответствующие этим базам данных, производят компиляцию ANSI SQL в наборы инструкций более низкого уровня, которые непосредственно обрабатывают составляющие базу данных файлы.

Многоуровневые драйверы используют сервер РСУБД для обработки SQL-предложений и предназначены для работы в среде клиент-сервер. Помимо обработки ANSI SQL, они также могут поддерживать и собственные конструкции конкретной РСУБД, поскольку ODBC может без трансляции передавать SQL-операторы источникам данных (механизм "passthrough"). Драйверы ODBC для баз данных, поддерживаемым в технологии клиент-сервер реализованы в Oracle, а также Informix, Microsoft и Sybase SQL Server, Rdb, DB2, Ingres, HP/Image и An SQL. Драйверы можно приобрести в фирмах Microsoft, Intersolv, Visigenic и Openlink, причем только Microsoft и Intersolv выпускают и 32-х, и 16-ти разрядные драйверы.

Существует 4 важных этапа (шага) процедуры запроса данных через ODBC API.

  • Шаг 1 - установление соединения. Первый шаг состоит в размещении указателей (handle) среды ODBC, которые выделяют оперативную память под ODBC драйверы и библиотеки. Затем происходит выделение памяти для указателей соединения, и соединение устанавливается.
  • Шаг 2 - выполнение оператора SQL. Выделяется указатель оператора, локальные переменные связываются со столбцами в SQL-выражении (это необязательное действие), и выражение представляется главному ODBC-драйверу для обработки.
  • Шаг 3 - извлечение данных. Перед извлечением данных возвращается информация о результирующем наборе, в частности, число столбцов в наборе. Исходя из этого числа, результирующий набор помещается в буфер записей, выполняется цикл его просмотра и содержимое каждого столбца помещается в соответствующую локальную переменную. Этот шаг необязателен, если используется связывание столбцов с локальными переменными.
  • Шаг 4 - освобождение ресурсов. После того, как данные получены, ресурсы освобождаются путем вызова функций освобождения указателей оператора, соединения и среды. Указатели оператора и соединения могут быть использованы в процессе обработки.

Технология ODBC разрабатывалась как общий, независимый от источников данных, способ доступа к данным. Применение технологии должно было также обеспечить переносимость приложений в среду различных баз данных без потребности переработки самих приложений. В этом смысле технология ODBC уже стала промышленным стандартом, ее поддерживают практически все производители СУБД и средств разработки.

Однако универсальность стоит дорого. Если при разработке приложений одним из основных критериев является переносимость на различные СУБД, то использование ODBC является оправданным. Для увеличения производительности и эффективности приложения активно применяют специфические для данной СУБД расширения языка SQL, используют хранимые на сервере процедуры и функции. В этом случае теряется роль ODBC как общего метода доступа к данным. Тем более, что для разных СУБД драйверы ODBC поддерживают разные уровни совместимости. Поэтому многие производители средств разработки, помимо поддержки ODBC, поставляют "прямые" драйверы к основным СУБД.

 

<== предыдущая лекция | следующая лекция ==>
Пример сложного запроса | Некоторые термины
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 936; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.