Студопедия

КАТЕГОРИИ:


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

Вывод сообщения (Wait)




Обмен данными между массивами и таблицами

Пример

Команда установки связей между таблицами

Команда Set Relation To[<Выр> Into <Псевдоним>]... [additive] свя­зывает активную главную (родительскую, ведущую) таблицу с откры­той подчиненной (дочерней, ведомой) таблицей из другой рабочей области.

Вторая таблица идентифицируется фразой Into <Псевдоним >. При перемещении указателя записи в активной главной таблице, указатель в связанной подчиненной таблице автома­ти­чески перемещается на соответствующую связанную запись. Если в связанной таблице такая за­пись не найдена, то указатель устанавливается на конец таблицы.

Связь таблиц может быть установлена следующими способами.

1. Если таблица, имя которой задано <псевдонимом>, проин­дек­­сирована, то <Выр> может включать константы и значения полей активной таблицы для поиска соответствующего значения ключа ин­дек­са подчиненной таблицы. Индекс должен быть построен по <Выр>, иначе возникает ошибка.

2. Если таблица, имя которой задано <псевдонимом>, не ин­дек­сирована, то <Выр> должно быть числовым. Выражение вы­чис­ляется для текущей записи активной таблицы, и результат исполь­зу­ет­ся в качестве номера записи второй таблицы.

Можно построить и множественную связь. При этом текущая вы­б­ранная таблица связывается с несколькими таблицами в других рабо­чих областях. Выражения связи в команде разделяются запятыми.

Additive - обеспечивает сохранение ранее установленных связей таблиц.

Команда без аргументов отменяет все связи, установленные из текущей рабочей области.

Пример связывания шести таблиц представлен ниже (рис.2.4.17.2.1).

 
 

 


Рисунок 2.4.17.2.1. Концептуальная модель из шести таблиц

 

Select 1 && установка первой рабочей области

Use Izdelie && ведущая таблица - выпуск изделий

Use Postavh Index Postavh In 2 && поставщики

Use Potrebit Index Potrebit In 3 && потребители

Use Minpotr Index Minpotr In 4 && министерство потребителей

Use Gorpost Index Gorpost In 5 && города поставщиков

Use Oblpost Index Oblpost In 6 && области поставщиков

Set Relation To Kod_Post Into Postavh && изделия->поставщики

Set Relation To Kod_Potr Into Potrebit Additive && изделия->потребители

Select Potrebit && ведущая таблица - потребители

Set Relation To Kod_Min Into Minpotr Additive &&потребители->мин. потребителя

Select Postavh && ведущая таблица - поставщики

Set Relation To Kod_Gor Into Gorpost Additive &&поставщики->гор. поставщика

Select Gorpost && ведущая таблица - города поставщиков

Set Relation To Kod_Obl Into Oblpost Additive &&города->области

Select Izdelie &&установка текущей рабочей области с таблицей - изделия

 

Команда Set Skip To[<псевдоним1> [, <псевдоним2>]... ] создает между таблицами отношения типа“один-ко-многим”. Отношение “один-ко-многим” устанавливается наподобие отношения “один-к-од­но­му”. Прежде всего, отношения между исходной и порожденными таб­ли­ца­ми устанавливается посредством Set Relation. Затем выдается команда Set Skip, что формирует отношение “один-ко-многим”. Если ис­ход­ная таблица связывается с несколькими порожденными, то необхо­ди­мо вклю­чить список псевдонимов, разделенных запятыми (<псевдоним1>, <псев­доним2>,...).

Для удаления отношения типа “один-ко-многим” из текущей вы­б­ран­ной рабочей области используется команда Set Skip To без ар­гу­ментов. При этом составляющие его отношения типа “один-к-одному” про­должают еще существовать и могут быть удалены командой Set Relation To.

Select 1 && исходная рабочая область

Use Izdelie && исходная таблица - номенклатура изделий

Use Vipusk Index Vipusk In 2 && порожденная таблица выпуска изделий

Set Relation To Kod_Zavoda Into Vipusk && установка отношения

Set Skip To Vipusk && “один-ко-многим”

* вывод полей из исходной (Naim) и порожденной (Kol, Data) таблиц

Browse Fields Izdelie.Naim, Vipusk.Kol, Vipusk.Data

Работа с одномерными массивами/переменными. Следующая команда последовательно переносит значения полей только из текущей записи активной таблицы в последовательные элементы одномерного массива (если указана опция <массив> или переменные (если указано Memvar). Все такие переменные получат те же типы и размеры, что и поля таблицы.

Scatter[Fields <поля>] [Memo] То <массив> / [Memvar]

Если массив ранее не был описан или его длина недостаточна, то он будет создан командой. Если переменные ранее не существовали, то они будут созданы с теми же именами, что и соответствующие поля. Для того чтобы СУБД могла отличить одинаковые имена полей и переменных, к последним нужно обращаться с префиксом “М“ (М.Х).

Если режим Fields не указан, то переносятся все поля записи. Опция Memo указывает на то, что и мемо-поля будут копироваться.

Действие команды Gather обратно действию команды Scatter:

GatherFrom <массив> /Меmvar [Fields <список полей>] [Memo]

Команда переписывает в <поля> текущей записи активного файла таблицы элементы <массива> или одноименные переменные (опция Memvar), созданные ранее командой Scatter, включая и мемо-поля (если указана опция Memo). Если отсутствует слово Fields, то элементы переносятся в последовательные поля, начиная с первого. Если число элементов массива и полей не совпадает, то лишние игнорируются. Рассмотренная пара команд очень удобна, если предстоит сложная обработка полей записи таблицы. В этом случае лучше перенести их в переменные или в массив, а затем, после обработки, вернуть в таблицу.

2.4.19. Ввод‑вывод данных сообщений

Для ввода и вывода данных обычно используются формы. Но в некоторых случаях (для отладки или если выводится только одно сообщение) можно воспользоваться предлагаемыми далее средствами.

2.4.19.1. Вывод данных на экран (?,??,???)

Команды ? |?? |??? [<Выр>] выводят значение <Выр>.

? - вывод результата выражения с новой строки.

?? - выводит результат в текущей строке на текущей позиции.

??? <ВырC> -направляет содержание <вырC> непосредственно на принтер. Эта команда позволяет использовать управляющие коды принтера для его управления. Последовательность кодов (n) задается строкой <вырС> обычно в виде сцепленных функций Chr(n).

Wait[<ВырC>] [To <переменная>]

[Window] [Nowait] [Clear] [Timeout <ВырN>]

<ВырC> - сообщение, выводимое на экране.

<переменная> - имя переменной, куда помещается ответ с клавиатуры.

Window - вывод сообщения в системное окно выдачи сообщений.

Nowait - продолжение работы программы без приостановки программы.

Clear - удаление системного окна или удаление с экрана сообщения, выданного командой Wait Nowait.

<ВырN> - указывает, какое количество секунд будет выполняться команда Wait. Опция Timeout должна быть последней фразой в команде.

 




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


Дата добавления: 2014-12-10; Просмотров: 487; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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