Команды установки параметров
КОНСУЛЬТАЦИИ К ГОСЭКЗАМЕНАМ
(сокращённый вариант)
Команды установки параметров
В 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-файл будет переписан и приобретет большие размеры.
Проблемы могут возникнуть при попытке уменьшить размеры полей. При этом может произойти усечение строк в символьных полях до нужных размеров. Сокращение целой части числового поля может привести к потере той части чисел, у которых она не помещается в отведенные размеры (в поле записывается символ звездочка). Сокращение количества знаков в дробной части понижает точность представления числа. Возможны проблемы и при изменении типов полей.