- •6. Системы управления базами данных
- •6.1. Субд foxpro
- •Типы и размеры некоторых полей (в байтах).
- •Поле дат 8, Логическое поле1.
- •6.2. Основные команды FoxPro
- •6.3. Создание и редактирование бд
- •Синтаксис команд субд FoxPro
- •6.4.Индексирование бд
- •6.6. Создание командных файлов
- •6.7.Команды управления в FoxPro
- •6.8.Процедуры в FoxPro
- •Вопросы
- •7. Субд Microsoft Access.
- •7.1. Основные объекты Microsoft Office
- •Запросы
6.7.Команды управления в FoxPro
Ветвления
1.1. If <условие> 1.2. Do case
<команды> Case <условие1>
[Else <команды>
<команды>] Case <условие2>
Endif <команды>
…………..
[Otherwise
<команды>]
Endcase
Организация циклов
Do while <условие> 2.2 For i=n To m [Step l ]
<команды> <команды>
Enddo Endfor
2.3 Цикл сканирования БД
Scan [<границы>][For <условие>][While <условие>]
<команды>
Endscan
Пример программы работы с БД в FoxPro:
Пусть имеется БД «Успеваемость студентов», состоящая из трех таблиц: STUDENT (NS, FIO, GRUPPA)
DISCIPL (ND, NAME_D, KAF)
YSPEV (NS, ND, ОС)
Выдать список студентов, получивших 5 по математике:
SELECT A && открыли рабочую область А
USE STUD && в рабочую область А поместили файл STUD
SELECT В && открыли рабочую область В
USE DISCIPL && в рабочую область В поместили файл DISCIPL
SELECT С && открыли рабочую область С
USE YSPEV && в рабочую область С поместили файл YSPEV
SELECT В && переход в область B
LOCATE FOR NAME_D=”математика” && поиск ND математики
IF FОUND( )
ST=2
SELECT С && переход в область С
LOCATE FOR ND = В. ND AND ОС=5
IF FOUND ()
DO WHILE FOUND ()
SELECT A
LOCATE FOR NS = C. NS
IF FОUND( )
@ ST, 1 SAY FIO
@ ST,20 SAY GRUPPA
ENDIF
ST = ST + 1
SELECT С
CONTINUE
ENDDO
WAIT "Нажмите ввод"
ELSE
@ 1,1 SAY "Отличников по математике нет"
ENDIF
ENDIF
CLOSE ALL
RETURN
6.8.Процедуры в FoxPro
Все программы в FoxPro могут быть оформлены в виде внешних процедур, которые создаются с помощью команды MODI COMM, или же в виде внутренних процедур. Внутренние процедуры располагаются внутри основных программ в любом месте и оформляются следующим образом:
PROCEDURE <имя процедуры>
[PARAMETERS <список параметров>]
……………………
RETURN
Список параметров и во внешней и во внутренней процедуре не обязателен. Но если же он все- таки присутствует, то в процедурах должен стоять в первой строке. Вызов и внешних и внутренних процедур осуществляется командой:
DO <имя программного файла/имя процедуры> [WITH<список параметров>].
Если процедуры оформлены как внешние (программный файл на внешнем носителе), то основная программа, использующая их, выглядит компактно, но при каждой загрузке в оперативную память тратится довольно много времени, особенно при многократном использовании этой процедуры. В этом случае, конечно, лучше использовать внутренние процедуры, т.к. они загружаются в основную память один раз вместе с основной программой, в теле которой они расположены. Но при наличии большого количества внутренних процедур, сама программа становится довольно громоздкой и «нечитабельной». С целью использования преимуществ внешних и внутренних процедур, в FoxPro предлагается использовать процедурные файлы, которые создаются с помощью MODI COMM < имя процедурного файла > и содержат только процедуры:
PROCEDURE < имя 1-ой процедуры >
…………………………….
RETURN
PROCEDURE < имя 2-ой процедуры >
…………………………….
RETURN
…………………………………………….
……………………………………………..
PROCEDURE < имя n-ой процедуры >
…………………………….
RETURN
По необходимости эти процедурные файлы загружаются в основную программу командой:
SET PROCEDURE TO <имя процедурного файла>,
и после использования программой нужных процедур, выгружается командой
SET PROCEDURE TO,
чтобы можно было бы загрузить следующий нужный процедурный файл, т.к. в каждый момент времени может быть загружен только один процедурный файл.