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


 

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

26598. СПОСОБЫ ДЕЗАКТИВАЦИИ ПРОДУКТОВ УБОЯ ЖИВОТНЫХ, СОДЕРЖАЩИХ РАДИОАКТИВНЫЕ ВЕЩЕСТВА 19.52 KB
  Основной задачей дезактивации мяса и мясопродуктов является снижение их радиоактивности до допустимых величин.56096: для мяса убойных животных без костей полуфабрикатов субпродуктов по цезию137 60 Бк кг стронцию90 50 Бк кг; для оленины без костей по цезию137 250 Бк кг стронцию90 80 Бк кг; для мяса диких животных без костей по цезию137 320 Бк кг стронцию90 100 Бк кг; для костей всех видов по цезию137 160 Бк кг стронцию90 200 Бк кг; для мяса домашней и промысловой птицы субпродуктов и полуфабрикатов из мяса птицы...
26599. СПОСОБЫ ОБЕЗВРЕЖИВАНИЯ МОЛОКА БОЛЬНЫХ ЖИВОТНЫХ. КОНТРОЛЬ ЗА ЭФФЕКТИВНОСТЬЮ ОБЕЗВРЕЖИВАНИЯ 2.24 KB
  СПОСОБЫ ОБЕЗВРЕЖИВАНИЯ МОЛОКА БОЛЬНЫХ ЖИВОТНЫХ. Высокотемпературная обработка молока проводится с целью его обеззараживания от патогенных микроорганизмов продления срока хранения и обеспечения технологических свойств при переработке в молочные продукты. Чаще применяют пастеризацию нагревание молока до температуры не выше 100 С с выдержкой или без нее при этом инактивируют вегетативные формы бактерий. Пастеризация может быть длительной молоко нагревают до температуры 63 65С и выдерживают 30 мин кратковременной нагревание до...
26600. СПОСОБЫ ОГЛУШЕНИЯ УБОЙНЫХ ЖИВОТНЫХ, ИХ СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА 12.88 KB
  СПОСОБЫ ОГЛУШЕНИЯ УБОЙНЫХ ЖИВОТНЫХ ИХ СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА. 2 способа: с оглушением и без оглушения. Животных других видов убивают без оглушения. К кольцу привязывают животное за рога чтобы в момент оглушения оно не отскочило назад.
26601. СТАНДАРТНАЯ СОРТИРОВКА ТУШ ПО УПИТАННОСТИ 15.96 KB
  Говядину взрослого скота молодняка а также баранину и козлятину подразделяют на 1ю и 2ю категории. Говядина 1й категории должна иметь как минимум удовлетворительное развитие мускулатуры; остистые отростки позвонков седалищные бугры и маклоки не должны резко выступать жировые отложения должны быть заметны в виде небольших участков на шее лопатках бедрах в тазовой полости и в области паха; слои подкожного жира от 8го ребра к седалищным буграм могут иметь значительные просветы. Говядина 2й категории характеризуется менее...
26602. СУЩНОСТЬ «ЗАГАРА» МЯСА. САНИТАРНАЯ ОЦЕНКА МЯСА ПРИ «ЗАГАРЕ». ЗАГАР 2.3 KB
  СУЩНОСТЬ ЗАГАРА МЯСА. САНИТАРНАЯ ОЦЕНКА МЯСА ПРИ ЗАГАРЕ. Это особый вид порчи мяса в первые сутки после убоя животного. Наблюдают его при недостаточно интенсивном охлаждении парного мяса а также при слабой аэрации если туши в парном состоянии плотно укладывают или тесно подвешивают одна к другой в душных помещениях при температуре выше 1520 С.
26603. СУЩНОСТЬ ПОНЯТИЙ «УСЛОВНО ГОДНОЕ МЯСО», «МЯСО ВЫНУЖДЕННО УБИТЫХ ЖИВОТНЫХ» 878 Bytes
  СУЩНОСТЬ ПОНЯТИЙ УСЛОВНО ГОДНОЕ МЯСО МЯСО ВЫНУЖДЕННО УБИТЫХ ЖИВОТНЫХ. Мясо вынужденно убитых животных – мясо от больных животных лишенных жизни ввиду нецелесообразности или неэффективности дальнейшего лечения с целью недопущения падежа. Условногодное мясо мясо использование которого для пищевых целей допускается после обеззараживания.
26604. СУЩНОСТЬ ПРОЦЕССА ПОСОЛКИ И ГИГИЕНА ПОСОЛКИ МЯСА. ЗНАЧЕНИЕ И СУЩНОСТЬ ПОСОЛА 6.28 KB
  СУЩНОСТЬ ПРОЦЕССА ПОСОЛКИ И ГИГИЕНА ПОСОЛКИ МЯСА. Посол мяса один из самых древних ранее широко распространенных и доступных методов консервирования. В связи с развитием холодильной техники использованием высоких температур для консервирования мяса и мясопродуктов развитием колбасного производства посол уступил первое место этим методам консервирования. Однако и сейчас в сельской местности в личном хозяйстве он находит и будет находить применение как самостоятельный метод консервирования мяса н мясопродуктов.
26605. СХЕМА ИССЛЕДОВАНИЯ МЯСА НА ОБСЕМЕНЕННОСТЬ ВОЗБУДИТЕЛЯМИ ТОКСИКОИНФЕКЦИЙ 1.54 KB
  СХЕМА ИССЛЕДОВАНИЯ МЯСА НА ОБСЕМЕНЕННОСТЬ ВОЗБУДИТЕЛЯМИ ТОКСИКОИНФЕКЦИЙ. Схема бактериологического исследования мяса и мясопродуктов по ГОСТ 2123775.
26606. ТЕХНОЛОГИЯ УБОЯ КРС И ПЕРВИЧНАЯ ПЕРЕРАБОТКА ТУШ. ОГЛУШЕНИЕ. 22.62 KB
  ТЕХНОЛОГИЯ УБОЯ КРС И ПЕРВИЧНАЯ ПЕРЕРАБОТКА ТУШ. Чтобы предотвратить загрязнение туш и крови содержимым преджелудков на пищевод животным перед их обескровливанием накладывают лигатуру. Во избежание попадания крови от больных животных емкости нумеруют соответствующими номерами туш от которых собрана кровь. После этого полый нож извлекают из туши.