Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа ответы 2семестр (Восстановлен).docx
Скачиваний:
10
Добавлен:
20.04.2019
Размер:
1.82 Mб
Скачать

Просмотр данных

Просмотр данных в FoxPro осуществляется очень близкими по смыслу и синтаксису командами LIST и DISPLAY (см. Помощь). Команда LIST не делает периодических остановок при выдаче данных, и по умолчанию область ее действия не текущая запись, а весь файл. Ввиду этого команда более пригодна для выдачи данных на принтер/файл. Приведенные команды удобны скорее для просмотра данных при отладке программ. Для включения их в программы они слишком грубы, и здесь лучше использовать более гибкие команды ? и @ ...SAY.

Удаление данных

DELETE (см.Помощь) – пометка к удалению записей в указанных границах и/или отвечающих указанным условиям. Без параметров помечает только одну текущую запись.

RECALL (см.Помощь) – снятие пометок к удалению. Без параметров действует только на одну текущую запись. Физическое удаление записей осуществляется командой PACK.

Изменение данных

В FoxPro имеется возможность не только вручную редактировать данные, но и изменять их путем присваивания или вычисления.

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

Синтаксис

REPLACE FieldName1 WITH eExpression1

[, FieldName2 WITH eExpression2] ...

[Scope] [FOR lExpression1] [WHILE lExpression2]

Параметры

FieldName1 WITH eExpression1 [, FieldName2 WITH eExpression2 ... ]

Указывает, что данные в поле FieldName1 должны быть заменены значением выражения eExpression1, данные в поле FieldName2 _ значением выражения eExpression2 и т.д.

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

  1. Вначале REPLACE отбрасывает несколько десятичных знаков и округляет оставшуюся десятичную часть поля.

  2. Если значение по-прежнему не помещается, REPLACE сохраняет содержимое поля, используя экспоненциальное представление.

  3. Если значение все равно не помещается, REPLACE замещает содержимое поля звездочками.

Scope

Задает диапазон заменяемых записей. Будут заменены только записи, попадающие в указанный диапазон. Он задается следующими предложениями: ALL, NEXT nRecords, RECORD nRecordNumber и REST. По умолчанию областью действия команды REPLACE является одна текущая запись (NEXT 1).

FOR lExpression1

Указывает, что заданные поля могут быть замещены только в тех записях, для которых выражение lExpression1 имеет значение "истина" (.T.). Предложение FOR позволяет производить условную замену записей, отфильтровывая те из них, которые не нужно менять.

WHILE lExpression2

Задает условие, в соответствии с которым поля будут заменяться, пока значением логического выражения lExpression2 остается "истина" (.T.).

Буквально фраза <поле> WITH <выражение> соответствует присвоению <поле>=<выражение>.