Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Организация процедур




Фильтрация базы данных

После открытия или создания новой БД можно работать не со всей БД, а с ограниченным числом полей и записей. Для этого после ввода команд меню Database, SetUp устанавливаются поля для доступа: [X]Set Fields и фильтр для записей: [X]Filter.

Для задания полей для доступа активизировать Set Fields. Появляется новое окно с форточками: поля БД (Database Fields) и поля доступа (Selected Fields). Для перемещения <Move> поля нужно выбрать имя нужного поля в форточке Database Fields и нажать Enter. Для исключения поля из доступа – то же в форточке Selected Fields.

В окне установок SetUp можно включить (On) или выключить (Off) назначенную установку полей. По умолчанию все поля БД доступны для редактирования и просмотра.

Для установки фильтра включить кнопку Filter. В новом окне имеется панель для записи выражения (Expression) с подсказкой допустимого типа: <expL>, кнопками справок функций и операторов: Math, String, Logical, Date. Из форточек имен полей (Field Names) и переменных (Variables) можно перемещать имена в панель для записи выражений. Для этого необходимо установить курсор на имени поля и нажать клавишу Enter.

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

SET FILTER TO <выражение> <ВК>

SET FILTER TO <ВК> && снять фильтр

ПРИМЕР

SET FILTER TO SUMMA >50 <ВК>

LIST <ВК>

&& Распечатаются записи с полями SUMMA > 50

В FoxPro предусмотрена возможность использования процедур, которые могут быть как внешними, так и внутренними. Частным случаем процедуры являются процедуры функции.

Структура внутренней процедуры:

PROCEDURE <имя процедуры>

<тело процедуры>

RETURN [TO MASTER/<выражение>],

где параметры последней команды RETURN, дающей выход в файл верхнего уровня, имеют значения:

TO MASTER – дает возврат на командный файл самого верхнего уровня,

<выражение> – содержит возвращение значения, если процедура представляет функцию.

Внутри процедуры может быть команда CANCEL, которая создает прерывания и выход в инструментальную среду FoxPro.

Процедуры могут быть собраны в процедурный файл – внешние процедуры. Процедура вызывается в оперативную память открытием процедурного файла.

SET PROCEDURE TO <имя файла>

Обращения к процедуре выполняется командой:

DO <имя процедуры> [WITH <список параметров>] [IN <файл>],

где WITH – список передаваемых и получаемых параметров;

IN – имя файла, внутри которого находится процедура.

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

PARAMETERS <список параметров>

 

Глава 4. Работа с многотабличной базой данных. Связывание таблиц данных

Работа с несколькими таблицами базы данныхОдновременная работа с несколькими БД позволяет получать сведения, хранящиеся в разных базах и принадлежащие одним и тем же объектам.

Например, паспортные данные и сведения о месте работы могут храниться в разных базах данных. При извлечении всех данных необходимо воспользоваться одновременно несколькими БД. Одна из баз называется старшей, остальные – младшими. Записи в базах данных должны иметь общее поле (например, FAM), и младшие базы индексируются по этому полю.

Откроем БД. Для этого необходимо в окне меню View поставить курсор на рабочие области Work Areas: A, B, C... и, нажимая Enter или SpaceBar, последовательно открыть все нужные БД по одной в каждой области.

Далее проиндексируем младшие базы по полю FAM.

Зададим старшую базу: выбрать имя старшей базы, нажать SpaceBar и включить кнопку <Relations>.

Затем отметим младшую базу: выбрать имя младшей базы, нажать SpaceBar и задать поле связи FAM.

Для старшей базы снова включим кнопку <Relations>, отметим следующую базу, зададим поле связи и т.д. В форточке Relations будет отмечаться связь параллельного типа. Последовательный тип применяется при связи по нескольким полям (в виде каскада).

Для вывода данных применяются команды (в окне Command):

Display all, List, Browse Fields со списком полей, записи в которых выводятся на экран. Указываются составные имена полей ("имя рабочей области_имя поля" либо "псевдоним_имя поля"), например: List A.FAM, B.FAM, B.POL, C.FAM, C.DATA_R.

ПРИМЕР

SELECT A

USE BRIG1

SELECT B

USE KADR INDEX KADRTAB IN B

SELECT A

SET RELATION TO BRIGTAB INTO B

LIST A.FAM, B.POL, A.DATA_R.

Связь вида одна_запись_с_одной – команда связывает указатель записи в активной рабочей области с указателем записи из других рабочих областей, имена которых указаны после слова INTO, по заданному общему ключевому полю.

Формат команды:

SET RELATION TO <КЛЮЧ> INTO <ОБЛАСТЬ>[,<КЛЮЧ>INTO <ОБЛАСТЬ>] [ADDITIVE]

Связь вида одна_запись_со_многими – при этом с каждой записью из старшей базы могут быть сцеплены несколько записей из младшей базы. Связь может быть установлена сразу с несколькими базами, находящимися в разных областях.

Формат команды:

SET SKIP TO [<ОБЛАСТЬ1>],[<ОБЛАСТЬ2>]

Прежде чем использовать команду SET SKIP TO, необходимо выполнить начальное сцепление вида связь_одна_запись_с_одной командой SET RELATION. УДАЛЕНИЕ связи вида одна_запись_со_многими осуществляется командой SET SKIP TO без параметров.

ПРИМЕР. Рассмотрим пример организации связи одной базы с несколькими базами, причем эта связь будет реализована по схеме одна_запись_со_многими:

Рабочие могут работать сразу в нескольких бригадах. Требуется предъявить все выработки для каждой фамилии из базы KADR.DBF:

SELE A

USE KADR IN A

SELE B

USE BRIG3 IN B INDEX BRIG3

SELE C

USE BRIG5 IN B INDEX BRIG5

SELE A

SET RELATION TO TAB INTO B, TAB INTO C

SET SKIP TO B,C

BROWSE FIELDS A.FAM:H=’ФАМИЛИЯ’,; A.TAB:H=’ТАБЕЛЬ’, B.TAB:H=’БРИГ.3’, B.VIR:’ВЫР.’,;

C.TAB:H=’БРИГ.5’, C.VIR:’ВЫР.’

SET RELATION TO

Результат программы:

 

ФАМИЛИЯ ТАБ.1 ТАБ.2 ВЫРАБОТКА ВЫРАБОТКА СУММА
ЕФИМОВ     ЛАРИОНОВ       280.60 130.00   25.70 60.00   50.00 80.00 100.00 650.00

 

 


 

Глава 5 Основы языка структурированных запросов (SQL)

 

SQL – язык запросов, основан на наборах записей. Он не имеет никаких команд для отображения или управления информацией. SQL предназначен для хранения и поиска данных.

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

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 600; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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