Желательно в качестве псевдонима присваивать осмысленное сочетание из 3 -4 букв.
В любой момент времени может быть открыто много рабочих областей, но главной будет одна.
Для назначения текущей рабочей области используют команду
SELECT <номер рабочей области или псевдоним>
Для доступа к полям таблицы следует указывать псевдоним рабочей области, в которой открыта таблица, затем точка и потом имя нужного поля.
2.Установление взаимосвязи в приложении с помощью команд
Для установления взаимосвязи текущей делают ту рабочую область, где находится дочерняя таблица и с помощью команды
SET RELATION TO
Подключают одну или несколько таблиц, открытых в пассивной рабочей области.
SET RELATION TO <выр 1> INTO <псевдоним рабочей области> / <выр 2> INTO <псевдоним рабочей области>
<выр 1> и <выр 2> - имена общих полей между дочерней таблицей и несколькими родительскими.
INTO <псевдоним> - псевдонимы рабочих областей, где открыты соответствующие родительские таблицы.
С помощью команды RELATION можно установить взаимосвязь один к одному, т. е. даже если в дочерней таблице общим полем является внешний ключ типа REGULAR и имеется несколько записей с одинаковыми значениями на экран будет выводится только одна запись из дочерней таблицы.
Для разрыва всех взаимосвязей «один к одному» активной таблицы, надо подать команду SET RELATION TO без опций.
Если надо разорвать одну конкретную взаимосвязь между активной (дочерней) таблицей и пассивной (родительской), необходимо подать команду SET RELATION OF INTO <псевдоним рабочей области>
Взаимосвязь один ко многим устанавливается поверх взаимосвязи один к одному, т. е. сначала устанавливается взаимосвязь один к одному, затем дают команду
SET SKIP TO <псевдоним рабочей области>
При этом на экран будет выводиться для одной записи из родительской таблицы несколько записей дочерней.
Для удаления взаимосвязи «один ко многим» надо подать команду SET SKIP TO без опций.
3.Создание связей с помощью меню
Установить связи можно с помощью главного меню. Для этого в каждой таблице предварительно строят первичный и внешний ключи, затем выводят на экран диалоговую панель TABLE DESIGNER. Курсор мыши нужно разместить на имени первичного ключа родительской таблицы и вести на имя соответствующего внешнего ключа дочерней таблицы.
Затем на экран выводится панель EDIT RELATIONSHIP, где надо проверить, а при необходимости уточнить, параметры взаимосвязи.
После нажатия на кнопке Ok, на экран выводится диалоговая панель DATABASE DESINER, между именами соответствующих индексов автоматически прорисовывается прямая линия.
Со стороны один линия начинается с символа +, а со стороны много с символа - . Обратная буксировка не допустима (от дочерней к родительской).
Тип взаимосвязи устанавливается автоматически в зависимости от типа индексов.
Если в родительской и в дочерней таблицах индексы уникальны, создается связь «один к одному». Если в родительской индекс уникальный, а в дочерней таблице – регулярный, получается связь «один ко многим».
Чтобы редактировать существующую взаимосвязь необходимо вызвать диалоговую панель EDIT RELATIONSHIP. Для этого установите курсор на линию связи, щелкните левой кнопкой (линия утолщается). Затем правой кнопкой вызвать меню, в котором выбрать пункт EDIT RELATIONSHIP.
Для удаления взаимосвязи её надо выделить, а затем нажать на кнопку DEL.
Создание ссылочной целостности в приложении.
Выполнение условий ссылочной целостности гарантирует помещение в базу данных только достоверной информации. Ссылочная целостность обеспечивается механизмом каскадных воздействий: каскадное удаление и каскадное редактирование ключевых полей.
Каскадное удаление – это одновременное удаление записи из родительской таблицы с удалением соответствующих записей из всех дочерних таблиц.
Удаление записи из дочерней таблицы не ведет за собой удаление её из родительской. Аналогично для редактирования.
Для установления каскадных воздействий надо выделить линию взаимосвязи левой кнопкой мыши и вызвать на экран меню, выбрав пункт REFERENTIAL INTEGRITY. На экран выводится диалоговая панель REFERENTIAL INTEGRITY BUILDER, в которой расположена таблица со следующими графами:
– Parent Table – имя родительской таблицы.
– Child Table – имена дочерних таблиц.
– UpDate – содержит один из возможных типов каскадного воздействия при редактировании поля.
– Delete – содержит один из возможных типов каскадного воздействия при удалении поля.
– Insert – содержит один из возможных типов каскадного воздействия при вставке поля.
– Parent Tag – содержит имя тега в родительской таблице.
– Child Tag – содержит имя тега в дочерней таблице.
Возможные типы каскадного воздействия:
Cascade – при изменении значения поля первичного или альтернативного ключа в родительской таблице автоматически выполняется изменение соответствующего поля в дочерней таблице.
Restrict – запрещает изменение значений полей первичного или альтернативного ключа в родительской таблице, если в дочерней имеются соответствующие во внешнем ключе.
Ignore – допускаются любые изменения. Условия ссылочной целостности не контролируются.
4. Работа в связанных таблицах
Чтобы получить одновременно информацию из разных таблиц, необходимо выполнить следующие действия. Одна таблица размещается в активной рабочей области, а вторая – в пассивной. С помощью команды
JOIN WITH (псевдоним пассивной рабочей области)
TO <имя нового файла>
FOR <условие>
FIELDS <список имен полей>
будет получен новый (третий) табличный файл, который будет записан по указанному адресу. В состав его будут включены любые указанные поля из обеих таблиц, в соответствии с условиями прописанными в операторе FOR.
Особенности выполнения команды:
1. Если в пассивной таблице нет записи с каким-либо значением общего поля, а в активной таблице такое значение общего поля имеется, то запись из активной таблицы не помещается в результирующую таблицу.
2. Если в активной или пассивной таблице имеются записи с дублирующим значением общего поля, то в результирующий файл помещается всё.
Корректирование данных в связанных таблицах.
Иногда бывает нужно внести большое количество изменений в одну таблицу, используя данные из другой таблицы. Для этого корректируемую таблицу необходимо поместить в активную рабочую область, а таблицу-источник для исправления данных – в пассивную, и выполнить команду
UPDATE ON <имя общего поля>
FROM <пассивная рабочая область>
REPLACE <имя поля 1 в активной таблице> WITH <выражение 1> <имя поля 2 в активной таблице> WITH <выражение 2>
ON указывает имя общего поля, причем обе таблицы должны быть проиндексированы по этому полю в порядке возрастания.
FROM указывает имя поля в активной области, куда надо внести изменения в соответствии с <выражение 1> указанным в опции WITH и соответственным по значениям полей пассивной таблицы.
К недостаткам этой команды следует отнести отсутствие контроля на достоверность данных после внесения изменений.
Для обеспечения достоверности должны быть предприняты дополнительные меры.
Создание итогового табличного файла
При создании отчетов необходимо иметь итоговые суммы по некоторым числовым полям.
Команда TOTAL создает итоговый табличный файл, содержащий суммы по указанным полям.
Предварительный табличный файл должен быть отсортирован по ключевому полю. При работе команды подсчитывается сумма по указанным числовым полям, поля других типов копируются в итоговый файл.
Формат команды:
TOTAL ON <имя поля> TO <имя итогового файла>
FIELDS <список имен полей>
FOR <выражение 1>
WHILE <выражение 2>
Лекция 10. Проект как средство объединения элементов приложения
План:
1. Создание проекта приложения
2. Управление проектом с помощью меню
3. Задание общих параметров в приложении
Создание проекта приложения
При создании приложения используется проект, который объединяет элементы приложения VFP и группирует их по типам.
Информация о проекте хранится в специальной таблице, которая в отличие от обычных таблиц имеет расширение *.pjx.
Мемо-поля таблицы содержат поименованные элементы проекта, его описание и другие текстовые элементы. Файл с мемо-полями таблицы имеет расширение *.PJT.
Использование проекта упрощает разработку приложения, т. к. в проекте базы данных программы, формы, отчеты, запросы и другие элементы приложения располагаются в соответствующих разделах, а также запоминается расположение каждого включенного в проект элемента.
Создав проект и определив входящие в него элементы, вы можете использовать его для сборки приложения, построив файл с расширением *.APP или для создания исполняющего файла с расширением *.exe.
Для создания нового проекта можно использовать мастер Application Wizard или дать команду
File → New.
Откроется диалоговое окно с перечислением всех возможных типов элементов. По умолчанию устанавливается опция Project (проект)
Вкладки окна Project Manager
Вкладка | Отображаемые файлы |
ALL | Все |
DATA | Базы данных, таблицы, запросы, представления данных, хранимые процедуры. |
DOCUMENTS | Формы, отчеты, этикетки |
CLASSES | Классы |
CODE | Программы |
OTHER | Меню |
На следующем уровне находятся типы файлов данной категории. Например, для категории DOCUMENTS имеются следующие типы файлов:
Forms – формы
Reports – отчеты
Labels – этикетки
Некоторые типы файлов могут иметь последующие уровни иерархии. Например, база данных может содержать таблицы, представления данных, а каждая таблица – поля.
Управление проектом с помощью меню
При открытии окна проекта в основное меню VFP добавляется новый пункт меню Project, который содержит команды, позволяющие работать с файлами, входящими в проект
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 |


