Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

А.С.Грошев.Базы данных.Уч.пособие

.pdf
Скачиваний:
150
Добавлен:
12.04.2015
Размер:
3.1 Mб
Скачать

5.Высокая скорость разработки приложений с использованием мастеров (Wizard), конструкторов (Designer), построителей (Builder), режим подсказок IntelliSense при написании текста программ, системы отладки и тестирования программ.

6.Возможность разработки клиентских приложений, работающих по технологии клиент – сервер с данными, размещенными на серверах баз данных

Oracle и Microsoft SQL Server и с другими приложениями Microsoft Windows с использованием ODBC и OLE.

7.Возможность разработки Интернет-приложений для работы с базами данных.

8.Возможность разработки проекта для работы с базами данных с компиля-

цией его в программу, исполняемую в VFP (*.app), в операционной систе-

ме Microsoft Windows (*.exe или *.dll) или в Интернет-браузере (*.app).

Система VFP предназначена для использования профессиональными программистами, поэтому нет смысла в русификации ее меню и языка – для любого программиста английский синтаксис алгоритмического языка более привычен, чем русский.

41

2.2. Типы файлов, которые использует система

Особенность системы – использование значительного количества файлов с различными расширениями для работы с различными типами объектов, но по сути формат многих из них dbf с мемо полями. В таблице 2.2 приведен список основных типов файлов.

Таблица 2.2. Список расширений и типов файлов, используемых системой

 

Расширение

 

Тип файла

 

.app

 

Сгенерированное приложение

 

.cdx

 

Компаундный индекс

 

.dbc

 

База данных (Database)

 

.dbf

 

Таблица (Table)

 

.dct

 

Мемо-поля базы данных

 

.dcx

 

Индекс базы данных

 

.exe

 

Исполняемая программа

 

.fll

 

Динамическая библиотекаVisual FoxPro

 

.fpt

 

Мемо поля таблицы базы данных

 

 

 

.frt

 

Мемо поля отчета

 

.frx

 

Отчет (Report)

 

.fxp

 

Скомпилированный программный файл

 

.h

 

Файл заголовков

 

.ico

 

Иконка

 

.idx

 

Одиночный индекс

 

.lbt

 

Мемо поля этикетки

 

.lbx

 

Этикетка (Label)

 

.mnt

 

Мемо поля меню

 

.mnx

 

Меню

 

.mpr

 

Сгенерированная программа меню

 

.mpx

 

Скомпилированная программа меню

 

.ocx

 

Библиотека объектов ActiveX

 

.pjt

 

Мемо поля проекта

 

.pjx

 

Проект

 

.prg

 

Файл программы

 

.qpr

 

Программа-запрос

 

.qpx

 

Скомпилированный запрос

 

.sct

 

Мемо поля формы

 

.scx

 

Форма (Form)

 

.vct

 

Мемо поля библиотеки Visual FoxPro

 

.vcx

 

Библиотека Visual FoxPro

 

 

42

43
Рис.2.3. Диалог для сохранения базы данных на диске
Рис. 2.2. Выбор типа файла в диалоге New
После этой команды появляется окно New выбора типа файла (рис. 2.2).
В окне New нужно выбрать тип файла Database и нажать на большую кнопку New file (если выбрать кнопку Wizard – будут предложены готовые образцы баз данных).
Далее нужно задать папку на диске, где Вы будете сохранять все компоненты, относящиеся к разрабатываемому проекту, и задать название базы данных (расширение файла указывать не надо – система допишет его сама). Пусть папка и имя базы данных будут
Students (рис. 2.3).
После нажатия на кнопку Сохранить откроется пустое окно модификации структуры базы данных (Database Designer). Поместив курсор мыши в это окно, щелкнем правой кнопкой мыши и в контекстном меню выберем команду New table
(рис. 2.4).
Далее выбираем New table, а не Wizard, который нам опять предложил бы американские образцы таблиц за основу, выбираем папку и задаем имя главной таблицы базы – Spisok, по-
2.3. Создание базы данных
Для создания новой базы данных проще всего воспользоваться кнопкой New стандартной панели инструментов (рис. 2.1)
Рис. 2.1. Кнопки стандартной панели инструментов
Рис. 2.4. Окно конструктора базы данных
Рис. 2.5. Окно конструктора таблицы

сле чего открывается окно описания структуры таблицы базы данных (Table Designer) (рис. 2.5).

В окне Table Designer описываем все по-

ля таблицы Spisok.dbf

имя поля (Name), тип

(Type), ширину (Width),

количество десятичных знаков для действительных чисел (Decimal), наличие простого индекса (Index) и задаем заголовок поля таблицы (Caption). Имена полей лучше писать латинскими буквами.

Для индекса NZ на страни-

це Indexes окна Table Designer следует задать тип индекса – Primary – первичный, т.к. номер зачетки

– уникальный для каждого студента, однозначно его идентифицирует и поэтому может служить первичным ключом (в таблице обозна-

чения A – Ascending – ин-

декс в порядке возрастания, P – Primary – первичный).

Структура главной таблицы базы данных приведена в табл. 2.3.

Для таблицы, входящей в состав базы данных, в окне Table Designer

присутствуют разделы Display, Map field…, Field validation, Field comment,

эта информация сохраняется в файле базы данных и поэтому отсутствует при описании структуры свободных таблиц (файлы *.dbf, не входящие в состав базы данных). Таблицу можно удалить из базу, но оставить в виде свободной таблице на диске, в этом случае информация этих разделов теряется.

Задание заголовков (Caption) для полей при описании структуры таблицы облегчает разработку экранных форм и отчетов – эти названия появятся как подписи для полей (если Caption отсутствует, подписью будет имя поля).

44

Таблица 2.3. Структура таблицы Spisok.dbf

Name

Type

Width

Decimal

Index

Caption

Nz

С

7

 

A, P

Номер зачетки

 

 

 

 

 

 

Fio

С

45

 

 

Фамилия, имя, отчество

 

 

 

 

 

 

data_p

D

8

 

 

Дата поступления

 

 

 

 

 

 

n_fclt

N

2

 

A

Факультет

 

 

 

 

 

 

n_spect

C

7

 

A

Специальность

 

 

 

 

 

 

kurs

N

1

 

 

Курс

 

 

 

 

 

 

n_grup

C

10

 

 

Группа

 

 

 

 

 

 

n_pasp

C

10

 

 

Номер паспорта

 

 

 

 

 

 

Далее создаем следующую таблицу в базе – справочник факультетов с именем файла Fclt.dbf. Для этого следует снова поместить курсор мыши на пустое место окна Database Designer, щелкнуть правой кнопкой мыши и в контекстном меню выбрать команду New table. В окне Table Designer описываем структуру таблицы (табл.2.4).

Таблица 2.4. Структура таблицы Fclt.dbf

Name

Type

Width

Decimal

Index

Caption

n_fclt

N

2

 

A, P

Номер факультета

 

 

 

 

 

 

name_f

С

120

 

 

Название факультета

 

 

 

 

 

 

Название ключевого поля справочника, его тип и ширину желательно оставить такими же, как и в главной таблице, для облегчения установления связей при разработке экранных форм и отчетов с помощью мастеров.

Точно так же создаем в базе данных следующие таблицы и индексы для следующих таблиц (табл.2.5, 2.6, 2.7)

Таблица 2.5. Структура таблицы Spect.dbf

Name

 

Type

Width

 

Decimal

 

Index

 

 

Caption

n_spect

 

C

7

 

 

 

 

A, P

 

Код специальности

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

name_s

 

С

120

 

 

 

 

 

 

 

Название специальности

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.6. Структура таблицы Ocenki.dbf

 

 

 

 

 

 

 

 

 

 

 

Name

 

Type

 

 

Width

 

Decimal

 

Index

Caption

nz

 

C

 

7

 

 

 

 

 

A, P

 

Номер зачетки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

semestr

 

N

 

1

 

 

 

 

 

 

 

 

Семестр

 

 

 

 

 

 

 

 

 

 

 

 

 

n_predm

 

N

 

2

 

 

 

 

 

A

 

Предмет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ball

 

C

 

1

 

 

 

 

 

 

 

 

Оценка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data_b

 

D

 

8

 

 

 

 

 

 

 

 

Дата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

prepod

 

С

 

45

 

 

 

 

 

 

 

 

Преподаватель

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

45

 

 

 

Таблица 2.7. Структура таблицы Predmets.dbf

Name

Type

Width

Decimal

Index

Caption

n_predm

N

2

 

A, P

Номер предмета

 

 

 

 

 

 

name_p

С

120

 

 

Название предмета

 

 

 

 

 

 

Далее в окне Database Designer задаем постоянные связи между таблицами в базе, перетаскивая мышкой название первичного индекса к обычному (Regular) индексу. В результате получаем схему базы данных (рис. 2.6).

Рис. 2.6. Окно базы данных STUDENTS

Задание № 2.1

Для выданного задания создать базу данных, описать структуру таблиц, создать индексы, установить постоянные связи между таблицами в базе.

46

2.3. Использование стандартных режимов BROWSE и EDIT для работы с таблицами базы

Всистеме VFP существует два основных режима работы с таблицами (и соответственно, команды языка этой системы):

Browse – табличный формат и

Edit – форма с построчным расположением полей.

Существует много разных способов открыть окно таблицы базы данных для редактирования в одном из этих режимов, в том числе:

1.в открытом окне модификации структуры базы (Database Designer) щелкнуть правой кнопкой мыши на таблице и выбрать команду Browse;

2.щелкнуть мышкой на значке Open стандартной панели инструментов, задать тип файла Table, выбрать нужную таблицу и дать команду Browse в окне Command или в пункте меню View;

3.открыть окно Data session (из пункта главного меню Window), в нем открыть нужные таблицы (кнопка Open), затем выбрать нужную Вам открытую таблицу и нажать на кнопку Browse.

Врезультате будет открыто окно таблицы базы данных (рис. 2.7.), изменится пункт главного меню View (Вид) – в нем появятся пункты Browse и Edit для переключения режимов, кроме того пункт Append mode – режим автоматического добавления записей в таблицу (возможен только при работе с таблицами из системы VFP, в программном режиме для добавления записей служат команды APPEND… и INSERT… – см. приложение 1).

Выбрав режимы Browse и Append mode (в меню у этих пунктов появится галочка ), мы сможем занести некоторые данные в таблицы нашей базы.

поле n_fclt

поле name_f

поме-

запись

тить

 

для

 

уда-

 

ления

 

разделить на 2 части

Рис. 2.7. Стандартный режим Browse работы с таблицей

47

Окно Browse имеет очень много возможностей, которые используются при программировании (см. полный синтаксис команды Browse в приложении). В диалоговом режиме VFP по умолчанию выполняется команда Browse Last – открыть окно в той конфигурации, в которой оно было открыто в предыдущий раз. Если Вы при модификации структуры таблицы добавили в нее новое поле, оно может не появиться на экране, в этом случае нужно написать в окне Command команду Browse или Browse normal.

Окно Browse можно разделить на 2 части, одна из них может быть в режиме Browse, другая – Edit, что удобно при работе с таблицами, имеющими большое количество полей. Можно изменять расположение и ширину полей. Назначение узкой белой колонки слева от полей таблицы – пометить запись для удаления. Помеченная запись может быть видна с черной отметкой в этой колонке (set delete off) или не видна и как бы отсутствует (set delete on). Помеченные для удаления записи можно удалить из файла таблицы (командой Pack), но эта операция связана с переписыванием информации из одного файла в другой, может выполняться только в эксклюзивном режиме открытия таблицы, поэтому выполняется нечасто и обычно не простым пользователем, а администратором базы или программистом.

Режим Edit для той же таблицы показан на рис. 2.8.

В таблице 4-я запись помечена для удаления. Отметку легко снять, повторно щелкнув по черной полоске слева от записи.

Рис. 2.8. Стандартный режим «Edit»

Задание № 2.2

1.Открыть таблицу spisok.dbf в режиме Browse, переключиться в режим Edit и обратно. Занести 10 – 20 записей в каждую из таблиц базы (сначала заполнить справочные таблицы). Научиться удалять записи и восстанавливать удаленные записи.

2.Изучить пункт меню Table, появляющийся в меню VFP для активного окна таблицы (особенно пункты меню Go to record – Locate…, Append Records… и Replace Field…).

3.Занести копию записи в базу с помощью команд Scatter Memvar, Append Blank, Gather memvar, написанных в окне Command.

48

2.4. Разработка экранных форм для работы с базой данных

Для баз данных, состоящих из нескольких таблиц, наглядная и удобная работа может быть организована при использовании экранных форм. В этом случае можно организовать выбор из таблиц-справочников с использованием раскрывающихся списков или отдельных окон, специальные режимы редактирования данных с сохранением или отменой изменений, режимы поиска и отбора информации, печати необходимых отчетов на принтере и пр.

При работе с экранными формами существует два принципиально разных подхода:

1.стиль, принятый в системе FoxPro – на главной экранной форме представлена информация одной записи главной таблицы и связанные с ней данные; полный список записей можно увидеть, нажав кнопку Поиск на этой форме, либо на другой странице той же формы;

2.стиль, принятый в старых системах типа Clipper – главный экран содержит список записей, из него можно перейти на другой экран для редакти-

рования одной записи.

Как показывает практика работы, первый стиль позволяет быстрее перейти к редактированию необходимых данных (за счет имеющихся кнопок и горячих клавиш перехода к следующей и предыдущей записи, создания новой записи, поиска информации).

Имеющиеся в системе VFP мастера разработки экранных форм создают их с использованием первого стиля. Созданные мастером простейшие формы далее, как правило, приходится дополнять и модифицировать для реализации всех необходимых условий работы с базой. Мастера системы VFP используют библиотеки объектов, в которых реализованы механизмы сетевой работы с любыми базами данных в разных режимах буферизации или без нее. Поэтому модификацию существующих программных модулей библиотечных объектов следует выполнять при необходимости крайне осторожно, разобравшись в стандартном программном коде.

При работе с базой данных наиболее удобно использовать режим буферизации данных на уровне многих записей – в этом случае все изменения, выполненные в различных таблицах (редактирование существующих данных, добавление и удаление записей) могут быть сохранены после нажатия на соответствующую кнопку на экране или панели инструментов, либо все изменения могут быть отменены.

Мастер экранных форм (Form Wizard) позволяет разрабатывать экранные формы, имеющие некоторый стандартный набор кнопок управления. В этом случае данные становятся доступны для редактирования только после

49

нажатия на кнопку Правка, после редактирования надо нажать на кнопку
Сохранить или Отменить.
При использовании мастера проектов (Application Wizard) можно разрабатывать экранные формы, входящие в состав проекта, и оформленные в новым стиле – все данные на экране изначально доступны для редактирования, пользователь может в любой момент принять решение сохранять изменения, или нет. Для управления используется не набор кнопок, а панели инструментов. Система следит за изменениями, если Вы попытаетесь закончить работать с базой, не дав команды о сохранении или отмене изменений, появится соответствующий запрос (как в Word-е или в Excel-е при закрытии окна).
Воспользуемся способом разработки экранных форм с использованием Form Wizard. Предварительно откроем базу данных Students в эксклюзивном режиме (в окне Open должна стоять галочка у слова Exclusive). Далее нажимаем на кнопку New на стандартной панели инструментов системы VFP, выбираем тип нового файла – Form и нажимаем на большую кнопку Wizard (см. ранее рис. 2.2 – экран New). В появившемся окне Wizard Selection выбираем вариант One-to-many form wizard – разработка экранной формы для двух связанных таблиц, показывающей поля одной записи главной таблицы и множество связанных записей дочерней таблицы в виде объекта Grid. В нашем случае главная таблица базы – Spisok, связанная с ней таблица – Ocenki.
Работа мастера заключается в пошаговом формировании ответов на определенные вопросы с генерацией для полученного таким образом описания экранной формы или другого объекта при использовании дру-
гих мастеров.
Шаг 1 (Step
1, рис. 2.9): выбор главной таблицы и ее полей. Экран содержит краткое описание этого шага и следующие списки: выбора базы данных и таб-
лиц, доступных Рис. 2.9. Шаг 1 мастера разработки экранных форм полей выбранной
50