Microsoft Visual FoxPro. Обзор.
История Visual FoxPro и основные особенности шестой версии.
FoxPro – реляционная однопользовательская СУБД (с возможностью сетевого доступа), ориентированная на широкий класс пользователей. Производитель: Fox Software. Первая разработка датируется 1984 годом. FoxBase был задуман как улучшенный вариант dBASE, т.е. если dBASE умел что-то делать, то FoxBase должен был делать это лучше и быстрее.
С появлением на рынке FoxPro 2.0 был совершен переворот в области разработки баз данных на персональных компьютерах. Ускорение работы оказалось просто поразительным. В персональной системе базы данных стала возможной работа с таблицами, содержащими миллионы записей. Впервые разработчики Fox использовали в этой версии SQL-инструкции. FoxPro 2.0 представил разработку экранов и отчетов с помощью «мастеров». При этом мастер генерировал программный код, позволяя использовать и модифицировать его в основной программе. В версию FoxPro 2.5 была добавлена поддержка Windows, хотя по сути это было DOS-приложение, лишь внешне приняв облик Windows-продукта.
Компания Microsoft выкупила фирму Fox Software в период разработки FoxPro для Windows, и «совместная» версия 3.0 обогатилась множеством дополнительных возможностей: появилась поддержка хранимых процедур, правил привязки данных к таблицам, а также новых функций. Visual FoxPro стал первой персональной СУБД с возможностью доступа к удаленным данным. Версия 5.0 обрела возможность использовать и создавать серверы COM, но радикально не отличалась от версии 3.0.
На рубеже веков в основном использовалась шестая версия (Visual FoxPro 6 вошёл в состав пакета разработчика Microsoft Visual Studio 6, 1999 год), хотя все позиции и притязания FoxPro уже можно было трактовать как весьма умеренные.
Основа: интегрированная среда разработчика, позволяющая как конструировать программы из набора модулей (экраны, меню, отчёты), так и осуществлять запросы к БД из самой среды. Основной режим выполнения программ – интерпретация с возможностью создания исполняемых EXE-файлов (для работы которых требуется отнюдь не маленькая по размеру файла библиотека FoxPro). По быстродействию FoxPro всегда занимает лидирующее место среди однопользовательских СУБД. Язык программирования базируется на языке dBASE, плюс собственный набор команд и функций (FoxBASE) плюс поддержка некоторых SQL-инструкций и плюс набор ООП-классов в основном для конструирования пользовательских интерфейсов. Улучшенная поддержка COM является, по-видимому, наиболее значительным усовершенствованием, упростившим создание и реализацию OLE-серверов.
Проект является основным средством объединения отдельных элементов приложения, собирающий файлы, на которые есть ссылки, и осуществляющий их взаимодействие. Для каждого из элементов в СУБД создаётся отдельный файл:
Объект | Расширения |
Проект | PRG, FPC, CAT, PGX, PJT |
База данных (для организации таблиц и индексов) | DBC |
Таблица (число записей в файле – до 1 млрд., максимальный размер записи – 4000 байт, число полей в записи – до 255) | DBF |
Индексный файл (бывают простые и составные) | CDX, IDX |
Поля типа Memo и Genegal | FPT |
Форма | SCX |
Запрос | QPR |
Отчёт | FRX, FRM |
Почтовая наклейка | LBX, LBL |
Меню | MNX |
Библиотека класса | VCX |
Программа | PRG, SPR, MPR, QPR |
Рисунок | BMP |
Звук | WAV |
Откомпилированный проект (наиболее быстрое выполнение команд) | APP |
Автономный файл проекта | EXE |
Типы данных (полей в таблицах), которые поддерживаются FoxPro:
- Character – текстовый (254 символа максимум)
- Integer, Numeric, Float, Double – числовые
- Currency – денежный
- Date – дата
- DateTime – дата и время
- Logical – логический
- Memo – текстовое поле произвольной длины
- General – двоичное поле произвольной длины
Язык программирования FoxBASE
Язык является строко-зависимым и регистронезависимым. Содержит большое количество команд и функций, часто дублирующих друг друга (в основном в целях совместимости с другими СУБД). Некоторые команды одинаковы даже по названию (например, SELECT). Язык истинно структурный, поддерживает аппарат процедур и функций, а также механизм макроподстановок. Использует многомерные массивы и функции массового копирования данных, однако не работает с множествами. Областью вывода по умолчанию является фон главного окна программы (как продолжение традиции DOS-версии).
Некоторые правила языка:
1) кириллица может быть использована лишь в символьных строках и примечаниях;
2) ограничителями строковых констант могут быть как кавычки, так и апострофы;
3) символ примечаний && или * ;
4) оператор вывода на главное окно – команда ? или ?? (в первом случае вывод с новой строки, во втором – с текущей позиции);
5) Ввод и вывод даты:
MyBirthDate={^1969-08-23}
Set date german
? MyBirthDate
6) Использование макроподстановок
N = ”Date()”
M = ”&N+7”
? M && выводится текст Date()+7
? &M && выводится текущая дата, увеличенная на 7 (дней)
? ”&M” && выводится текст Date()+7
Команды могут вводится интерактивно или запускаться программно. Структура команд:
<Имя команды> [<границы>] [<список выражений>] [ FOR <условие>] [ WHILE <условие>]
Здесь:
<границы> – область действия команды – ключевые слова: ALL (все записи), REST (вниз от текущей), NEXT <n> (следующие n записей, начиная с текущей), RECORD <n> – только для записи с номером n.
FOR <условие> – выполнение команды только для записей, отвечающих условию.
WHILE <условие> – выполнение команды до тех пор, пока не перестанет выполняться условие.
Пример программы поиска:
Clear ALL && очистка экрана, удаление пользовательских переменных и массивов, окон и меню
Use Phonebook && выбираем уже созданную базу данных со списком телефонов
nRec=Reccount() && подсчитываем число записей в базе (переменную объявлять не надо)
? nRec && выводим полученную цифру на экран
for i=1 to nRec do && организуем цикл по записям
goto i && прямое позиционирование на запись с номером i
if Alltrim(phone)=’555555’ && сравниваем поле с именем phone со строковой константой
display && если условие выполнено, показываем запись на экране
endif
endfor
Описание основных команд FoxBASE
1) Выбор таблицы. В среде FoxPro только одна таблица может быть активной.
USE <имя таблицы> – открытие таблицы в текущей рабочей области
USE без параметров – закрывает таблицу
SELECT <i> – переход в рабочую область с индексом i
CLOSE ALL – закрытие всех файлов и переход в рабочую область 1
2) Перемещение по таблице и контроль перемещения.
GO {TOP | BOTTOM | <n>} – переход к первой, последней или записи с номером n
SKIP [<n>] – переход к записи, отстоящей на n от текущей или на следующую запись
Recno([<i>]) – функция, возвращающая номер текущей записи в области i
Reccount([<i>]) – выдаёт общее число записей в таблице (включая помеченные на удаление)
Eof([<i>]), Bof([<i>]) – функции, отмечающие конец и начало таблицы
3) Вставка и удаление записей
APPEND [BLANK] – дополнение таблицы интерактивное (открывается окно ввода данных) или пустой записью
INSERT [BEFORE] – вставка новой записи после (или до) текущей (открывается окно ввода данных)
DELETE – пометка к удалению записей в указанных границах или отвечающих указанным условиям
PACK – физическое удаление помеченных ранее записей и сжатие файла.
USE Peoples
GO BOTTOM
SKIP -3
DELETE NEXT 3
PACK
Дата добавления: 2015-07-30; просмотров: 3473;