- •А.Т. Бикмеев, ф.М. Галиаскаров
- •Введение
- •Контрольное задание n 1
- •Создание файла базы данных
- •Световое меню FoxPro
- •Горизонтальное bar-меню
- •Пример n 1
- •Пример n 2
- •Контрольное задание n 2 (отбор данных, их обработка и запись в базу данных)
- •Пример n 3
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Формулы для расчёта Вариант 1.2
- •Варианты 2.2, 3.2, 4.2
- •Вариант 5.2
- •Варианты 6.2, 7.2
- •Вариант 8.2
- •Вариант 9.2
- •Вариант 14.2
- •Вариант 15.2
- •Вариант 16.2
- •Вариант 17.2
- •Вариант 18.2
- •Вариант 19.2
- •Вариант 20.2
- •Литература
Контрольное задание 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, которые автоматически открываются вместе с таблицей.
