Программирование >>  Разработка пользовательского интерфейса 

1 ... 83 84 85 [ 86 ] 87 88 89 ... 147


Глава 8

Использование технологии клиент-сервер

8.1. Работа с внешними данными с помощью технологии ODBC

Команды Transact-SQL Создание представлений Создание триггеров

8.2. Использование Visual FoxPro для разработки клиентского приложения

Синхронный и асинхронный процессы Создание внешних представлений

8.3. Использование Access и Visual Basic для разработки клиентского приложения

8.4. Использование ODBC API для доступа к внешним данным

8.5. Remote Data Objects

8.6. Внешнее управление сервером с помощью SQL-DMO

До сих пор мы вели речь о приложениях, работающих на одном, локальном компьютере. Если речь шла о компьютерной сети, то БД могла располагаться на файл-сервере или нескольких файл-серверах, в качестве которого может использоваться либо специально выделенный компьютер, либо одна из объединенных в сеть наиболее мощных ПЭВМ. Функции файл-сервера заключаются в основном в хранении БД и обеспечении доступа к ним пользователей, работающих на различных компьютерах. Эти функции обеспечиваются, как правило, той же СУБД, которая работает и на компьютерах пользователей.

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

Технология клиент-сервер разделяет приложение на две части, используя лучшие качества обеих сторон. Front-end (клиентская часть) обеспечивает интерактивный, легкий в использовании, обычно графический интерфейс - находится на компьютере пользователя. Backend (сервер) обеспечивает управление данными, разделение информации, изощренное администрирование и безопасность - находится на специально выделенных компьютерах или даже мейн-фреймах.

При технологии клиент-сервер клиентское приложение (front-end) формирует запрос к серверу БД (back-end), на котором выполняются все команды. Результаты команд посылаются затем клиенту для использования и просмотра.

Visual FoxPro, Visual Basic и Access обеспечивают средства для создания клиентских частей в приложениях клиент-сервер, которые сочетают мощность, скорость, графический интерфейс, продвинутые средства построения запросов и отчетов.

MS SQL Server является на настоящий момент одним из наиболее мощных серверов БД.

8.1. Работа с внешними данными с помощью технологии ODBC

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

В этом параграфе мы рассмотрим основы применения технологии ODBC для установки связи с MS SQL Server.

это свойство перед использованием вышеприведенных методов, особенно при работе с данными из присоединенных таблиц.



В качестве сервера может выступать любой сервер БД, имеющий драйвер 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 драйверы для MS SQL Server, разработанные Microsoft в 1996 году, то вам повезло, так как их расширения предоставляют практически все возможности для полноценной работы с сервером. Если же вы работаете с сервером, отличным от MS SQL Server, или с этим сервером, но драйвер ODBC не разработан фирмой Microsoft, то у вас могут возникнуть трудности ввиду не полной поддержки функциональности сервера драйвером. Если у вас есть сомнение в функциональности драйвера, то для получения полной и содержательной информации о нем используйте функции SQLGetInfo(), SQLGetFunction() и SQLGetStmtOption(). Более подробно о них мы расскажем ниже.

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

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

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

Приложение Использует ODBC для связи с

источником данных, отправления и получения данных. Приложение может использовать функцию SQLConnect(), чтобы передать указатель соединения, имя источника данных, идентификатор пользователя и пароль Диспетчеру драйверов.

Диспетчер Поддерживает связь между

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



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

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

Сервер БД Хранит и выводит данные в ответ на запросы со стороны ODBC драйвера. Сервер по запросу возвращает данные или код ошибки, которые передаются в приложение.

Первые разработчики ODBC столкнулись с проблемой - какой из диалектов SQL поддерживать. Если есть сотни SQL продуктов на рынке, то есть и сотни диалектов SQL. В итоге, чтобы никого не обидеть, разработчики ODBC создали еще один диалект, который называется ODBC SQL , и компонент, который позволяет программам переводить их собственные диалекты на универсальный диалект и наоборот.

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

Поэтому на настоящий момент разработано очень много технологий для доступа к внешним данным. В них немудрено запутаться, и, чтобы этого не произошло, - ни слова о том, что не имеет отношения к рассматриваемым средствам разработки. Кстати, среди них СУБД Access имеет наибольшее число способов взаимодействия с MS SQL Server, поэтому как пример мы хотим кратко описать и перечислить их (см. также рис. 8.1):



1 ... 83 84 85 [ 86 ] 87 88 89 ... 147

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