11548

Хранимые процедуры

Лабораторная работа

Информатика, кибернетика и программирование

Хранимые процедуры 1. БД Аналог приложения на языке программирования Borland Delphi База данных Приложение Таблица поле таблицы триггер Объект свойство объект

Русский

2013-04-08

40.5 KB

3 чел.

Хранимые процедуры

1.  

БД

«Аналог» приложения на языке программирования Borland Delphi

База данных

Приложение

Таблица

поле таблицы

триггер

Объект

свойство объекта

событие объекта

Хранимая процедура

Глобальная процедура приложения

2. Общий синтаксис создания хранимой процедуры

CREATE PROC[EDURE] <Имя_процедуры>

[@<Имя_параметра> <Тип_данных_параметра>

                                    [ = <Значение_параметра_по_умолчанию>]

                                    [OUTPUT]] [ ,...n ]

AS <SQL-выражения, составляющие тело процедуры>

3. Примеры

--3.1. Хранимая процедура, возвращающая сведения о поставках деталей

CREATE PROCEDURE sp_supplies

AS

SELECT supplier_name, detail_name, supply.supply_quantity, supply_date

FROM supply JOIN supplier ON supply.supplier_id = supplier.supplier_id

JOIN detail ON supply.detail_id = detail.detail_id

--Вызов процедуры sp_supplies:

EXECUTE sp_supplies

--3.2. Хранимая процедура, возвращающая сведения о поставках деталей за определенный интервал времени

CREATE PROCEDURE sp_date_supplies @start DATETIME, @end DATETIME

AS

SELECT supplier_name, detail_name, supply.supply_quantity, supply_date

FROM supply JOIN supplier ON supply.supplier_id = supplier.supplier_id

JOIN detail ON supply.detail_id = detail.detail_id

WHERE supply_date BETWEEN @start AND @end

--Вызов процедуры sp_date_supplies:

EXEC sp_date_supplies '01.01.2008', '17.11.2008'

--или

EXEC sp_date_supplies @end = '17.11.2008', @start = '01.01.2008'

--3.3. Процедура, добавляющая сведения в таблицу деталей

CREATE PROC sp_add_detail

@name VARCHAR (50) = 'Не задано',

@weight NUMERIC (10, 2),

@mat_id INT

AS

INSERT INTO detail (detail_name, weight, material_id)

VALUES (@name, @weight, @mat_id)

--Вызов процедуры sp_add_detail:

EXEC sp_add_detail 'Подшипник', 120, 2

--или

EXEC sp_add_detail @weight = 0.2, @mat_id = 1

--3.4. Процедура, возвращающая название материала, из которого изготовлено больше всего деталей

CREATE PROCEDURE most_popular_material

@name VARCHAR (50) OUTPUT,

@quantity INT OUTPUT

AS

SELECT @name = material_name, @quantity = COUNT (detail_id)

FROM material m JOIN detail d

ON m.material_id = d.material_id

GROUP BY material_name

ORDER BY COUNT (detail_id)

--Вызов процедуры most_popular_material:

DECLARE @material VARCHAR (50),

       @quantity INT

EXEC most_popular_material

@name = @material OUTPUT,

@quantity = @quantity OUTPUT

SELECT 'Большинство деталей (' + CAST (@quantity AS VARCHAR) + ' шт.) сделано из материала ' + @material

GO

--3.5. Процедура, реализующая функцию каскадного удаления на связь между таблицами материалов и деталей

CREATE PROC sp_delete_material @material_id INT

AS

IF (NOT EXISTS (SELECT * FROM detail WHERE material_id = @material_id))

BEGIN

 DELETE FROM material WHERE material_id = @material_id

 RETURN (0)

END

ELSE

BEGIN

 DELETE FROM detail WHERE material_id = material_id

 IF (@@ERROR = 0)

  BEGIN

   DELETE FROM material WHERE material_id = @material_id

   RETURN (0)

  END

 ELSE RETURN (1)

END

--Вызов процедуры sp_delete_material:

DECLARE @result INT

EXEC @result = sp_delete_material 6

IF @result = 0

PRINT 'Материал удален успешно'

ELSE

PRINT 'Не получилось  :('

GO


 

А также другие работы, которые могут Вас заинтересовать

45004. ИЗУЧЕНИЕ ЯВЛЕНИЯ ВНЕШНЕГО ФОТОЭФФЕКТА. ОПРЕДЕЛЕНИЕ ПОСТОЯННОЙ ПЛАНКА 224.5 KB
  Снять зависимость задерживающего напряжения от частоты излучения. Поглощение оптического излучения веществом часто сопровождается электрическими явлениями которые получили название фотоэлектрического фотоэффекта. ВНЕШНИМ ФОТОЭФФЕКТОМ называется явление испускания электронов веществом под действием электромагнитного излучения. Характер зависимости фототока I от разности потенциалов между анодом и катодом U при постоянной интенсивности падающего на фотокатод монохроматического излучения приведен на Рис .
45005. ДИСПЕРСИЯ СВЕТА 493.5 KB
  Измерить показатели преломления материала призмы для различных длин волн спектра ртутной лампы. Построить зависимость показателя преломления материала призмы от длины волны света.Показатель преломления. Абсолютный показатель преломления вещества равен отношению фазовой скорости света в вакууме к фазовой скорости света в веществе: n = c v.
45006. ОСНОВЫ РЕФРАКТОМЕТРИЧЕСКОГО АНАЛИЗА 295 KB
  Изучение законов преломления и отражения света и методики измерения показателя преломления.Определение зависимости показателя преломления от концентрации глицерина поваренной соли в водном растворе. Законы преломления и отражения света. Аналогично вводятся угол отражения угол β и угол преломления угол γ.
45007. ОПТИЧЕСКИЕ ИЗМЕРЕНИЯ С ПОМОЩЬЮ ГОНИОМЕТРА Г-5 542 KB
  Измерить углы между гранями стеклянной призмы. Измерение углов призмы методом отражения. Схема измерения углов призмы методом отражения углы между нормалями к граням призмы. Призму устанавливают таким образом чтобы пучок света идущий из коллиматора отражаясь от одной из граней призмы давал в перекрестии сетки окуляра изображение щели...
45008. ИЗУЧЕНИЕ ВРАЩЕНИЯ ПЛОСКОСТИ ПОЛЯРИЗАЦИИ 412 KB
  Атомы излучают световые волны независимо друг от друга поэтому световая волна излучаемая телом в целом в течение некоторого времени наблюдения характеризуется всевозможными равновероятными колебаниями светового вектора рис. рис. Волна называется поляризованной по кругу или волной с циркулярной поляризацией если конец вектора E описывает в фиксированной плоскости перпендикулярной направлению распространения волны окружность рис. Рис.
45009. АНАЛИЗ ПОЛЯРИЗАЦИИ ЛАЗЕРНОГО СВЕТА 664 KB
  Изучить типы поляризации света и методы их описания. Ознакомиться с методикой анализа поляризации света. Провести анализ поляризации лазерного излучения. Определить угол Брюстера и показатель преломления стекла на длине волны излучения лазера.
45010. Дифракция Фраунгофера 481 KB
  Цель работы: изучение дифракции Фраунгофера на одной щели и на дифракционной решетке. Основные положения дифракции света. Необходимо отметить также что при дифракции за препятствием возникает перераспределение светового потока. Однако принцип Гюйгенса не дает информации об интенсивности волн распространяющихся в различных направлениях и не объясняет перераспределение светового потока при дифракции.
45011. ИЗУЧЕНИЕ ПРОЦЕССА ПОГЛОЩЕНИЯ СВЕТА ВЕЩЕСТВОМ 247.5 KB
  Ознакомиться с механизмом поглощения света изучить основные закономерности поглощения света веществом. ОСЛАБЛЕНИЕ СВЕТА Опыт показывает что при прохождении света через слой вещества его интенсивность уменьшается. Этот факт является результатом взаимодействия электромагнитного излучения с веществом при котором происходит поглощение и рассеяние света а также отражения света на границах раздела различных сред.
45012. Интерференция света и метод определения кривизны линзы с помощью интерференционных полос равной толщины 272 KB
  Возникновение интерференции связано во-первых с тем что для векторов напряженности электрических полей описывающих электромагнитные волны выполняется принцип суперпозиции. Так при наложении двух волн каждая из которых создает в точке наблюдения соответственно электрические поля напряженностью E1 и E2 результирующая напряженность в точке наложения будет равна: Ep = E1 E2 1 Во-вторых возникновение интерференции связано с тем что...