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


 

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

42159. ИЗУЧЕНИЕ СИЛЫ ВЗАИМОДЕЙСТВИЯ ДВУХ КРУГОВЫХ КОНТУРОВ С ТОКОМ 105 KB
  Механическое взаимодействие контуров с током под действием силы Ампера можно представить следующим образом: один контур создает магнитное поле которое воздействует на проводники с током второго контура и наоборот. Таким образом задача анализа взаимодействия контуров расчленяется на две: первая – расчет магнитного поля создаваемого первым контуром в месте расположения витков второго и вторая – определение силы действующей на второй контур. 3 показаны силы действующие на два произвольных симметрично...
42160. ИЗМЕРЕНИЕ МАГНИТНОЙ ВОСПРИИМЧИВОСТИ ДИА- И ПАРАМАГНЕТИКОВ 84 KB
  4 Тогда вектор результирующей магнитной индукции будет определяться с учетом 3 и 4: 5 где 0 = 4 107 Гн м – магнитная постоянная  = 1  относительная магнитная проницаемость вещества показывающая во сколько раз изменяется магнитное поле в веществе по сравнению с магнитным полем в вакууме: ....
42161. ИЗУЧЕНИЕ СВОБОДНЫХ И ВЫНУЖДЕННЫХ КОЛЕБАНИЙ В КОНТУРЕ 115.5 KB
  Простейшими колебаниями являются гармоничные колебания происходящие по закону синуса или косинуса:    Сos t или  =  Sin t  где  мгновенное значение колеблющейся величины отклонение наблюдаемой величины от положения равновесия в момент времени t  амплитуда колебания – наибольшее отклонение колеблющейся величины от её равновесного значения;  циклическая или круговая частота колебаний  начальная при t = 0 фаза колебаний. Гармонические колебания являются...
42162. ИЗУЧЕНИЕ ВЫНУЖДЕННЫХ КОЛЕБАНИЙ В КОНТУРЕ 134 KB
  Явление резонанса в колебательном контуре. 6 Графики зависимости I0 = f  при различных значениях сопротивления R называемые резонансными кривыми колебательного контура представлены на рис. Эта амплитуда как видно из 5 будет максимальна при частоте отвечающей условию и называемой резонансной частотой РЕЗ. Выражая отсюда РЕЗ получаем .
42163. Эффект Холла в полупроводниках 97 KB
  Изучить эффект Холла в полупроводниках с электронном n тип типом проводимости In Sb а также сделать оценочный расчет некоторых параметров этого полупроводника. Эффект Холла наблюдается при одновременном воздействии на вещество металл или полупроводник электрического и магнитного полей. Эффект Холла несет информацию о таких важнейших характеристиках проводника как концентрация и знак носителей тока.
42164. НЕОБРАТИМЫЙ МАГНИТОУПРУГИЙ ЭФФЕКТ ФЕРРОМАГНЕТИКА ПРИ УДАРЕ. ИЗМЕРЕНИЕ СИЛЫ УДАРА 81 KB
  У магнитотвердых материалов таких как кобальтовые стали альнико бариевые ферриты SmCo5 NdFeB и другие из которых делаются постоянные магниты требующие огромные поля чтобы междоменные границы начали двигаться. Под действием магнитного поля весь каркас границ приходит в движение и в результате домены с намагниченностью ориентированной вдоль поля увеличиваются в размерах за счет антипараллельных или поперечных доменов. В больших полях МДГ исчезают и материал намагничивается до насыщения. Зависимость намагниченности I от поля для...
42165. НЕЛИНЕЙНЫЕ РЕГРЕССИОННЫЕ МОДЕЛИ 118.5 KB
  ls logy c x1 x2 x3 x4 x5 Логарифмическое уравнение . ls y c logx1 logx2 logx3 logx4 logx5 Гиперболическое уравнение . ls logy c logx1 logx2 logx3 logx4 logx5 Показательное уравнение βi 0 βi≠1. ls logy=c1logc2x1logc3x2logc4x3 Примечание: Переменные содержащие в наблюдениях значения 0 нельзя логарифмировать и брать обратную величину.
42166. ВЫБОР РЕГРЕССИОННОЙ МОДЕЛИ 242.5 KB
  Ранее предполагалось что мы имеем дело с правильной спецификацией модели то есть считалось что зависимая переменная y регрессоры X и оцениваемые параметры β связаны соотношением y = Xβ ε и выполняются условия ГауссаМаркова. Рассматривается два основных случая: В оцениваемой модели отсутствует часть независимых переменных имеющихся в истинной модели исключение существенных переменных: истинная модель: y = Xβ Zγ ε длинная регрессия; оцениваемая модель: y = Xβ ε короткая регрессия. В оцениваемой модели присутствуют...
42167. ДІЇ НАД МАТРИЦЯМИ 137 KB
  Знайти і видати на екран і в файл значення: сум модулів елементів кожного стовпчика матриці А, середнього арифметичного найменших елементів кожного рядка матриці А; обчислити матрицю В, яка визначається за формулами і видати на екран; в матриці А поміняти місцями найбільший за модулем елемент останнього рядка і найменший за модулем елемент першого стовпчика і видати на екран.