Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_№4-5.doc
Скачиваний:
9
Добавлен:
25.03.2016
Размер:
288.26 Кб
Скачать
    1. Заполнение базы данных

Открытие файла БД. Файл после создания структуры остается открытым, т.е. доступным для команд ввода, просмотра и изменений.

Однако, если СУБД только загружена в память, должно быть выполнено открытие нужного файла БД командой открытия USE [<DBF-файл>] (см. Помощь).

    1. Дополнение бд

Дополнение файла новыми записями осуществляется командой APPEND [BLANK] (см. Помощь), которая предъявляет окно ввода данных со всеми пустыми полями создаваемой записи с выделенными другим цветом областями ввода. При этом все поля имеют значения пробелов. Заполните новую запись по своему усмотрению. По умолчанию в системе используется американский стандарт даты (ММ/ДД/ГГ) (см. Помощь).

В окне редактирования возможны возврат к предыдущим записям для их изменения и вообще листание записей (клавиши PageUp/PageDown). По умолчанию ввод/редактирование данных в команде APPEND и во всех других командах редактирования имеет две особенности. При вводе символа в последнюю позицию очередного поля раздается звуковой сигнал и курсор автоматически переходит на первую позицию следующего поля данных.

  1. Окно редактирования

При выдаче команд APPEND, INSERT, EDIT, CHANGE, BROWSE и наличии открытой базы данных FoxPro развертывает для пользователя окно редактирования. Вся информация в окне доступна для изменения. Кроме того, возможны дополнение базы и удаление записей. Стандартное окно редактирования имеет две формы. Для первых четырех команд оно будет выглядеть одинаково – все поля БД располагаются вертикально. Назовем форму такого окна CHANGE-окном. другую форму предъявления данных осуществляет команда BROWSE (BROWSE-окно). Здесь все поля каждой записи располагаются горизонтально – колонками. Если какие-то поля записи не умещаются в строке, с помощью клавиш управления курсором и мышью возможно перемещение (скроллинг) изображения вправо или влево. Выбор формы представления данных определяется структурой БД и удобством пользователя. Дополнение базы новой записью осуществляется нажатием клавиш Ctrl-N. Перемещение внутри БД осуществляется с помощью клавиш перемещения курсора или мыши. Над полями БД можно осуществлять действия, предусмотренные для встроенного редактора FoxPro: выделение фрагментов данных, их копирование и удаление.

  1. Команда BROWSE

Открывает окно просмотра. В простейшем варианте структура этой команды такова:

Browse [ fields <поле1> [, <поле2>]…] [<границы>]

  1. Перемещения в базе данных

При работе с БД необходимы средства перемещения внутри нее. Запись, на которой находится указатель записей, является текущей, и только к ней в данный момент возможен непосредственный доступ. Имеется несколько разновидностей команд, изменяющих положение указателя записей:

GO TOP – переход к самой первой записи файла;

GO BOTTOM – переход к самой последней записи;

GO <вырN> – переход к записи с указанным в <вырN> номером;

SKIP <вырN>- переход к записи, отстоящей от текущей на указанное в <вырN> число записей.

В последней команде <вырN> может быть и отрицательным, что означает движение указателя назад. SKIP без параметра идентичен SKIP 1 (переход на следующую запись).

Для контроля положения указателя и наличия записей в файле предусмотрены функции:

RECNO([<область>]) – указывает номер текущей записи;

RECCOUNT([<область>]) – выдает общее число записей в файле БД, включая записи, помеченные к удалению;

EOF([<область>]) – функция конца файла. Она истинна, если конец достигнут, и ложна в противном случае BOF([<область>]) – то же, но для начала файла.

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

Функции в FoxPro имеют характерный синтаксис – скобки, даже если никакого аргумента нет и они остаются пустыми.

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

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

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

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

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

  1. ИЗМЕНЕНИЕ ДАННЫХ

В 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 <выражение> соответствует присвоению <поле>=<выражение>.

  1. ЛОКАЛИЗАЦИЯ И ПОИСК ДАННЫХ В БАЗЕ

Исключительно важную группу команд в FoxPro образуют средства выделения и поиска данных в БД.