(2)
(a)
Пример хранимой процедуры Proc_Storesреализующей работу курсора сервера.
Создать курсор, который должен возвращать технические характеристики и наименование изделия, которое поставляет заказчик (имя заказчика) в количестве более (указать количество) единиц, а также суммировать полученный результат (суммировать по полю “количество” таблица ПОСТАВКА)
/* Шаг 0. Объявление процедуры */
CREATE procedure proc_stores
/* Шаг 1. Объявление некоторых рабочих переменных */
declare @nOrderCount int,
@nStorCount int,
@sKol_vo int,
@sIzdelie char(50),
@sTeh_harakteristika char(50),
@sZakazchik char(50)
/* Шаг 2. Отключение результирующего счетчика. Отключаем необязательное
сообщение "O row affected messages", выдаваемое на экран клиента */
set NoCount ON
/* Шаг 3. Создает ресурсные структуры,
которые требуются для управления курсором. */
declare cur_stores cursor
for
SELECT Наименование, Тех_характеристики, Заказчик, Количество
FROM (ИЗДЕЛИЕ inner join ПОСТАВКА
on ИЗДЕЛИЕ.Код_модели = ПОСТАВКА.Код_модели)
inner join ЗАКАЗ on ПОСТАВКА.Номер_заказ = ЗАКАЗ.Номер_заказ
WHERE Количество > 10
/* Шаг 4. Открытие курсора.
Создается первоначальный результирующий
набор и готовятся данные для передачи. */
open cur_stores
/* Шаг 5. Первое считывание.
Считываются данные из курсора в переменные для обработки и оценки. */
fetch cur_stores
into @sIzdelie, @sTeh_harakteristika, @sZakazchik, @sKol_vo
/* Шаг 6. Инициализация счетчиков */
/* Здесь SELECT выполняет роль оператора присваивания */
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.