- •Visual FoxPro 9.0 sp1
- •Содержание
- •Лабораторная работа № 1
- •Лабораторная работа № 2
- •Modify database [ имяБазыДанных | ? ] [nowait] [noedit]
- •Хранимые процедуры
- •Задания
- •Лабораторная работа № 3
- •Вычисляемые поля
- •Лабораторная работа № 4
- •Лабораторная работа № 5
- •Лабораторная работа № 6
- •Список литературы
- •Учебное издание
- •Visual FoxPro 9.0 sp1 Часть I
Хранимые процедуры
Хранимые процедуры являются неотъемлемой частью базы данных. Использование хранимых процедур
Позволяет часть прикладного обеспечения перенести на сервер (модель распределенного приложения). Процедуры хранятся в словаре базы данных, разделяются между несколькими клиентами и выполняются на том же компьютере, что и SQL-сервер.
Хранимые процедуры создаются в проекте приложения. В окне проекта выбираете вкладку Database, затем Stored Procedures и нажмите кнопку New. На экране откроется окно редактирования хранимых процедур. При этом будут отображены все хранимые процедуры проекта. В этом окне можно ввести текст процедуры: как общий для приложения, так и отдельной, используемой в выражении для триггера. Для удаления ненужной более процедуры используется кнопка Remove.
Таблицу можно открыть:
в главном окне меню VFP: File Open Table или Window Data Session;
в менеджере проектов на вкладке Database;
в командном окне, используя оператор USE <имя таблицы>.
Примечания:
При открытии таблицы любым способом, создается уникальная рабочая область жестко связанная с открываемой таблицей. Если явно не указано имя рабочей области, оно совпадает с именем открываемой таблицы. Все дальнейшие операции с данными в таблице на самом деле проводятся в рабочей области. Переключение между несколькими рабочими областями, в случае наличия нескольких открытых таблиц осуществляется командой SELECT <имя рабочей области>.
Команда USE без указания имени таблицы закрывает таблицу, открытую в текущей рабочей области.
Для просмотра данных в таблице, открытой в текущей рабочей области можно использовать команду BROWSE.
Задания
Создайте на диске каталог с вашим именем.
Создайте проект при помощи мастера с именем Sales. В качестве места хранения укажите свой персональный каталог.
В окне конструктора проекта создайте базу данных с именем Sales.
Создайте таблицы со следующими структурами:
Таблица Customer (Покупатель) содержит информацию о покупателях.
№ n/n |
Наименование |
Тип |
Описание |
1 |
icdCustomer |
Integer |
Код покупателя |
2 |
cCompany |
Character (20) |
Предприятие |
3 |
cLastName |
Character (16) |
Фамилия |
4 |
cFirstName |
Character (16) |
Имя |
5 |
cSecondName |
Character (16) |
Отчество |
6 |
cZIP |
Character (6) |
Почтовый индекс |
7 |
cCountry |
Character (20) |
Страна |
8 |
cRegion |
Character (20) |
Область |
9 |
CCity |
Character (20) |
Город |
10 |
Caddress |
Character (60) |
Остальная часть адреса |
11 |
YCreditLimit |
Currency |
Кредит |
12 |
MNotes |
Memo |
Примечание |
Первичный ключ (icdCustomer).
Таблица PHONCUST, содержащая в себе информацию о телефонах заказчика.
№ поля |
Наименование |
Тип |
Описание |
1 |
icdCustomer |
Integer |
Код покупателя |
2 |
cPhone |
Character(10) |
Телефон покупателя |
Первичный ключ (icdCustomer, cPhone).
Таблица ORDSALEM, содержащая информацию о дате и менеджере заказа.
№ поля |
Наименование |
Тип |
Описание |
1 |
icdOrder |
Integer |
Номер заказа |
2 |
icdCustomer |
Integer |
Код покупателя |
3 |
dOrderDate |
Date |
Дата заказа |
4 |
icdManager |
Integer |
Код менеджера, продавшего товар |
Первичный ключ (icdOrder).
Таблица MANAGER, включающая информацию о менеджерах.
№ поля |
Наименование |
Тип |
Описание |
1 |
icdManager |
Integer |
Код менеджера |
2 |
cnmManager |
Character(40) |
Имя менеджера |
Первичный ключ (icdManager).
Таблица ORDSALED, содержащая информацию о товаре и его количестве.
№ поля |
Наименование |
Тип |
Описание |
1 |
icdOrder |
Integer |
Номер заказа |
2 |
icdGoods |
Integer |
Код товара |
3 |
nOrderQuant |
Numeric(10) |
Заказанное количество товара |
4 |
mOrderNotes |
Memo |
Примечание к заказу |
Первичный ключ (icdOrder, icdGoods).
Таблица GOODS, хранящая информацию о товарах.
№ поля |
Наименование |
Тип |
Описание |
1 |
icdGoods |
Integer |
Код товара |
2 |
cnmGoods |
Character(60) |
Наименование товара |
3 |
cnmGoodsGrp |
Character(40) |
Группа товара |
4 |
nUnitPrice |
Numeric(10.2) |
Цена |
Первичный ключ (icdGoods).
Для каждой таблицы создайте первичные индексы.
Создайте необходимые дополнительные индексы и установите связи между таблицами, как это показано на рис. 18.
Рис. 18 Структура базы данных
Обратите внимание! В приведенной структуре допущена одна логическая ошибка. Вам необходимо найти ее, обосновать ваше утверждение и исправить ошибочную связь.
Установите для таблиц обеспечение целостности данных, выбрав для вставки записей значение Ignore.
Просмотрите и отметьте изменения, произведенные системой, после установки соблюдения целостности данных, для разных типов действий при обеспечении целостности данных. Что изменилось в базе данных? Что изменилось в таблицах?
Выбрав имя таблицы, и используя кнопку BROWSE, просмотрите содержимое таблиц.
В режиме просмотра таблицы при помощи комбинации клавиш Ctrl+Y добавьте несколько строк и заполните эти строки данными.
Измените, заголовки нескольких полей в первой таблице и просмотрите ее в режиме BROWSE. (При просмотре обратите внимание на то, чтобы в пункте меню View был выбран режим Browse, а не Edit).
При помощи комбинации клавиш Ctrl+T пометьте строки в таблице на удаление. Физически удалить эти строки можно при помощи команды меню Table | Remove Deleted Records.
Внесите в каждую таблицу необходимые данные, таким образом, чтобы было зарегистрировано не менее 5 заказчиков, каждый из которых сделал не менее 2-х заказов из 4 изделий. Количество менеджеров должно превышать половину количества заказчиков. В справочнике изделий должны быть изделия, не вошедшие ни в один заказ.
Укажите для каждого поля в таблицах краткий комментарий.
Сохраните свой проект для дальнейшей работы.
Закройте проект и выйдите из Visual FoxPro.