Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум по FoxPro.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
720 Кб
Скачать
☆

Контрольное задание n 1

(создание базы данных, светового меню, процедур поиска)

Цель работы: Практическое освоение создания и индексации базы данных. Освоение методологии создания световых меню (dBASE-меню). Создание командных файлов (программ) на примере создания световых меню и процедур поиска и вывода информации из базы данных.

Создание файла базы данных

Окно СУБД FoxPro сразу после запуска имеет вид представленный на Error: Reference source not found. Маленькое окно в правом нижнем углу называется командным окном. Именно в нем отдаются все команды на исполнение. Первое что вы должны сделать для выполнения контрольного задания это создать базу данных с которой и будете работать. Структура файла базы данных типа DBF создается командой: CREATE <имя файла>. В ответ FoxPro представляет экран-форму для ввода имен полей таблицы и задания их свойств. Например: Наша БД будет состоять из одной таблицы. Создадим файл базы данных, который содержит сведения о кадровом составе организации содержащей следующие поля:

NAME (имя)

TYPE (тип)

WIDTH (ширина)

DEC (дес.зн.)

fam

Character

25

dtr

DATA

8

tab

Numeric

3

0

det

Numeric

1

0

pol

Character

1

sem

Character

1

szar

FLOAT

9

2

podr

Character

15

dol

MEMO

4

Назовем файл базы данных KADR.DBF. Для этого в командном окне набираем строчку: CREATE Kadr. После этого на экране появляется окно разработки (дизайна) таблиц (см.Error: Reference source not found). В соответствии с приведенной выше таблицей заполняем это окно. Следует помнить, что имена полей должны начинаться с буквы и могут состоять из букв латинского алфавита, цифр и символа подчеркивания. Заглавные и строчные буквы абсолютно равноправны, т.е. имена полей (или команды) Kadr, KADR, kADr, KaDr и т.д. воспринимаются FoxPro как одно и то же. После задания имен и свойств полей нажимаем кнопку <OK>. Появляется окно с запросом:

<Input Data Record Now?> (Вводить данные сейчас?) нажимаем клавишу <Y> или кнопку <Yes>.

В ответ FoxPro представляет экран-форму для ввода записей базы данных – это имена полей и пустая строка рядом с именем для ввода данных. Этот режим называется режимом добавления данных. После ввода текущей записи автоматически открывается доступ к следующей и т. д. После окончания ввода записей файл базы данных должен быть запомнен на диске – это осуществляется одновременным нажатием клавиш Ctrl+W.

Файл базы данных можно создать и другим методом для этого сначала вы должны выбрать новую рабочую область (A-J), затем выбрать элемент <New>... из меню <File>. На экране появляется диалог создания нового файла. Выбрать в списке радиоклавиш тип файла Database, если он еще не выбран, и нажать текстовую клавишу <ОК>. На экране появится окно дизайна таблицы.

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

Когда вы будете удовлетворены описанием структуры, выберите текстовую клавишу <ОК>. На экране появляется диалог задания имени базы данных (Save As dialog), в котором вы можете присвоить новой базе имя. Выберите текстовую клавишу <Save>. После этого также как и в предыдущем случае появляется запрос на ввод записей.

Добавления записей в уже созданную базу данных

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

USE <имя таблицы>.

Обычно после этого необходимо просмотреть открытую базу данных, для этого таблицу открывают в BROWSE-окне (окно просмотра), подав команду:

BROWSE LAST

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

Для добавления записи в BROWSE-окне используется комбинация клавиш <Ctrl+Y>. Записи можно также добавлять и в режиме добавления данных. Для этого необходимо открыть базу данных в этом режиме, что производится следующим образом: в пункте меню <Record> выбирается элемент <Append>. Или просто в командном окне подается команда APPEND.

В обоих режимах просмотра/изменения таблицы строка заголовка окна содержит имя той базы данных, в которую вы добавляете записи. Если

записи не умещаются на экране, то для доступа к не отображенным на экране записям можно использовать полосы прокрутки, а также пункт меню <Record> с элементами <Go Top> (перейти к первой записи), <Go Bottom> (перейти к последней записи), <Go Record #> (перейти к записи с номером …), <Skip …> (пропустить … записей).

Индексирование файла базы данных

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

  • обычный индексный файл с расширением IDX, содержащий один индексный ключ;

  • мультииндексный файл с расширением CDX, содержащий несколько индексных выражений, каждый индекс в нем называется TAG (этикетка).

Мультииндексные файлы имеют два вида:

. 1. Окно изменения свойств таблицы в активной рабочей области

  • структурный с именем совпадающим с именем базы данных;

  • обычный с произвольным именем.

Структурный файл всегда автоматически открывается вместе со своей базой.

Индексирование выполняется следующей командой:

INDEX ON <логич.выр.> TO <IDX-файл>/TAG<имя тэга>

Индексирование можно произвести и другим методом. Для этого необходимо открыть таблицу либо в BROWSE-окне либо в режиме добавления записей, затем в пункте меню <Table> выбрать элемент <Properties>. Перед вами появляется окно с заголовком <Work Area Properties> (см.Error: Reference source not found). Нажимаем в этом окне кнопку <Modify…> и перед нами открывается окно редактирования структуры таблицы, в котором мы ее создавали (см.Error: Reference source not found). Чуть ниже заголовка окна приведены две закладки: <Fields> (поля) и <Indexes> (Индексы). Для создания индекса необходимо перейти по закладке <Indexes> на страницу определения индексов. Перед нами открывается пустое окно определения индекса (см.Error: Reference source not found). На приведенном рисунке в окне уже есть два созданных индекса (по полям fam и dtr), позволяющие отсортировать все записи БД либо в алфавитном порядке по фамилии, либо в хронологическом порядке. При этом заголовки столбцов обозначают следующее:

  • <Order> – задает упорядочивание по возрастанию либо по убыванию;

  • <Name> – задает имя индекса (каждый индекс, как и поле, должен иметь уникальное имя);

  • <Type> – Задает тип индекса – Primary (первичный; только для таблиц, принадлежащих базе данных), Candidate (кандидат), Unique (уникальный), Regular (обычный, принимается по умолчанию). Если щелкнуть в этом столбце на кнопке с изображением маленького черного треугольника, то появится список, из которого можно выбрать нужный тип. В этом поле не обязательно вводить данные.

  • В столбце <Type> только один индекс таблицы может быть установлен в качестве первичного (Primary).

  • <Expression> – Задает выражение индекса, то есть какое-либо логическое или арифметическое выражение с использованием знаков отношения (>, <, >=, <=, #), логических операций (AND, OR) и имен полей БД. В качестве выражения может выступать, например, просто имя поля. Нажмите кнопку с изображением многоточия, чтобы создать или отредактировать выражение в диалоговом окне Expression Builder. Выражение может включать до 240 символов.

  • <Filter> – Задает выражение фильтра. То есть в этом пункте определяется какие записи выводить, а какие «спрятать». То есть отфильтровать имеющиеся записи БД по какому-либо условию. Нажмите кнопку с изображением многоточия, чтобы создать или отредактировать выражение в диалоговом окне Expression Builder.

На приведенном рисунке первый индекс позволяет вывести записи, упорядоченные по в алфавитном порядке по фамилиям, второй индекс позволяет вывести все записи с датой рождения позднее 1 января 1958 года. Но мы описали только создание индекса, а как же его использовать?

Открытие индексных файлов

Когда вы открываете базу данных, открывается только файл базы. Если вы хотите открыть индексные файлы, то необходимо перейти в диалог описания структуры базы данных (см.Error: Reference source not found) и в строке <Index Order:> выбрать какой-либо индекс из списка. Индексные файлы можно открыть и одновременно с открытием БД, для этого у команды USE есть специальный не обязательный параметр INDEX ON.

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

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

REINDEX обновляет все файлы индексов, открытые в выбранной рабочей области. Visual FoxPro распознает все типы файлов индексов (файлы составных индексов (.CDX), файлы структурных индексов .CDX, файлы простых индексов (.IDX)) и соответствующим образом проводит повторное индексирование. Обновляются все теги в файлах .CDX, а также файлы структурных индексов .CDX, которые автоматически открываются вместе с таблицей.