Разработка базы данных «Расход медикаментов», страница 5

Серверы автоматической обработки информации Visual FoxPro могут работать как на локальных компьютерах, так и на сетевом сервере, предназначенном для распределенных многоуровневых приложений. Это обеспечивает использование уже существующих приложений, созданных с помощью FoxPro и Visual FoxPro, и создает новый класс распределенных приложений на базе Visual FoxPro. Распределенная архитектура обеспечивает высокопроизводительный доступ к данным, уменьшает требования к компьютеру клиента и упрощает обслуживание централизованных компонентов». [4]

«Внутренние изменения также были внесены: в FoxPro появился новый тип индексов, ставших более компактными. Обеспечивается внутренняя поддержка SQL - структурированного языка запросов. Метод RushMore реализует оптимизацию доступа и выборок. При грамотном применении этого метода скорость выборок возрастает в сотни и тысячи раз». [5]

«В версии 5.0 возросла эффективность обработки больших массивов данных, повысилась распределения памяти и исполнения объектов. По разным направлениям был достигнут прирост быстродействия от 10 до 300%.

Ниже приводятся некоторые количественные характеристики Visual FoxPro 5.0

Максимальное количество записей в таблице                                                             1’000’000’000

Максимальный размер таблицы                                                                                    2 GB

Максимальное количество символов на запись                                                           65’500

Максимальное количество полей в записи                                                                   255

Максимальное количество одновременно открытых таблиц                                     2’551

Максимальное количество символов в поле                                                                254

Максимальное количество открытых индексов на таблицу                                     не ограничено (*)

Максимальное количество открытых индексов во всех рабочих областях            не ограничено (*)

Максимальное количество связей между таблицами                                                не ограничено

Максимальное количество переменных                                                                     65’000

Максимальный размер откомпилированного программного модуля (**)              64K

Максимальное количество процедур                                                                          Не ограничено

Максимальное количество параметров                                                                       27

Максимальный размер символьной строки                                                                2 GB

Максимальное количество полей, которые может выбрать оператор SQL SELECT     255

(*) Разумеется, у каждого компьютера есть ограничения, накладываемые аппаратным и базовым программным обеспечением.

(**) Программный модуль считается одной процедурой. Приложение может содержать неограниченное число программных модулей». [4]

Благодаря всем этим возможностям VFP (его более новые версии 6.0 и 7.0) является одной из наиболее популярных СУБД.

Разработка программы приложения:

Создаваемое приложение базы данных должно осуществлять реакцию на запросы, сделанные пользователем. Поэтому для поддержания дружественного интерфейса мы  воспользуемся базовым классом VFP - Forms. С помощью элементов управления (Form Controls, в данном случае PageFrame и TextBox) можно задать условия выборки записей.

Для разработанной базы данных был построен проект приложения, в который включены все программы, запросы, формы и отчеты, вызываемые при выборе соответствующих пунктов меню. Приложение находится в файле my_kurs.app. Главным файлом приложения является программа – start.prg, которая вызывается первой при запуске my_kurs.app.

Эта программа осуществляет настройку окружения базы данных, проверку введённого пароля и в случае его совпадения с ключом осуществляет запуск меню и начало работы с приложением.

Листинг программы start.prg :

SET DEFAULT TO C:\Users      &&  задание пути к текущему катологу

SET DATE British                        && установка английского формата даты  дд/мм/гг

SET CENTURY ON                    && представление формата года в виде 4 цифр

CLOSE ALL                                && закрываем все активные файлы

OPEN DATABASE medicine     && открытие базы данных «Расход медикаментов»

Public lControl                              && объявляем глобальную переменную для контроля пароля

lControl=.F.

DO FORM title.scx                      && запускаем форму-заставку (рис.2)

READ EVENTS                          && ожидание реакции пользователя

IF lControl                                    && если пароль верный, то при уничтожении формы lControl=.Т.

 DO menu.mpr                              && запуск меню (рис.3)

ELSE                                            && иначе выход из базы данных
 Release lControl


 CLOSE ALL

ENDIF

Рис.2 Общий вид заставки

Процедуры обработки событий для формы заставки:

Text1.Init( ):

Public cCode, iCount       && объявляем глобальные переменные

cCode=""                          && хранит введённый пароль

iCount=1                           && подсчёт числа попыток ввода кода

Text1.KeyPress( ):

LPARAMETERS nKeyCode, nShiftAltCtrl

IF nKeyCode=13             && если нажата клавиша Enter – автоматически нажимается кнопка OK

THISFORM.Command1.Click()

ENDIF

Command1.Click( ): && кнопка OK

cCode=THISFORM.Text1.Value  && сохраняем введённый пароль

IF (cCode = "alex123")   && alex123 – ключевое слово

  lControl=.T.

  Release THISFORM

  Release cCode,iCount