
- •Введение
- •1. Основные понятия архитектуры клиент-сервер
- •1.1. Преимущества архитектуры клиент-сервер
- •1.2. Основные понятия и компоненты архитектуры
- •1.3. Звенья
- •1.4. Серверы баз данных
- •2. Основные понятия, объекты и язык т-sql субд ms sql Server 2005
- •2.1. Состав и назначение баз данных в ms sql Server
- •2.2. Основные этапы работы с sql Server
- •2.3. Используемые типы данных в sql Server
- •2.4. Введение в Transact-sql (t-sql)
- •2.4.1. Выражения
- •2.4.2. Переменные
- •2.4.3. Преобразование типов
- •2.4.4. Управляющие конструкции т-sql
- •2.4.5. Описание примера базы данных
- •2.4.6. Управление данными (язык sql)
- •2.4.6.1. Типы команд sql
- •2.4.6.2. Извлечение данных
- •2.5. Представления
- •2.5.1. Создание и удаление представлений
- •2.5.2. Обновление данных в представлениях
- •2.5.3. Преимущества и недостатки представлений.
- •Независимость от данных
- •2.6. Хранимые процедуры
- •2.6.1. Понятие хранимой процедуры
- •2.6.2. Типы хранимых процедур
- •2.6.3. Создание, изменение и удаление хранимых процедур
- •2.6.4. Выполнение хранимой процедуры
- •3. Использование ms sql Server Management Studio для работы с объектами базы данных
- •3.1. Описание учебной базы данных «Realizations of goods» (Реализация товаров)
- •3.2. Создание и сохранение базы данных
- •3.3. Создание и работа с представлениями (запросы)
- •3.4. Создание и работа с хранимыми процедурами
- •4. Создание клиент-серверного приложения в Visual Basic
- •4.1. Элемент управления ms ado data Control
- •4.2. Элемент управления ms dataGrid Control
- •4.3. Клиент-серверное приложение «Реализация товаров»
- •4.3.1. Постановка задачи
- •4.3.2. Состав пользовательского интерфейса и программная реализация
- •4.3.3. Графическое формирование значений свойств элементов Adodc и DataGrid
- •5. Практические задания для самостоятельной работы
- •Вариант 1. «Жильё»
- •Вариант 2. «Жители»
- •Вариант 3. «Население»
- •Вариант 4. «Вакансии»
- •Вариант 5. «Поставщики-детали»
- •Литература
3.3. Создание и работа с представлениями (запросы)
В данном разделе будем рассматривать следующие типы запросов:
Вывести наименование всех реализованных товаров.
Вывести прибыль от реализации каждого товара за определенный период.
Формулы расчета прибыли:
Прибыль=Доход-Расход;
Доход=ЦенаПродажи*КоличествоПроданныхТоваров, при условии, что ЦенаПродажи, не изменялась в процессе реализации.
Расход=ЦенаПриобретения*КоличествоПриобретенныхТоваров, при условии, что ЦенаПриобретения, не изменялась в процессе преобретения. Т.е.
Прибыль= ЦенаПродажи * КоличествоПроданныхТоваров –
ЦенаПриобретения * КоличествоПриобретенныхТоваров.
В нашем случае
КоличествоПроданныхТоваров=КоличествоПриобретенныхТоваров.
Хотя, в общем случае, это не всегда так (товар может уценяться, портиться и т.д., кроме того, товар может залеживаться на складе и КоличествоПроданныхТоваров <> КоличествоПриобретенныхТоваров), тем не менее, рассчитываться прибыль будет так:
Прибыль= (ЦенаПродажи - ЦенаПриобретения) * КоличествоТоваров (упрощенный вариант, который мало отвечает действительности).
Для создания нового запроса необходимо кликнуть правой кнопкой мыши по объекту «Представления» и выбрать пункт «Новое представление» (New View) (рис. 15).
Рис. 15. Окно создания нового запроса
Затем для заданных выше запросов 1 и 2 следует добавить все три таблицы. Они отобразятся со связями по соответствующим полям.
Далее следует отметить поля, которые должны присутствовать в запросе, а именно, все поля, кроме ключей и кодов, т.е. те поля, которые интересуют заказчика (пользователя).
Рассмотрим отдельно создание запроса с вычисляемым полем (запрос 2). Для этого необходимо в тексте запроса вручную набрать формулу расчета прибыли от реализации товара, которая будет вычисляться в зависимости от полей «price_real», «price_acq» и «amount» в таблицах «Goods» и «Realization» соответственно за определенный период (например, с 22.06.08 по 24.06.08) (рис. 16). Формулы для расчета прибыли были приведены выше.
Рис. 16. Окно создания содержимого запроса
Для просмотра результатов (рис. 17) выполнения созданного запроса необходимо кликнуть правой кнопкой мыши по кнопке «View» (Запрос), а затем выбрать пункт «Open View» (Открыть запрос, представление).
3.4. Создание и работа с хранимыми процедурами
Для реализации клиентского приложения, работающего с базой данных «Реализация товаров» и отражающего учет продажи товаров разных типов в некотором супермаркете, необходимо создать две хранимые процедуры с параметрами, которые реализуют следующие функции:
Рис. 17. Результат выполнения запроса
формирует список товаров с их реквизитами (название товара, цена приобретения, цена реализации) для заданного вида товаров,
формирует ведомость прибыли от реализации каждого товара заданного вида за определенный период.
Для создания хранимых процедур можно использовать либо язык T-SQL, либо средство создания Management Studio.
Создание процедуры proc_goods с входным параметром (вид товара) и значениями по умолчанию для формирования списка товаров с их реквизитами на языке T-SQL выглядит следующим образом:
CREATE PROCEDURE [dbo].[proc_goods]
@par_name_type_goods varchar(50) ='мебель'
AS
SELECT dbo.Goods.name_goods as товар,
dbo.Goods.price_acq as цена_приобр,
dbo.Goods.price_rel as цена_реал
FROM dbo.Goods, dbo.Type_goods
Where dbo.Goods.id_type_goods = dbo.Type_goods.id_type_goods and
dbo.Type_goods.name_type_goods=@par_name_type_goods
Создание процедуры proc_real_period с входными параметрами (вид товара, даты периода) и значениями по умолчанию для формирования ведомости прибыли от реализации каждого товара заданного вида за определенный период на языке T-SQL выглядит следующим образом:
CREATE PROCEDURE [dbo].[proc_real_period]
@par_name_type_goods varchar(50)='мебель',
@date_begin varchar(20)='01.01.2008',
@date_end varchar(20)='31.12.2008'
AS
SELECT dbo.Type_goods.name_type_goods as тип,
dbo.Goods.name_goods as товар,
sum((dbo.Goods.price_rel-
dbo.Goods.price_acq)*dbo.Realization.amount) AS Прибыль
FROM dbo.Goods, dbo.Type_goods, dbo.Realization
WHERE (dbo.Realization.date_real >= @date_begin) AND
(dbo.Realization.date_real <= @date_end) and
dbo.Type_goods.name_type_goods=@par_name_type_goods and
dbo.Goods.id_goods = dbo.Realization.id_goods and
dbo.Goods.id_type_goods = dbo.Type_goods.id_type_goods
GROUP BY dbo.Type_goods.name_type_goods, dbo.Goods.name_goods
Заметим, что в данных процедурах для полей под SELECTом применены псевдонимы на русском языке, что связано с дальнейшим их использованием конечным пользователем при работе с клиент-серверным приложением.
Рассмотрим, как использовать Management Studio для создания хранимых процедур. Заметим, что при создании хранимой процедуры с помощью Management Studio, тем не менее необходимо знать синтаксис операторов языка T-SQL.
В качестве примера создадим процедуру proc_real_period. Для этого (рис. 18) следует открыть список хранимых процедур для выбранной базы данных в Обозревателе объектов, щелкнуть правой кнопкой мыши на объекте Хранимые процедуры и выбрать пункт контекстного меню Создать хранимую процедуру (New Stored Procedure). После этого справа откроется окно (с шаблоном) для ввода текста хранимой процедуры, в котором надо убрать лишние строки (например, комментарии) и ввести код процедуры, строго соблюдая синтаксис языка T-SQL, как это изображено на рисунке 19.
Рис. 18. Вызов функции для создания процедуры
Рис. 19. Окно для ввода текста процедуры
Кнопка
Management Studio
служит для проверки
синтаксиса созданной процедуры и
помещения ее в список пользовательских
хранимых процедур текущей базы данных.
Для того, чтобы увидеть вновь созданную
процедуру в этом списке необходимо
воспользоваться пунктом Обновить
контекстного
меню.
Для проверки корректности работы хранимой процедуры надо щелкнуть правой кнопкой мыши на имени этой процедуры и выбрать из контекстного меню пункт Выполнить хранимую процедуру (рис. 20). Тогда Management Studio предоставит окно для ввода значений параметров (рис. 21). После нажатия на кнопку «Ок» Management Studio выполнит процедуру и предоставит результаты в специальном окне, пример которого приведен на рис. 22.
Рис. 20. Контекстное меню
Рис. 21. Окно для ввода значений параметров процедуры
Рис. 22. Результат выполнения хранимой процедуры
В Management Studio есть также возможность редактирования хранимой процедуры. Для этого надо щелкнуть правой кнопкой мыши на имени этой процедуры и выбрать из контекстного меню пункт Изменить (рис. 20).