20164

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

Лекция

Информатика, кибернетика и программирование

При создании системы обработки данных не всегда удается обеспечить их хранение в едином формате. Часто возникает необходимость использования данных из уже работающих приложений ктороые написаны не на VFP. Удаленное представление работает на основе соединения которое используя технологию Open Database Connectivity ODBC описывает условия передачи данных.1 Окно диалога Select connection or Available DataSource В списке перечислены соединения определенные в текущей базе данных.

Русский

2013-07-25

827 KB

1 чел.

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

При создании системы обработки данных не всегда удается обеспечить их хранение в едином формате. Часто возникает необходимость использования данных из уже работающих приложений, ктороые написаны не на VFP.

В Visual FoxPro работа с внешними данными основана на создании удаленных  представлений. Удаленное представление работает на основе соединения, которое, используя технологию Open Database Connectivity (ODBC), описывает условия передачи данных.

Для создания удаленного представления следует  выполнить команду основного меню File/New/Remote View. Можно воспользоваться мастером или создать выборку вручную.

Для создания выборки вручную, следует  нажать кнопку New View. При этом открывается окно диалога "Select connection or Available DataSource" (рис. 1).

рис.1 Окно диалога "Select connection or Available DataSource"

В списке перечислены соединения, определенные в текущей базе данных. Можно  выбирать из доступных источников данных, установив опцию Available DataSource.

Чтобы создать внешнее соединение, можно использовать конструктор именованных соединений (им можно пользоваться только в том случае, если имеется открытая база данных). Именованное соединение – определение соединения, которое хранится в базе данных и на которое можно ссылаться по имени при создании удаленного представления.

При соединении с базой данных Oracle VFP выводит окно диалога выбора таблицы. После выбора таблицы, она появляется в области просмотра таблиц конструктора представления. Можно, при необходимости, выбирать дополнительные таблицы с помощью кнопки Add Table на управляюшей панели конструктора представления.

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

Предостережение. Visual Foxpro не пытается проверять синтаксис критериев отбора в выборке, поскольку не может знать о том, какие функции или выражения поддерживают базы данных сервера. Таким образом, строка остается непроверенной. Обращение к серверу может оказаться ошибочным, если критерий будет ему непонятен.

Если возможно, следует  использовать  одно соединение для нескольких внешних представлений. Совместное использование соединения выгодно тем, что:

Снижаются требования к ресурсам системы

Уменьшается число соединений, которые серверу приходится поддерживать

  •   Снижается стоимость пользования сервером, если установлена плата за него по количеству подключений

Раздел SQL WHERE во вкладке Update Criteria позволяет управлять обновлением записей при работе в многопользовательской среде. Для этого необходимо установить переключатель в положение, обеспечивающее обновление необходимого набора полей:

Key fields only – только ключевые поля

Key and updatable fields – ключи и обновляемые поля

Key and modified fields – ключи и модифицированные поля

Key and timestamp fields – ключи и поля меток времени

VFP проверяет значения в обновляемых полях таблицы, расположенной на удаленном источнике данных, для контроля возможных изменений, произошедших со времени получения записи. Если данные за это время изменялись, будет выведено окно с сообщением о том, что выполненные изменения не могут приняты. В этом случае пользователь может либо отказаться от данной операции, либо принять вновь измененные данные и снова начать ввод.

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

SQL DELETE then INSERT – удаление и вставка

SQL UPDATE – обновление.

В первом случае записи сначала удаляются,а затем добавляются с новыми значениями, в то время как во втором случае записи просто обновляются функцией SQL UPDATE.

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

Создание соединения с базой данных при проектировании файл-серверного приложения.

При создании файл-серверного приложения доступ к базе данных, установленной на файл-сервере, осуществляется с помощью соединения, которое создается следующим образом:

В Панели Управления вызывается ODBC-драйвер и добавляется новое соединение в список существующих соединений. Для этого выбирается кнопка ADD и в появившемся диалоговом окне устанавливаются параметры соединения:

В строке Path указаывается путь к базе данных. В том случае, если соединение создается на клиентской машине, необходимо указать сетевое имя файл-сервера, а затем собственно путь в БД.

Перенос файл-серверных приложений в среду клиент-сервер

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

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

С другой стороны, накоплен большой опыт работы на системах семейства xBase. Создано большое число прикладных программ, которые внедрены в эксплуатацию. При интеграции отдельных АРМ в корпоративные сети было бы желательно сохранить не только постановки задач и алгоритмы, но и собственно программное обеспечение.

Существует несколько способов интеграции и адаптации файл-серверных приложений к архитектуре клиент-сервер:

использование библиотек доступа к серверам БД;

связь с сервером БД через открытый протокол ODBC;

укрупнение файл-серверных приложений.

Рассмотрим способ адаптации файл-серверных приложений к  архитектуре клиент-сервер, связанный с использованием ODBC.

 

Открытый протокол ODBC для связи с сервером БД

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

В ANSI SQL входит интерфейс на уровне вызовов (CLI - call-level interface), который используется ODBC для обеспечения доступа и работы с данными во многих системах управления базами данных. Интерфейс CLI соответствует требованиям, установленным в 1991 году группой 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 V6.0 и Oracle7, а также Informix, Microsoft и Sybase SQL Server, Rdb, DB2, Ingres, HP/Image и Any SQL.

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

Шаг 1 - установление соединения. Первый шаг состоит в размещении указателей (handle) среды ODBC, которые выделяют оперативную память под ODBC драйверы и библиотеки. Затем происходит выделение памяти для указателей соединения, и соединение устанавливается.

Шаг 2 - выполнение предложения SQL. Выделяется указатель предложения, локальные переменные связываются со столбцами в SQL-выражении (это необязате~ьное действие), и выражение представляется на разбор главному ODBC драйверу для обработки.

Шаг 3 - извлечение данных. Перед извлечением данных возвращается информация о результирующем наборе, такая как число столбцов в наборе. Исходя из этого числа, результирующий набор помещается в буфер записей, выполняется цикл по нему и извлекается по одному столбцу в локальные переменные. Этот шаг необязателен, если используется связывание столбцов.

Шаг 4 - освобождение ресурсов. После того, как данные получены, освобождаются ресурсы вызовом функций освобождения указателей предложения, соединения и среды. Указатели предложения и соединения могут быть использованы в процессе обработки.

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

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

Фрагмент программы, иллюстрирующей возможности регистрации пользователя, соединение с удаленным источником, создание курсора, открытие удаленного представления.

* Запрещает отображение некоторых системных сообщений.

SET NOTIFY off

* Разрывает соединение с источником данных.

* Задайте 0 для окончания всех актвных соединений.

=SQLDISCONNECT(0)

IF  EMPTY(ThisForm.Text1.Value)

     MESSAGEBOX('Введите имя пользователя!', 48, 'Ошибка')

ENDIF    

IF !EMPTY(ThisForm.Text1.Value)

     T1 = lower(Alltrim(ThisForm.Text1.Value))

      T2=lower(alltrim(ThisForm.Text2.Value))

  WAIT WINDOW "Устанавливается связь..." Nowait

  PUBLIC gnConnHandle

* Установка соединения с источником данных, источник данных – схема KUR4   

gnConnHandle = SQLConnect('kur4',T1,T2)

* Если подсоединение к источнику данных прошло успешно, SQLCONNECT( )

* возвращает положительное число, в противном случае функция

* SQLCONNECT( ) возвращает отрицательное число

IF gnConnHandle <0

     MESSAGEBOX('Неверно введено имя или пароль пользователя!', 48, 'Ошибка')

        _screen.ActiveForm.release()

     RETURN

    ELSE

*Создание курсора – выборка данных из таблицы user1, находящейся на сервере в схеме Ivanov

* схема Ivanov является подсхемой схемы KUR4

=SQLExec(gnConnHandle,'Select id_user,kod_level,sector,kod_prilog,pravo From ivanov.user1','cursor1')

* удаленное представление должно быть открыто в монопольном режиме

USE view1 exclusive

SELE cursor1

***

***

***   

_screen.ActiveForm.release()

DO FORM form1


 

А также другие работы, которые могут Вас заинтересовать

71136. ТЕРМИЧЕСКИЕ ПОРАЖЕНИЯ. ОЖОГИ 29.21 KB
  При ведении боевых действий термические факторы использовались в глубокой древности. В настоящее время ожоговая травма наиболее часто встречается в морских сражениях. Термические ожоги в современной войне являются одним их ведущих видов поражения.
71137. Синдром длительного раздавливания 19.98 KB
  Нейрорефлекторный компонент в частности длительное долевое раздражение имеет ведущее значение в патогенезе СДР посредством нарушения деятельности органов дыхания кровообращения; наступает рефлекторный спазм сосудов угнетение мочеотделения сгущение кровипонижение устойчивости организма к кровопотере.
71138. ОСНОВЫ ОРГАНИЗАЦИИ ОКАЗАНИЯ ХИРУРГИЧЕСКОЙ ПОМОЩИ В ЧРЕЗВЫЧАЙНЫХ СИТУАЦИЯХ И В ДЕЙСТВУЮЩЕЙ АРМИИ 25.41 KB
  Объектами изучения военно-полевой хирургии являются: патология боевых повреждений их диагностика клиническое течение методы лечения а также организация оказания хирургической помощи раненым и пораженным на этапах медицинской эвакуации в действующей армии и в тылу страны.
71139. ОГНЕСТРЕЛЬНЫЕ РАНЕНИЯ 25.6 KB
  При этом могут быть как чистые то есть обычные огнестрельные раны так и раны в сочетании с лучевой болезнью раны загрязненные радиоактивными и отравляющими веществами а также микроорганизмами при применении бактериологического оружия.
71140. СПЕЦИФИЧЕСКИЕ ЗАКОНОМЕРНОСТИ В ОРГАНИЗАЦИИ СТРОИТЕЛЬНОГО ПРОИЗВОДСТВА 63 KB
  Понимание и учет этих объективных особенностей строительства необходимое условие правильного выбора форм и методов организации и управления строительным производством. Первой особенностью строительного производства является неподвижность и территориальная закрепленность продукции...
71141. Состав и порядок проектирования объектного стройгенплана 66.5 KB
  Исходными данными для проектирования объектного СГП являются: общеплощадочный СГП; генплан участка в горизонталях с нанесенными на него существующими и намеченными к строительству зданиями и сооружениями дорогами и коммуникациями; календарный план строительства объекта...
71142. Организация работы строительного транспорта. Определение потребности и маршрутизация перевозок 38 KB
  Определение потребности и маршрутизация перевозок Формы организации и структура парка строительных машин зависят от формы и структуры строительно-монтажной организации которую он обслуживает видов и объемов выполняемых работ и определяются степенью территориальной концентрации строительства.
71143. Организация эксплуатации и ремонта строительных машин 40 KB
  Приемке подлежат машины новые после ремонта или монтажа а также машины передаваемые одной организацией другой. При приемке проверяют наличие установленной документации паспорта технического описания и инструкции по эксплуатации а для машин находящихся под контролем органов...
71144. Организация материально-технического обеспечения строительства. Сущность комплектации и комплектовочная документация 41.5 KB
  Сущность комплектации и комплектовочная документация Большие и сложные задачи стоящие перед материально-техническим снабжением требуют постоянного совершенствования организационных форм и методов управления. Система производственно технологической комплектации является оптимальной...