Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
25.11.2010, 18:58
|
|||
---|---|---|---|
|
|||
Связь между двумя таблицами |
|||
#18+
Есть две таблицы А1 и А2. Как с помощью команды SET RELATION TO установить связь между ними ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.11.2010, 19:30
|
|||
---|---|---|---|
Связь между двумя таблицами |
|||
#18+
У вас что, foxhelp нет? SET RELATION SET RELATION Устанавливает отношение между двумя открытыми таблицами. Синтаксис SET RELATION TO [eExpression1 INTO nWorkArea1 | cTableAlias1 [, eExpression2 INTO nWorkArea2 | cTableAlias2 ...] [IN nWorkArea | cTableAlias] [ADDITIVE]] Параметры eExpression1 Задает реляционное выражение, которое устанавливает отношение между родительской и дочерней таблицами. В качестве реляционного выражения обычно используется выражение управляющего индекса дочерней таблицы. У дочерней таблицы могут быть индексы различных типов: простой индекс (.IDX), структурный составной индекс (.CDX) или независимый составной индекс. Если индекс составной, задайте соответствующий тег индекса для упорядочения дочерней таблицы; это можно сделать с помощью команды SET ORDER. Рассмотрим описанные в комментариях таблицы customer и orders. Предположим, что дочерняя таблица orders была индексирована и упорядочена по номеру клиента с помощью следующей команды: SET ORDER TO TAG cust_id Чтобы связать таблицы customer и orders отношением на базе номера клиента, выберите рабочую область, содержащую родительскую таблицу customer, или задайте рабочую область или псевдоним родительской таблицы с помощью предложения IN, а затем выдайте команду SET RELATION, задав выражение индекса в качестве реляционного выражения: SET RELATION TO cust_id INTO orders Дочерняя таблица должна быть проиндексирована, если только реляционное выражение не является числовым. Если вы выдали команду SET RELATION с реляционным выражением нечислового типа, а дочерняя таблица не была упорядочена с помощью инлекса, Visual FoxPro выдаст сообщение об ошибке. Если выражение eExpression1 числового типа, оно вычисляется при перемещении указателя записи в родительской таблице. После этого указатель записи в дочерней таблице устанавливается на записи с номером eExpression1. INTO nWorkArea1 | cTableAlias1 Задает для дочерней таблицы номер рабочей области (nWorkArea1) или псевдоним (cTableAlias1). eExpression2 INTO nWorkArea2 | cTableAlias2 ... Задает реляционное выражение (eExpression2) и дочернюю таблицу (или таблицы), с которой родительская таблица должна установить еще одно отношение. С помощью одной команды SET RELATION можно построить несколько отношений между одной родительской таблицей и различными дочерними таблицами. Перед каждым отношением необходимо ставить запятую. nWorkArea2 задает для дочерней таблицы номер рабочей области, а cTableAlias2 ѕ ее псевдоним. IN nWorkArea Задает рабочую область родительской таблицы. IN cTableAlias Задает псевдоним родительской таблицы. Предложение IN позволяет создать отношение, заранее не выбирая рабочую область родительской таблицы. Если аргументы nWorkArea и cTableAlias опущены, родительская таблица должна быть открыта в выбранной в данный момент рабочей области. ADDITIVE Сохраняет все уже существующие в текущей рабочей области отношения и создает заданное отношение. Если опустить ключевое слово ADDITIVE, все отношения в текущей рабочей области разрываются, после чего создается заданное отношение. Комментарии Перед тем как устанавливать отношение, одна таблица (родительская) должна быть открыта, а вторая (дочерняя) должна быть открыта в другой рабочей области. Связанные отношением таблицы обычно имеют общее поле. Пусть таблица customer содержит информацию о клиентах. В ней предусмотрены поля для имени, адреса и уникального номера клиента. Вторая таблица, orders, содержит информацию о заказах. В ней также имеется поле номера клиента, наряду с полями, содержащими информацию о датах и объемах поставок. Команда SET RELATION свяжет эти две таблицы отношением на базе общего поля ѕ поля номера клиента. Чтобы установить такое отношение, дочерняя таблица должна быть проиндексирована по общему полю. После того как отношение установлено, всякий раз, когда вы в родительской таблице customer будете перемещать указатель записи к записи с данным номером клиента, указатель записи в дочерней таблице orders будет перемещаться к записи с тем же номером клиента. Если в дочерней таблице не удается найти соответствующую запись, ее указатель записи устанавливается в конец таблицы. Выдав команду SET RELATION TO без аргументов, вы удалите все отношения, установленные в выбранной в данный момент рабочей области. Команду SET RELATION OFF можно использовать для удаления отдельных отношений типа родитель/потомок. SET RELATION OFF SET RELATION OFF Разрывает установленное отношение между родительской таблицей в текущей рабочей области и связанной с ней дочерней таблицей. Синтаксис SET RELATION OFF INTO nWorkArea | cTableAlias Параметры INTO nWorkArea | cTableAlias Задает для дочерней таблицы номер рабочей области или псевдоним. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&mobile=1&tid=1584779]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
others: | 345ms |
total: | 446ms |
0 / 0 |