Команды установки параметров

КОНСУЛЬТАЦИИ К ГОСЭКЗАМЕНАМ

(сокращённый вариант)

Команды установки параметров

В FoxPro имеются большая группа SET-команд, служащих для установки параметров VPF, например:

SET <параметр команды> ТО <значение параметра>

SET <параметр команды> OFF/ON

Например:

SET DEFAULT TO C:\DataBase (устанавливается каталог, куда будут, по умолчанию, устанавливаться созданные в FoxPro базы данных.);

SET DATE GERMAN (устанавливает формат даты – дд.мм.гг – принятый в Германии; используется, как соответствующий формату даты принятому в РФ)

 

Выполнение этих команд, как правило, не влечёт за собой ка­ких-то немедленных действий, а определяют условия работы дру­гих команд, т.е. устанавливают операционную среду FoxPro. Па­раметр может быть задан некоторым <значением> или вклю­чен/выключен (ON/OFF).

Чтобы получить информацию об установках FoxPro используются команда ? SYS (N) Здесь N – номер интересующей нас функции, например:

? SYS(5) возвращает имя диска;

? SYS(2003) возвращает имя каталога.

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

 

5. Команда языка Visual FoxPro записывается в виде собственно команды и набора опций (дополнительных возможностей). Полный состав команды можно увидеть открыв справку по программе VFP.

<Имя команды>

[<границы>]

[FIELDS <список полей>]

[<список выражений>]

[FOR <вржL>][WHILE <вржL>]

Полный список опций команды, велик. Здесь приводится сокращённый их перечень.

Имя команды и другие служебные слова записываются прописными (заглавными) буквами, например USE. Обязательной является собственно команда, а опции определяют специфику её выполнения. Квадратные скобки означают необязательность применения их содержимого. Взаимозаменяемые опции разделяются вертикальной чертой |.

 

Здесь и далее строчная (малая) буква, перед заглавной, означает тип параметра, например: nWorkArea – параметр числового (numeric) типа; nPrice – заголовок поля таблицы, содержащего данные типа numeric. Допускается, вместо полного названия команды, записывать первые пять букв.

 

Опция <границы> определяет диапазон действия команды на записи таблицы и принимает одно из следующих значений:

ALL, если обрабатываются все записи таблицы;

REST, если обрабатываются текущая (под курсором) запись и все следующие, до конца таблицы;

NEXT N, если обрабатываются следующие N записей, начиная с текущей; RECORD N, если обрабатывается запись с номером N;

RECORD N, если команда относится к записи с номером N.

Если отсутствуют <границы> или <условия>, сфе­рой действия команды обычно является вся база данных (ALL), реже только текущая запись {NEXT 1).

 

Опция FIELDS <список полей> определяет имена полей таблицы, к которым относится команда.

 

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

 

Опция WHILE <вржL> обеспечивает выполнение команды, пока указанное условие выполняется. Опция WHILE <вржL> имеет приоритет перед FOR <вржL>, но требует предвари­тельного упорядочивания данных. WHILE-условие означаетвыполнение команды только до тех пор, пока условие истинно. При встрече первой же записи, в которой оно (WHILE-условие) не удовлетворяется, выполнение команды прекращается, несмотря на то, что нижняя граница еще не достигнута и далее, возможно, име­ются записи с нужными свойствами.

 

Пример (для таблицы, содержащей фамилии, имена и отчества студентов):

BROWSE NEXT 5 FIELDS fam, im, ot FOR fam='П'

 

Здесь команда BROWSE приводит к отображению на экране содержимого таблицы. Условие FOR требует, чтобы были отображены только фамилии, которые находятся в поле fam, и начинаются с буквы П. Опция FIELDS задаёт перечень полей, которые нужно отображать. Опция NEXT 5 указывает, что будут отображены 5 записей, (начиная от текущей, помеченной курсором), отвечающих условию.

 

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

 

Модификация таблицы

Под изменением структуры понимается изменение числа полей таблицы, их ширины, типов данных. Изменения структурыможно произвести визуальными средствами VFP или с помощью команд.

Добавление полей является самой безопасной операцией. Для ее реализа­ции необходимо с помощью клавиш-стрелок установить курсор на строку, перед которой необходимо вставить новое поле (в любом ее столбце) и на­жать кнопку Insert (вставить). При этом появляется новый столбец с именем New Field.

Для удаления лишнего поля достаточно выделить его в окне Конструкто­ра таблиц и нажать клавишу Delete (удалить). Если открытый на данный момент индексный файл не содержит ссылок на удаляемое поле, то поле бу­дет удалено. Если такие ссылки имеются, то появится предупреждающее со­общение.

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

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

 

Проблемы могут возникнуть при попытке уменьшить размеры полей. При этом может произойти усечение строк в символьных полях до нужных разме­ров. Сокращение целой части числового поля может привести к потере той части чисел, у которых она не помещается в отведенные размеры (в поле за­писывается символ звездочка). Сокращение количества знаков в дробной части понижает точность представления числа. Возможны проблемы и при изменении типов полей.