Учебное пособие 487
.pdfМИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Воронежский государственный технический университет
Гурова И.Н., Лапшина М.Л.
НАЧАЛЬНЫЙ КУРС ПО FOXPRO
Учебное пособие
Воронеж 1998
Оглавление
Введение ............................................................................................................
Базы и банки данных.......................................................................................
Глава 1
Основные файлы, расширения, создание и редактирование БД .................
Основные файлы FoxPro ............................................................................
Типы файлов, используемых в FoxPro .....................................................
Загрузка FoxPro и выход из него...............................................................
Создание, заполнение, просмотр и редактирование базы данных........
Глава 2
Константы, переменные, операции, функции, выражения ..........................
Основные типы констант и переменных в FoxPro..................................
Массивы .......................................................................................................
Поля баз данных..........................................................................................
Операции......................................................................................................
Выражения...................................................................................................
Функции .......................................................................................................
Простейший ввод-вывод ............................................................................
Команды.......................................................................................................
Глава 3
Индексирование ................................................................................................
Что такое индекс .........................................................................................
Типы индекса ..............................................................................................
Создание индекса........................................................................................
Упорядочение по индексу..........................................................................
Примеры упорядочения .............................................................................
Открытие индекса .......................................................................................
Другие операции с индексами и справочник функций ..........................
Глава 4
Поиск в базах данных и связи между ними ...................................................
Последовательный (безиндексный) поиск...............................................
Индексный поиск ........................................................................................
Что такое связь между базами данных .....................................................
Команда установления связей ...................................................................
Связь вида одно-со-многими.....................................................................
Глава 5
Системный интерфейс......................................................................................
Диалоговый блок ........................................................................................
Системное меню .........................................................................................
1.Секция меню SYSTEM...........................................................................
2.Секция меню FILE ..................................................................................
3.Секция меню EDIT .................................................................................
4.Секция меню DATABASE .....................................................................
5.Секция меню RECORD ..........................................................................
6.Секция меню PROGRAM.......................................................................
7.Секция меню WINDOW .........................................................................
8.Секция меню RUN ..................................................................................
Глава 6
Команда экранного ввода-вывода SAY/GET.................................................
Создание элементов интерфейса...............................................................
Глава 7
Основные конструкции языка FoxPro ............................................................
Команды управления ..................................................................................
Организация циклов ...................................................................................
Глава 8
Организация меню в FoxPro ............................................................................
Световое меню ............................................................................................
FOX меню ....................................................................................................
LIGHTBAR меню ........................................................................................
DBASE меню ...............................................................................................
Вертикальное POPUP меню.......................................................................
Отключение меню.......................................................................................
Клавишное меню.........................................................................................
Использование функциональных клавиш ................................................
Литература .........................................................................................................
ВВЕДЕНИЕ
БАЗЫ И БАНКИ ДАННЫХ
Определим сначала некоторые общие понятия и введем обозначения, которыми будем пользоваться в дальнейшем.
База данных (БД) - это совокупность связанных данных конкретной предметной облас-
ти (ПО). Например, для ведения торговых операций необходима информация о производите-
лях и поставщиках продукции, ценах на товары и др. . Аналогично, кадровая деятельность на любом предприятии требует данных о работниках (их образовании, возрасте, занимаемой должности и т.д.), библиотечная деятельность использует информацию о книгах, и т.д.
Часто бывает так, что одни и те же данные нужно использовать в разном виде. Так ино-
гда требуется список одних и тех же книг по названию, а иногда по авторам, т.е. мы прихо-
дим к понятию управления БД.
Система управления базой данных (СУБД) - это программные средства, позволяющие формировать БД, корректировать их, реализовывать доступ к данным и осуществлять их за-
щиту от несанкционированного доступа.
Несмотря на некоторые минусы хранения данных в ЭВМ (например, различные сбои мо-
гут привести к потере информации ), решающим аргументом в пользу электронного способа хранения информации явилась возникшая с появлением сетей ЭВМ возможность централи-
зованного хранения данных и одновременного доступа к ним многих и многих пользовате-
лей. Система продажи билетов в аэрофлоте и на железной дороге, система кредитных карто-
чек на западе и некоторые другие - яркие примеры нового образования, называемого Банком данных.
Автоматизированный банк данных (БнД) – это совокупность базы данных, системы управления базой данных, системы администрирования БД и прикладных программ обра-
ботки информации.
КЛАССИФИКАЦИЯ СУБД
СУБД классифицируются по типу представления данных – иерархические, сетевые, ре-
ляционные.
Примером иерархической модели является генеалогическое дерево, или дерево катало-
гов NORTON COMMANDER.
В сетевых моделях связи между данными устроены по типу сети (иерархическая модель данных является частным случаем сетевой модели). Сетевая модель удобна при наличии больших ресурсов ЭВМ: либо памяти (чтобы хранить все связи между данными на диске),
либо быстродействия (чтобы при необходимости быстрее генерировать такие связи).
Реляционная модель является простейшей и наиболее привычной формой представле-
ния связей между данными в виде таблиц (отношений). Эту таблицу можно интерпретиро-
вать и как просто таблицу, и как математический объект – отношение (relation – отсюда и
название “реляционная”).
“Смычка” математики, программирования и обыденных представлений приводит к есте-
ственному разнобою в терминологии: одно и то же в разных контекстах называется по-
разному. Поэтому мы постараемся устранить этот недостаток, приведя таблицу соответствия наиболее часто употребляемых понятий:
Обыденная терминология |
Терминология реляционных БД |
Терминология реляционной |
|
|
алгебры |
Таблица |
Файл |
Отношение |
Строка |
Запись |
Кортеж |
Столбец |
Поле |
Атрибут |
Мы будем, как правило, употреблять терминологию БД.
Для экономии места данные стараются размещать так, чтобы не было ни пропусков
(кроме необходимых), ни дублирования. При этом основную проблему представляет осуще-
ствление связей между данными.
Реляционные базы данных никогда не завоевали бы такой прочной позиции, как сейчас,
если бы не замечательное изобретение, которое называется индексом (индексным файлом) и
которое представляет собой табличку, одна колонка которой содержит одно из полей базы данных, в котором записи упорядочены (например, по алфавиту, если это фамилии или по возрастанию если это числа), а вторая – номера соответствующих записей в исходной базе данных. Это позволяет резко ускорить поиск и производить его практически мгновенно даже в больших базах.
ГЛАВА 1
ОСНОВНЫЕ ФАЙЛЫ, РАСШИРЕНИЯ, СОЗДАНИЕ И РЕДАКТИРОВАНИЕ БД
Эта глава знакомит с основными файлами БД FoxPro , загрузкой и выходом из него,
созданием, заполнением и редактированием БД.
ОСНОВНЫЕ ФАЙЛЫ FOXPRO
База данных FoxPro обычно располагается на диске с программным обеспечением в ка-
талоге FOXPRO20 или FOXPRO25 илиFOXPRO26 (в зависимости от версии).
Обычно в этом каталоге и подкаталогах находится до сотни различных файлов (Foxpro
занимает от 4-5 до 15 Мб), однако есть файлы, которые являются наиболее существенными, “главными”. Перечислим их:
1.foxpro.exe, foxpro.ovl, либо foxprox.exe – сам Foxpro соответственно простой ли-
бо расширенной версии. Расширенная версия может работать на компьютерах 386 и
выше с не менее 4 Мб оперативной памяти. Требование естественное, если учесть,
что сам foxpro.exe занимает более 2 Мб. Для компьютеров с меньшими возможно-
стями используется пара foxpro.exe+foxpro.ovl.
2. foxhelp.dbf, foxhelp.fpt – подсказка (помощь) в системе Foxpro. Названия у этих файлов стандартизированное, однако содержание может быть различное: есть Help
для версий 2.0, 2.5, 2.6, имеется и русифицированный Help. Все они могут использо-
ваться на одной машине, однако должны быть в разных каталогах. Подключение к тому или иному варианту Help‟а производиться, например, в файле конфигурации config.fp (см. ниже).
3.foxuser.dbf, foxuser.fpt – файлы пользовательских установок Foxpro. В них хра-
ниться информация о том, какие базы данных в каком режиме просматривались, ка-
ковы были размеры, расположение, цвета соответствующих окон и т.д. В разных ка-
талогах могут храниться разные по содержанию foxuser, подключением их можно управлять, например, в файле конфигурации config.fp.
4. config.fp – установки конфигурации Foxpro. На самом деле их более 20, однако мы укажем самые необходимые:
WORK=<путь к рабочему каталогу>
PATH=<путь к каталогу, в котором находиться Foxpro> (обычно это что-то типа
C:\foxpro25)
DEFAULT=<путь к каталогу, в котором будут искаться все пользовательские файлы
(базы данных, индексы, экраны и т.д.)>
HELP=<путь к файлу foxhelp.dbf (вместе с именем файла)>
SOURCE=<путь к файлу foxuser.dbf (вместе с именем файла)>
DATE=GERMAN (устанавливет формат даты дд.мм.гг)
CENTURY=ON (год выводится не двумя, а четырьмя цифрами, т.е. включает век,
напр. 1996, а не 96)
5.fox.exe – загрузчик Foxpro. Он проверяет наличие ресурсов машины (памяти,
дискового пространства и т.д.) и запускает один из имеющихся вариантов Foxpro (обычный, расширенный, сетевой и т.п.), причем выбирает “максимально “ возмож-
ный. Обычно рекомендуется запускать Foxpro именно через загрузчик.
6.genmenu.prg, genscrn.prg – программы, позволяющие создавать меню и экраны в
Foxpro. Более подробно о меню и экранах мы будем говорить в соответствующих
разделах.
7.foxswp.com – загрузчик внешних программ – позволяет запускать из Foxpro от-
дельные файлы, содержащие программы на Foxpro/
8.genpd.app - генератор драйверов принтеров – позволяет выбирать драйвер (про-
грамму, обеспечивающую правильное взаимодействие компьютера и принтера) и ус-
тановить некоторые параметры печати. Подробнее см. раздел “Системное меню”.
9.foxdoc.exe, foxdoc.msg, foxdoc.hlp, foxdoc.ovr, config.fxd, prowords.fxd – Докумен-
татор Foxpro. По слухам (как пишут в Help‟е и некоторых книжках) это средство оформления программных продуктов на Foxpro соответственно существующим стан-
дартам. Авторы этим средством пока, что не пользовались, так что сказать о нѐм что-
либо конкретное не могут.
10. Demo.app, demo.bat – демонстрационный ролик Foxpro. При этом Вы вряд ли полностью всѐ поймете, однако начнете привыкать к интерфейсу Foxpro, а это уже кое-что.
|
|
ТИПЫ ФАЙЛОВ, ИСПОЛЬЗУЕМЫХ В FOXPRO |
В Foxpro |
используется целый ряд файлов со стандартными расширениями. Ниже мы |
|
перечислим их, |
а далее, по ходу изложения, мы уже будем подробно объяснять их назначе- |
|
ние. |
|
|
.dbf |
- файл базы данных |
|
.fpt |
- файл примечаний |
|
.cdx, .idx - индексные файлы |
||
.txt |
- текстовые файлы |
|
.prg |
- программа на Foxpro |
|
.fxp |
- откомпиллированная программа на Foxpro |
|
.frx, .frt |
- файлы отчета (форматный и примечаний) |
|
.scx, .sct |
- файлы планшета экрана (форматный и примечаний) |
|
.spr |
- программа, создающая экран (создается из .scx+ .sct – файлов с помощью про- |
|
цедуры генерации) |
||
.spx |
- откомпиллированная программа экрана |
|
.mnx, .mnt - файлы планшета меню (форматный и примечаний) |
||
.mpr |
- меню-программа (тоже создается процедурой генерации) |
|
.mpx |
- откомпилированная меню-программа |
|
.pjx, .pjt |
- проект (файл, устанавливающий связи между различными экранами, отчета- |
ми, меню, и пр. и объединяющий их в единое целое)
ЗАГРУЗКА FOXPRO И ВЫХОД ИЗ НЕГО
Загрузка Foxpro может быть произведена следующими способами: 1. Набором в строке DOS полного пути и имени файла fox.exe.
Например,
C:\FOXPRO25\fox.exe (впрочем, расширение .exe писать необязательно).
2. Обычно каталог C:\FOXPRO25 (каталог Foxpro) стоит в числе других в команде PATH в
файле autoexec.bat. Более того, при инсталляции пакета программа-инсталлятор сама допи-
сывает этот каталог в команду PATH, так что, за исключением “нестандартных” случаев этот каталог там есть. В этом случае достаточно просто набрать fox.
3. Обычно команду запуска Foxpro записывают как один из пунктов пользовательского ме-
ню (вызываемого в Norton Commander через F2). В этом случае достаточно нажать F2 и вы-
брать соответствующий пункт меню. Выход из Foxpro осуществляется набором команды quit
в командном окне либо выбором в пункте File системного меню подпункта Quit. После этого экран Foxpro исчезнет, появиться надпись Normal shutdown и Вы вернетесь на панели Norton Commander.
СОЗДАНИЕ, ЗАПОЛНЕНИЕ, ПРОСМОТР И РЕДАКТИРОВАНИЕ БАЗЫ ДАННЫХ
Для создания базы данных используется пункт системного меню File, в котором надо выбрать подпункт New. (Пока не изучено системное меню и не объяснены его функции, мы будем пользоваться “инструктивным” методом объяснения: сделать то-то и то-то). При вы-
боре этого пункта появиться список возможных типов файлов, которые можно создавать. По умолчанию стоит Database (он-то нам и нужен) и нам остается только перейти на Ok и на-
жать Enter. После этого появиться диалог создания структуры базы данных. В первой колон-
ке мы вводим названия полей (при этом могут использоваться только английские буквы,
цифры и знак нижнего подчеркивания “_”, который обычно используется вместо пробела).
Во второй указывается тип поля. Приведем таблицу основных типов полей в Foxpro:
Русское название |
Английское название |
Сокращение |
Допустимая длина |
|
Текстовое |
Character |
Char |
C |
до 254 символов |
Числовое |
Numerical |
Num |
N |
до 20 разрядов |
С плав. зпт. |
Float |
Float |
F |
до 20 разрядов |
Дата |
Date |
Date |
D |
8 позиций |
Логическое |
Logical |
Log |
L |
1 разряд |
Примечания |
Memo |
Memo M |
10 позиций |
Поле типа примечание – по существу безразмерное. Обычно его используют для хране-
ния информации, размер которой заранее предугадать нельзя или этот размер слишком ве-
лик.
Третья колонка – размер поля (количество знаков, которое оно занимает). Для числовых полей указывается также число знаков после запятой – это делается в четвертой колонке.
Поля можно переставлять местами – для этого нужно попасть курсором на заштрихо-
ванную полосу слева от первой колонки и с помощью Ctrl+стрелочек осуществить переме-
щение. Те же операции можно осуществлять с помощью мыши, не используя заштрихован-
ную полосу: передвижение полей осуществляется просто “зацеплением ” поля и его букси-
ровкой. Для мыши доступны кнопки <Insert> и <Delete> в правой верхней части диалога,
которые позволяют, не используя клавиатуру, вставлять и удалять поля.
После того, как мы заполнили таблицу, перейдем на “OK” и нажмем Enter. После этого Вас спросят. Как назвать и куда записать Вашу БД.
ПРОСМОТР И РЕДАКТИРОВАНИЕ БАЗЫ ДАННЫХ
Просмотр базы данных осуществляется с помощью пункта системного меню Database
выбором подпункта Browse. В Foxpro данные могут быть представлены в двух формах – в
форме таблицы или в форме карточки – когда нам предъявляется содержимое лишь одной записи, с этой формой вы уже знакомились, когда вводили данные.
РАБОТА С НЕСКОЛЬКИМИ БАЗАМИ
Foxpro может работать одновременно с несколькими базами. Для этого предусмотрена система так называемых рабочих областей. Упрощенную рабочую область можно предста-
вить как область памяти, которая обслуживает базу данных, ее файл примечаний и ее ин-
дексные файлы. Рабочие области пронумерованы цифрами 1-225 и могут указываться либо по номеру, либо по имени базы данных, открытой в этой рабочей области. Рабочие области существуют постоянно, но рабочей из них является только одна. Переход из одной рабочей области в другую осуществляется командой SELECT<вырN>|<вырC> ,
Где значение <вырN> указывает номер области, а значение <вырC> - имя базы данных.
Значение <вырN> должно лежать в пределах от 0 до 225. Если <вырN> имеет значение 0, то выбирается первая свободная рабочая область (это позволяет открывать новые базы данных,
не заботясь о том, чтобы они не “забили” (т.е. не закрыли) уже имеющиеся).
Открытие базы данных в текущей рабочей области осуществляется командой
USE [<dbf-файл>]
Если при этом в текущей рабочей области уже была открыта база данных, она закрывается.
ГЛАВА 2
КОНСТАНТЫ, ПЕРЕМЕННЫЕ, ОПЕРАЦИИ, ФУНКЦИИ, ВЫРАЖЕНИЯ
ОСНОВНЫЕ ТИПЫ КОНСТАНТ И ПЕРЕМЕННЫХ В FOXPRO
Русское название |
Английское название |
Сокращения |
Формат констант |
Пример |
Текстовые |
Character |
Char C |
в кавычках или |
“Иванов” |
|
|
|
апострофах |
„La Shene‟ |
Числовое |
Numerical |
Num |
N |
знак, цифры, |
|
|
|
|
|
разделитель-точка |
-21.35 |
С плав. зпт. |
Float |
Float |
F |
|
|
Дата |
Date |
Date |
D |
в фигурных скобках |
{03.02.1996} |
Логическое |
Logical |
Log |
L |
в точках |
.Т. .t. .F. .f. |
Переменные в Foxpro не описываются, тип переменной определяется по первому присвоен-
ному ей значению.
МАССИВЫ
Массивы бывают одномерные и двумерные. Они описываются командами
DECLARE <массив1> (<вырN1> [,<вырN2>]) [,<массив2>(<вырN3>[,<вырN4>])]…
DIMENSION <массив1> (<вырN1>[,<вырN2>]) [,<массив2>(<вырN3>[,<вырN4>])]…
действие которых идентично: они создают один или несколько массивов. При этом если ука-
зывается только один размер (<вырN1>), то создаѐтся одномерный массив (одна колонка и
<вырN1> рядов), а если два размера – двумерный массив (<вырN2> колонок и <вырN1> ря-
дов).
ПОЛЯ БАЗ ДАННЫХ
Поля баз данных могут присутствовать с кратким (только название поля) или с полным
(вместе с именем базы данных) именем. В последнем случае имя базы отделяется от имени поля точкой или знаком >. Например:
Surname |
поле surname текущей базы данных |
Name |
поле name текущей базы данных |
Lastname |
поле lastname текущей базы данных |
address.surname |
поле surname базы данных address |
address>surname |
поле surname базы данных address |
mathemat.surname |
поле surname базы данных mathemat |
|
ОПЕРАЦИИ |
Арифметические: +, -, *, /, ^ (возведение в степень), ** (возведение в степень).
Логические: .NOT. .AND. .OR. (возможно вместо точек ограничивать пробелами), ! (от-
рицание, совпадает с .NOT.), <, >, =, # (не равно), <= (меньше либо равно), >=.
Отдельно обсудим операции сравнения строк (текстовых переменных и полей), так как это имеет существенное значение для практически всех операций поиска. Сравнение с по-
мощью обычного равенства (А=Б) несимметрично: оно производится по длине второго опе-
ранда, поэтому в результате выполнения логической операции “Иванов”=”Иван” мы получим истину (.Т.), а в результате выполнения операции “Иван”=”Иванов” – ложь (.F.). Для тожде-
ственного (симметричного) сравнения используется операция двойного равенства = =. Име-