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; просмотров: 3364;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.027 сек.