Файл: В терминах бд столбцы таблицы называются полями, а её строки записями.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 20

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОЗДАНИЕ ИНДЕКСА

Создать индекс можно двумя способами.

а. С помощью команды:

INDEX ON <индексное выражение> ТО <idх-файл> | TAG <имя тега> [OF <сdх-файл>]

[FOR <условие>]

[COMPACT]

[DESCENDING]

[UNIQUE]

[ADDITIVE]

[NOOPTIMIZE]

Назначение опций:

<индексное выражение> — имя поля (или полей), по значениям которого надо построить индекс. При построении сложного ин­декса имена полей перечисляются через знак + (плюс). Если сложный индекс построен по:

• числовым полям, то индекс строится по сумме значений полей;

• символьным полям, то индекс строится сначала по значе­нию первого поля, а при повторяющихся значениях перво­го поля — по значениям второго поля; при повторяющихся значениях первого и второго полей — по значениям треть­его поля и т. д.;

• по полям разных типов, то сначала значения полей приво­дят к одному типу, как правило символьному, а затем стро­ят индекс.

Длина индексного выражения не должна превышать 254 сим­вола.

ТО <idх-файл> — указывается имя одноиндексного файла.

TAG <имя тега> [OF <cdx-файл>] — указывается имя тега в мультииндексном файле. Если используется опция [OF ] , то создаваемый тег помещается в указанный мульти-индексный файл, а если требуемый мультииндексный файл от­сутствует, то будет построен структурный мультииндексный файл. Если опция [OF <сс!х-файл>] опущена, то созданный тег будет помещен в текущий мультииндексный файл.

FOR <условие> — устанавливает режим отбора в индекс тех за­писей таблицы, которые удовлетворяют <условию>.

COMPACT — управляет созданием компактного одноиндекс­ного файла. В старших версиях FoxPro не используется.

DESCENDING — строит индекс по убыванию. По умолчанию ис­пользуется построение индекса по возрастанию (ASCENDING). Для одноиндексных файлов можно построить индекс только по возрастанию. Если перед использованием команды INDEX ON... подать команду SET COLLATE, то можно построить одноин-дексный файл по убыванию.

UNIQUE — строит уникальный индекс. Если индексное поле (поля) содержит повторяющиеся значения, то в индекс попадает только одна первая запись и остальные записи будут не до­ступны.

ADDITIVE — вновь создаваемый индексный файл не закрыва­ет уже открытые к этому моменту времени индексные файлы. Если опция опущена, то вновь создаваемый индексный файл за­крывает все ранее открытые индексные файлы.

б. С помощью Главного меню:

В этом случае индекс создается либо при создании таблицы, либо при модификации структуры таблицы. Для этого в ди­алоговой панели Table Designer надо выбрать вкладку Index (рис. 3.1).

Каждый индекс описывается одной строкой в окне диалого­вой панели Table Designer.

В графе Name указывается имя тега мультииндексного фай­ла. Если ранее открыт один из мультииндексеых файлов, то вновь построенный индекс помещается в открытый мультиин-дексный файл. Если индекс строится одновременно с создани­ем табличного файла или табличный файл не имеет мультиин-дексных файлов, то вновь построенный индекс помещается в автоматически создаваемый структурный мультииндексный файл.




В графе Туре, снабженной раскрывающимся списком, ука­зывается один из допустимых типов индекса. Если индекс стро­ится для таблицы, входящей в состав базы данных, то возможны четыре значения: Primary, Candidate, Unique и Regular. Если ин деке строится для свободной таблицы, то в раскрывающемся списке отсутствует значение Primary.

В графе Expression перечисляются имена полей, по значени­ям которых надо построить индекс. Если строится сложный индекс, то удобнее воспользоваться построителем выражений, который запускается нажатием кнопки, расположенной справа от поля ввода.
В графе Filter можно задать логическое условие и построить индекс не для всех записей таблицы, а только для записей, удов­летворяющих условию фильтра. Эта графа также снабжена построителем выражений. Содержание и внешний вид обоих по­строителей одинаковые (рис. 3.2).

На рис. 3.2 показано построение сложного индекса по двум символьным полям ush_step и uch_zvan (имя тегу uch было присвоено до вызова на экран построителя выражений). Знак «+», указывающий на построение сложного индекса, взят из рас­крывающегося списка String,

В раскрывающемся списке String приведены допустимые строковые функции. Аналогично в раскрывающихся списках Math, Logical и Date приведены допустимые математические, ло­гические функции и функции даты. Нужная функция из этих раскрывающихся списков выбирается щелчком левой кнопки мыши. Имена полей (список Fields) и имена переменных (спи­сок Variables) выбираются с помощью двойного щелчка левой кнопки мыши. Получившееся в результате выражение помеща­ется в окно Expression.

В раскрывающемся списке From Table указано имя таблицы, из которой берутся поля для построения индекса. При желании можно заказать любую таблицу из текущей базы данных и для по­строения индекса взять любое поле.

ОТКРЫТИЕ ИНДЕКСНОГО ФАЙЛА

Открыть индексный файл можно только в том случае, если ранее открыт соответствующий табличный файл. В противном случае будет выдано сообщение об ошибке. Для открытия индексного файла надо подать команду:

SET INDEX TO [список индексных файлов]

[ORDER <выр.N> | <idx-файл>|[ТАG<имя тега>][ОР<cdх-файл>]]

[ASCENDING | DESCENDING]

[ADDITIVE]

Назначение опций такое же, как в командах USE и INDEX ON.

Открыть существующий индексный файл можно одновре­менно с открытием табличного файла командой USE (см. п. 2.2 «Открытие таблицы»).

Для закрытия всех индексных файлов надо подать одну из ко­манд: либо SET INDEX TO без опций, либо CLOSE INDEX.

ЗАМЕНА ТЕКУЩЕГО ИНДЕКСА

Для каждой таблицы одновременно может быть открыто не­сколько индексных файлов, но текущим (активным) будет толь­ко один индекс. По умолчанию принято, что текущим будет первый по порядку индекс в том индексном файле, имя которого указано первым в списке имен индексных файлов команды USE или команды SET INDEX TO.

Текущим можно сделать любой индекс из текущего индекс­ного файла с помощью команды

SET ORDER TO

[<выр.N1> | <idх-файл> | [TAG <имя тега> [OF <сdх-файл>]]

[IN <выр.N2> | <выр.С ]

[ASCENDING | DESCENDING]

Назначение опций:

<выр.Nl> — задает текущий индекс по его порядковому номеру в мультииндексном файле.

— делает текущим одноиндексный файл.

TAG <имя тега> [OF ] — задает текущий индекс по имени тега из указанного мультииндексного файла. Если опция [OF <сdx-файл>] опущена, то тег выбирается из текущего муль­тииндексного файла.

IN <выр.N2> — указывает номер рабочей области, в которой на­ходится индексный файл. Опция используется в том случае, если табличный файл открыт в одной рабочей области, а индексный файл — в другой рабочей области.

Текущим индекс также можно сделать с помощью диалоговой панели Table Designer, переместив строку описания нужного ин­декса на первое место.
ПЕРЕСТРОЙКА ИНДЕКСНЫХ ФАЙЛОВ

При внесении изменений в большие таблицы тратится много времени, так как при внесении каждого изменения заново пере­страиваются все открытые индексные файлы. Для экономии времени индексные файлы закрывают и вносят изменения в таб­лицу. Однако в этом случае возникает несоответствие между об­новленной таблицей и индексными файлами. Для устранения указанного несоответствия надо заново перестроить индексные файлы. После открытия всех индексных файлов, принадлежа­щих измененному табличному файлу, надо подать команду REINDEX. Команда действует на все индексные файлы, откры­тые в текущей рабочей области. Переиндексирование можно также выполнить, подав из Главного меню команду Table -> Rebuild Indexes.
ПРЕОБРАЗОВАНИЕ ОДНОЙНДЕКСНОГО ФАЙЛА В ТЕГ

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

COPY INDEXES <имена idx - файлов> | ALL [TO файл>]

Опция ALL указывается в том случае, если надо скопировать все одноиндексные файлы. При этом список имен <имена idx-файлов> не указывается. Тегам присваиваются имена одноиндексных файлов. При копировании нескольких одноиндексных файлов их имена перечисляются через запятую. Если опция ТО опущена, то одноидексные файлы копируются в текущий мультииндексный файл. Если опция ТО содержит имя несуществу­ющего мультииндексного файла, то он создается.

Допустима и обратная операция, то есть один тег преобразу­ется (копируется) в одноиндексный файл с помощью команды:

COPY TAG <список имен тегов> {OF <сdх-файл> ] TO <idx-файл>]

Предварительно мульти индексный файл должен быть от­крыт. Можно скопировать отдельные теги, указав <список имен тегов>, либо все теги, используя опцию ALL.

УДАЛЕНИЕ ТЕГА ИЗ МУЛЬТИИНДЕКСНОГО ФАЙЛА

Удалить один тег или все теги из мультииндексного файла, от­крытого в любой рабочей области, можно с помощью команды

DELETE TAG <имя тега 1> [OF <имя cdх-файла>]

[,<имя тега 2> [OF <имя сdх-файла> ] ] ... |

ALL [OF <имя сdх-файла> ]

Одной командой можно удалить теги, находящиеся в разных мультииндексных файлах.
ВЫВОД НА ЭКРАН ИМЕН ИНДЕКСНЫХ ФАЙЛОВ И ИМЕН ТЕГОВ

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

NDX(<выр.N> [,<номер рабочей области | псевдоним рабочей области> ])

Функция возвращает имена открытых одноиндексных фай­лов.

CDX(<выр.N> [,<номер рабочей области | псевдоним рабочей области> ])

Функция возвращает имена открытых мультииндексных фай­лов.

MDX(<выр.N> [,<номер рабочей области | псевдоним рабочей области>])

Функция возвращает имя структурного мультииндексного файла.

Во всех функциях <выр. N> — порядковый номер индексно­го файла, имя которого должна вернуть функция.

ТАG ([<имя сdх-файла> , <выр.N> [, <номер рабочей области | псевдоним рабочей области> ])

Функция возвращает для указанного <имя сdх-файла> муль­тииндексного файла имя тега <выр.N>, заданного порядковым номером. Если <имя сdх-файла> опущено, то по умолчанию подставляется имя текущего мультииндексного файла.
КОМАНДЫ ВВОДА-ВЫВОДА

При работе с базами данных постоянно требуется вводить какие-либо данные, задавать критерии поиска и фильтрации, получать из базы данных результаты произведенных действий. Для этих целей предусмотрены команды ввода-вывода, которые бывают как простыми, так и универсальными.
Простейшие команды вывода

В FoxPro имеются команды для вывода на экран значений пере­менных и элементов массивов. Причем эти команды допускают управление шрифтом и простейшее форматирование. Формат команды вывода:

?|?? [<выр.1>]

[PICTURE <выр. С1>]

[FUNCTION <выр. С2>]

[AT <выр. Nl>]

[FONT <выр. С3> [, <выр.N2> ]] [STYLE <выр.С4>]

[, <выр.2>] ...

Команда вычисляет и выводит на экран <выр.1>. Назначе­ние опций :

? <выр.1> — вычисляет и выводит значение <выр. 1> в следую­щей строке экрана.

?? <выр.1> — вычисляет и выводит на экран <выр.1> в текущей строке экрана.

Если перед этой командой указана команда SET PRINTER ON, то вывод будет производиться на принтер (печать).

PICTURE <выр. С1> — задает шаблон для вывода значения <выр.1>.

FUNCTION <выр. С2> — задает коды управления выводом.

AT <выр. Nl> — используется для создания таблиц. <выр.N1> задает номер колонки на экране, с которой начинается вывод значения <выр.1>.

FONT <выр. С3> [, <выр.N2> ] [STYLE <выр.С4>] — опция за­дает тип шрифта (<выр.СЗ>), размер шрифта (<выр.N2>) и стиль написания шрифта (STYLE <выр.С4>).

В Visual FoxPro предусмотрены следующие стили написания шрифта:

В — жирный

I — курсив

N — нормальный

О — контурный

Q — непрозрачный

S — с тенью

- — перечеркнутый

Т — прозрачный

U — подчеркнутый


Универсальная команда ввода-вывода

Эта команда предназначена для форматного ввода-вывода на эк­ран и принтер. Формат команды:
@ ,

[SAY <выр.1>

[PICTURE <выр.С1>]

[FUNCTION <выр.С2>]

<имя файла> [BITMAP] | < имя общего поля>

[ SIZE <выр.М1>, ]

[ CENTER ]

[ ISOMETRIC | STRETCH ]

[ FONT <выр.СЗ> [, <выр.N3>]] [STYLE <выр.С4> ]

[ VERB <выр.N4> ]

[ COLOR SCHEME <выр.N5> | COLOR <список пар цветов>]

[GET <переменная>

[ PICTURE <выр.С5>]

[ FUNCTION <выр.С6>]

[ DEFAULT <выр.2>]

[ ENABLE | DISABLE]

[ MESSAGE <выр.С7>]

[ [OPEN] WINDOW <имя окна>]

[ RANGE [<выр.3>] [<выр.4>] ]

[ SIZE <выр.N6>, <вырN7>],

[ VALID <выр.L1> | <выр.N8> [ ERROR <выр.С8>]]

[ WHEN <вырL2>]

[ FONT <выр.С9> [, <выр.N9> ] ] [ STYLE <выр.С10> ]

[ COLOR SCHEME <выр.N10> | COLOR <список пар цветов>]

Команда размещает курсор на экране или в окне в позиции Y1 (номер строки от 0 до 35) X1 (номер столбца от 0 до 79 ) и, на­чиная с этой позиции, на экран выводится сообщение, указанное в опции SAY <выр.1>. Если в команде дополнительно использу­ется опция GET <переменная>, то <переменная> выводится на экран сразу после SAY <выр.1>. Если перед командой @ ... SAY ... GET ... указана команда SET DEVICE TO PRINT, то вывод производится на принтер и тогда количество строк и столбцов определяется размером бумаги. Для переназначения вывода на экран следует использовать команду SET DEVICE TO SCREEN (команда используется по умолчанию). Значение <переменная> должно быть определено до использования команды @ ... SAY ... GET ...В общем случае, назначение опции SAY - указать поль­зователю, где выполнить ввод (вывод) по пункту GET.

<выр.1> и <переменная> форматируются по отдельности с использованием опций, указанных после них.

Для форматирования <выр.1> используются следующие оп­ции:

PICTURE — задает шаблон для форматирования. При составле­нии шаблона можно применять символы:

А — используются только символы алфавита (русского или латинского);

L — используются только логические данные;

N — используются только буквы и цифры;

X — используются любые символы;

Y — используются логические данные, приведенные к ви­ду Y — True и N — False;

9 — используются только числовые данные;

# — используются цифры, пробелы и математические знаки;

! — преобразует строчные (малые) буквы в прописные (большие);

$ — используется для обозначения денежных единиц;

* — используется для обозначения * перед числом;

. — используется для отделения целой части числа от дробной части;

, — используется для разделения тысяч в числовых дан­ных.

Каждый шаблон начинается с символа @, а затем следуют указанные выше символы.

FUNCTION — задает коды управления выводом, при этом на­чальный символ @ не указывается. Для составления кодов уп­равления используют символы:

А — разрешены только символы алфавита;

В — сохраняет выравнивание числовых данных;

С — отображает знак кредита CR после положительного числа;

D — текущий формат даты;

I — используется для расположения текста по центру внутри поля;

J — форматирует текст внутри поля по правой границе;

К — разрешает редактирование целочисленного поля;

L — отображает ведущие (незначащие) нули перед целой частью числа;

М<список>D — задает список предварительного выбора для пользователей (элементы списка разде­лены запятыми);

R — отображает (без сохранения) символы формата;

S — задает ширину поля вывода в символах;

Т — удаляет ведущие и конечные пробелы;

V<выр.N> — заполняет все отведенное пространство (<выр.N>) текстом, за счет добавления пробелов;

X — отображает знак дебета DB после положительного числа;

Z — в пустых числовых полях отображает пробелы вместо 0;

( — заключает в скобки отрицательные числа;

! — преобразует строчные (малые) буквы в прописные (большие);

$ — отображает символ денежной единицы;

пробел — задает вывод чисел в экспоненциальной форме.
1   2   3   4   5


<имя файла> [ BITMAP] | <имя общего поля> — используется для вставки рисунка (.bmp) или OLE-объекта, сохраненном в об­щем поле в указанном месте экрана. Следующие четыре опции управляют размещением рисунка на экране.

SIZE <выр.Nl>, <выр.N2> — определяет ширину (<выр.N1>)и высоту (<выр.N2>) импортируемого рисунка.

CENTER — располагает рисунок в центре выделенной области.

ISOMETRIC — пропорционально изменяет размеры импорти­руемого рисунка, с целью заполнения всего выделенного про­странства.

STRETCH — заполняет рисунком все выделенное пространство без сохранения пропорций.

VERB <выр.N4> — непосредственно вставляет рисунок с ука­занными параметрами.

FONT <выр.СЗ> [, <выр.N3> ] ] [ STYLE <выр.С4> — задает тип (<выр.СЗ>), размер (<выр.N3> ) и стиль (<выр.С4> ) шрифта, которым будет выведено значение <выр.1>.

COLOR SCHEME <выр.N5> | COLOR <список пар цветов> - задает цвет, которым будет выведено значение <выр.1>, либо с помощью указания номера цвета (<выр.N5>) в палитре цветов (номер цвета выбирается из диапазона от 1 до 24), либо с по­мощью буквенного обозначения цвета шрифта и цвета фона (<список пар цветов>).

GET <переменная> — указывается имя переменной, значение которой будет выведено после значения <выр.1>. Значение <переменная> должно быть определено до использования команды @ SAY GET любым способом, кроме опции DEFAULT.

PICTURE <выр.С5> — задает шаблон для значения <переменная> аналогично значению <выр.1>.

FUNCTION <выр.С6> — задает коды управления выводом зна­чения <переменная> аналогично значению <выр.1>.
В опциях PICTURE и FUNCTION допускается использование комбинации символов «*» и пробел для создания командных кнопок.

DEFAULT <выр.2> — устанавливает значение переменной по умолчанию. При первом вызове команды @ SAY GET опция не работает.

ENABLE — разрешает редактирование <переменной>. Эта оп­ция задана по умолчанию.

DISABLE — запрещает редактирование переменной и указыва­ет на это цветом.

MESSAGE <выр.С7> — выводит сообщение (<выр.С7>) в ста­тус-строку или последнюю строку экрана при установке курсора на поле GET (<переменная>).

[ OPEN ] WINDOW <имя окна> — разрешает редактирование Memo-поля в окне, которое было заранее определено. Если ука­зана опция OPEN, то окно открывается автоматически. Если опция OPEN не указана, то для открытия окна надо подать команду Ctrl + Home. В том и другом случае для входа в окно надо либо дважды щелкнуть левой кнопкой мыши внутри окна, либо подать команду Ctrl + Home. Для выхода из окна надо либо подать команду Ctrl + End (для сохранения внесенных изме­нений), либо нажать клавишу Esc (изменения не сохраняются).



RANGE [<выр.3>] [<выр.4>] — устанавливает диапазон допу­стимых значений (нижняя граница — <выр.3>, верхняя грани­ца — <выр.4>) для <переменной>. Допускается указание любой одной границы диапазона. При указании только верхней грани­цы диапазона необходимо перед значением верхней границы ди­апазона поставить запятую. Диапазон допустимых значений ус­танавливается для символов, чисел и дат. При нарушении границ диапазона на экран выводится соответствующее сообщение с указанием границ диапазона.

SIZE <выр.N6>, <выр.N7> — задает ширину (<выр.N6>) и вы­соту (<выр.N7>) поля GET для ввода значений <переменной>.

VALID <выр.Ll> | <выр.N8> [ ERROR <выр.С8> ] — предназ­начена для обеспечения достоверности вводимых данных. Если логическое выражение <выр.Ll> истинно, то вводимые данные достоверны. В противном случае на экран выводится сообщение об ошибке <выр.С8>. При составлении логических выражений допускается использование функций, в том числе и функций пользователя, специально написанных для этих целей. Если оп­ция используется с числовым выражением <выр.N8>, то:

• число 0 (ноль) соответствует выявленной ошибке,

• положительное число указывает, на сколько полей GET вперед надо переместить курсор для следующего ввода,

• отрицательное число указывает, на сколько полей GET назад надо переместить курсор для следующего ввода.

Часто в опцию VALID включают команды, которые выпол­няются при чтении поля.

WHEN <выр.L2> — используется для управления редактирова­нием <переменной>. Если логическое условие (<выр.L2>) ис­тинно, то редактирование <переменной> разрешено. Если ло­гическое условие (<выр.L2>) ложно, то курсор передвигается к следующему полю GET. При написании логического условия допускается использование функций, в том числе и функций пользователя, а также команд, которые выполняются при ото­бражении поля GET.

FONT <выр.С9> [, <выр.N9> ] ] [ STYLE <выр.С10> — назна­чение опции см. выше.

COLOR SCHEME <выр.N10> COLOR <список пар цветов> — назначение опции см. выше.
Команды для работы с переменными

В FoxPro допустимы следующие действия над переменными: хранение в файле, загрузка их в оперативную память, просмотр и удаление.
Сохранение переменных

С помощью команды SAVE TO можно сохранить либо все пе­ременные, находящиеся в оперативной памяти, либо их произ­вольную часть, как в файле, так и в Memo-поле с заданным име­нем. Формат команды:


SAVE ТО <имя файла> | ТО MEMO <имя поля> [ALL LIKE | EXCEPT <шаблон>]

В команде предусмотрено использование одного из двух шаб­лонов.

ALL LIKE — сохраняются все переменные, имена которых со­ответствуют шаблону.

ALL EXCEPT — сохраняются все переменные, кроме перемен­ных, перечисленных в шаблоне.

В любом из шаблонов допустимо использование символов "*" и "?".

По умолчанию к указанному в команде имени файла, добав­ляется расширение .mem

По умолчанию команда создает файл с указанным именем. Если файл с таким именем уже существует, то он заменяется на новый без предупреждения. Если вы хотите увидеть предупреж­дение на экране, что указанный файл уже существует, надо пе­ред командой SAVE ТО установить команду SET SAFETY OFF.
Загрузка переменных в оперативную память

Если при работе с приложением возникает необходимость раз­местить в оперативной памяти переменные, значения которых были определены ранее, то надо воспользоваться командой:

RESTORE FROM <имя файла> | FROM MEMO <имя поля> [ADDITIVE]

В результате работы команды оперативная память очищается от имеющихся переменных, и в нее помещаются переменные из указанного файла с расширением .mem или из Memo-поля. Для того чтобы сохранить в оперативной памяти переменные, значе­ния которых определены до использования команды SAVE TO, и добавить в оперативную память переменные с отличными (дру­гими) именами из файла (или Memo-поля), надо указать опцию ADDITIVE.
Просмотр переменных

Переменные, которые хранятся в оперативной памяти, можно просмотреть с помощью команды:

DISPLAY MEMORY [LIKE <шаблон>] [ТО PRINTER | FILE <имя файла>]

На экране каждая переменная занимает одну строку, куда вы­водится имя, тип, значение и статус переменной. После заполне­ния экрана надо нажать либо клавишу ENTER, либо клавишу «пробел» для продолжения вывода переменных на экран. При желании можно направить вывод переменных либо на принтер (ТО PRINTER), либо в файл (ТО FILE).
Удаление переменных

Все переменные или часть переменных, хранящихся в оператив­ной памяти, можно удалить с помощью команды:

RELEASE <список имен переменных> RELEASE ALL [LIKE | EXCEPT <шаблон>]

Для удаления всех переменных также можно использовать

команду:

CLEAR MEMORY
КОМАНДЫ УПРАВЛЕНИЯ

Команды управления являются важнейшим средством построения „грамм. Эти команды не могут быть опробованы и использованы в интерактивном режиме, а только в программах.


Команда IF. В зависимости от условия команда выполняет те или иные <команды>, находящиеся внутри конструкции IF...ENDIF.

IF <условие>

<команды>

[ELSE

<команды>]

ENDIF

Если условие истинно, выполняются все <команды>, следующие от IF до ELSE, если ложно, то <команды> от ELSE до ENDIF. Ес­ли необязательная фраза ELSE отсутствует и условие ложно, все внутренние <команды> пропускаются и выполняется команда, сле­дующая за ENDIF. Допустимо вложение друг в друга конструкций типа IF... ENDIF и других структурных команд.

Команда DO CASE. Конструкция DO CASE ... ENDCASE решает задачи, аналогичные команде IF, но в ней может быть указано сразу несколько условий, которые последовательно проверяются во всех фразах CASE.

DO CASE

CASE <условие 1>

<команды>

CASE <условие 2>

<команды>



[OTHERWISE

<команды>]

ENDCASE

Если встретилось истинное <условие>, выполняются нижеследующие <команды> до следующей фразы CASE, или OTHERWISE, или ENDCASE, и конструкция завершается. Если ни одно из CASE-условий не истинно, выполняются <команды>, стоящие за фразой OTHERWISE до ENDCASE, если фраза OTHERWISE отсутствует, выполняется ни одна команда.

Команда очень удобна для обработки выбора из меню в программах. Разрешается вложение команд DO CASE, IF. В случае, если найдено истинное CASE-условие, остальные условия не проверяются и выполняется команда, стоящая за ENDCASE.
КОМАНДЫ ЦИКЛОВ

Так же как и в языках программирования, при разработке прило­жений баз данных предусмотрены команды циклов. Назначение команд, а иногда и формат команд, аналогичное.

Цикл по условию

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

DO WHILE <выр. L>



[LOOP]

[EXIT]

ENDDO

Цикл выполняется многократно, до тех пор, пока истинно ло­гическое условие <выр. L>. Для принудительного выхода их цикла, до нарушения логического условия <выр. L>, используют команду EXIT. Команда LOOP используется для прекращения вычислений, предусмотренных текущей итерацией, и принуди­тельного перехода к следующей итерации внутри цикла.

Фиксированный цикл

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

FOR <пер.> = <выр. Nl> TO <выр. N2> [ STEP <выр. N3> ]



[EXIT]

[LOOP]

ENDFOR | NEXT

Цикл выполняет фиксированное количество итераций (шагов).

<пер.> называется переменной цикла. В переменной цикла фик­сируется количество выполненных итераций, то есть после вы­полнения очередной итерации значение переменной цикла уве­личивается на значение шага цикла <выр. N3X