Главная страница

Лабораторные работы БД. Отчет по лабораторной работе. 2 Используя ms access перенести полученную модель в бд, используя таблицы и схему данных


Скачать 5.14 Mb.
НазваниеОтчет по лабораторной работе. 2 Используя ms access перенести полученную модель в бд, используя таблицы и схему данных
АнкорЛабораторные работы БД
Дата29.03.2023
Размер5.14 Mb.
Формат файлаpdf
Имя файлаЛабораторные работы БД.pdf
ТипОтчет
#1022682
страница6 из 7
1   2   3   4   5   6   7
Удаление хранимой процедуры
DROP PROCEDURE {имя_процедуры} [,...n]
Выполнение хранимой процедуры
Для выполнения хранимой процедуры используется команда:
[[
EXEC
[
UTE
]
имя_процедуры
[;
номер
]
[[
@
имя_параметра
=]{
значение
|
@
имя_переменной
}
[
OUTPUT
]|[
DEFAULT
]][,...
n
]
Если вызов хранимой процедуры не является единственной командой в пакете, то присутствие команды EXECUTE обязательно. Более того, эта команда требуется для вызова процедуры из тела другой процедуры или триггера.
Использование ключевого слова OUTPUT при вызове процедуры разрешается только для параметров, которые были объявлены при создании процедуры с ключевым словом OUTPUT.
Когда же при вызове процедуры для параметра указывается ключевое слово DE-
FAULT, то будет использовано значение по умолчанию. Естественно, указанное слово
DEFAULT разрешается только для тех параметров, для которых определено значение по умолчанию.
Из синтаксиса команды EXECUTE видно, что имена параметров могут быть опу- щены при вызове процедуры. Однако в этом случае пользователь должен указывать зна- чения для параметров в том же порядке, в каком они перечислялись при создании про- цедуры. Присвоить параметру значение по умолчанию, просто пропустив его при пере- числении, нельзя. Если же требуется опустить параметры, для которых определено зна- чение по умолчанию, достаточно явного указания имен параметров при вызове храни- мой процедуры. Более того, таким способом можно перечислять параметры и их зна- чения в произвольном порядке.
Отметим, что при вызове процедуры указываются либо имена параметров со значениями, либо только значения без имени параметра. Их комбинирование не допус- кается.
Использование RETURN в хранимой процедуре

Позволяет выйти из процедуры в любой точке по указанному условию, а также поз- воляет передать результат выполнения процедуры числом, по которому можно судить о качестве и правильности выполнения процедуры. Пример создания процедуры без пара- метров:
CREATE
PROCEDURE
Count_Books
AS
Select count
(
Code_book
)
from
Books
Go
Задание 1. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите ее с помощью ко- манды
EXEC
Count_Books
Проверьте результат.
Пример создания процедуры c входным параметром:
CREATE
PROCEDURE
Count_Books_Pages @Count_pages as
Int
AS
Select count
(
Code_book
)
from
Books
WHERE
Pages
>=
@Count_pages
Go
Задание 2. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите ее с помощью ко- манды
EXEC
Count_Books_Pages
100
Проверьте результат.
Пример создания процедуры c входными параметрами:
CREATE
PROCEDURE
Count_Books_Title @Count_pages as
Int
, @Title
AS
Char
(
10
)
AS
Select count
(
Code_book
)
from
Books
WHERE
Pages
>=
@Count_pages
AND
Title_book
LIKE
@Title
Go
Задание 3. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите ее с помощью ко- манды
EXEC
Count_Books_Title
100
,
'П%'
Проверьте результат.
Пример создания процедуры c входными параметрами и выходным параметром:
CREATE
PROCEDURE
Count_Books_Itogo @Count_pages
Int
, @Title
Char
(
10
)
, @Itogo
Int
OUTPUT
AS
Select @Itogo
=
count
(
Code_book
)
from
Books
WHERE
Pages
>=
@Count_pages
AND
Title_book
LIKE
@Title
Go

Задание 4. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите с помощью набора команд:
Declare
@q
As
int
EXEC
Count_Books_Itogo
100
,
'П%'
,
@q
output
select
@q
Проверьте результат.
Пример создания процедуры c входными параметрами и RETURN:
CREATE
PROCEDURE
checkname @param int
AS
IF
(
SELECT
Name_author
FROM
authors
WHERE
Code_author
=
@param
)
=
'Пушкин А.С.'
RETURN
1
ELSE
RETURN
2
Задание 5. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите ее с помощью команд:
DECLARE
@return_status
int
EXEC
@return_status
=
checkname
1
SELECT
'Return Status'
=
@return_status
Пример создания процедуры без параметров для увеличения значения ключевого
поля в таблице Purchases в 2 раза:
CREATE
PROC
update_proc
AS
UPDATE
Purchases
SET
Code_purchase
=
Code_purchase
*
2
Процедура не возвращает никаких данных.
Задание 6. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите ее с помощью ко- манды
EXEC
update_proc
Пример процедуры с входным параметром для получения всей информации о кон-
кретном авторе:
CREATE
PROC
select_author @k
CHAR
(
30
)
AS
SELECT
*
FROM
Authors
WHERE
name_author
=
@k
Задание 7. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите ее с помощью команд:
EXEC
select_author
'Пушкин А.С.'
или select_author
@k
=
'Пушкин А.С.'
или
EXEC
select_author
@k
=
'Пушкин А.С.'

Пример создания процедуры с входным параметром и значением по умолчанию
для увеличения значения ключевого поля в таблице Purchases в заданное количе-
ство раза (по умолчанию в 2 раза):
CREATE
PROC
update_proc @p
INT
=
2
AS
UPDATE
Purchases
SET
Code_purchase
=
Code_purchase
*
@p
Процедура не возвращает никаких данных.
Задание 8. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите ее с помощью команд:
EXEC
update_proc
4
или
EXEC
update_proc
@p
=
4
или
EXEC
update_proc
--будет использовано значение по умолчанию.
Пример создания процедуры с входным и выходным параметрами. Создать про-
цедуру для определения количества заказов, совершенных за указанный период:
CREATE
PROC
count_purchases
@d1
SMALLDATETIME
, @d2
SMALLDATETIME
,
@c
INT
OUTPUT
AS
SELECT
@c
=
count
(
Code_purchase
)
from
Purchases
WHERE
Date_order
BETWEEN
@d1
AND
@d2
SET
@c
=
IS
NULL(
@c,
0
)
Задание 9. Создайте данную процедуру в разделе Stored Procedures базы данных
DB_Books через утилиту SQL server Management Studio. Запустите ее с помощью команд:
DECLARE
@c2
INT
EXEC
count_purchases ’
01
- jun
-
2006’
,

01
- jul
-
2006’
,
@c2
OUTPUT
SELECT
@c2
Варианты заданий к лабораторной работе
Общие положения
В утилите SQL Server Management Studio создать новую страницу для кода (кнопка
«Создать запрос»). Программно сделать активной созданную БД DB_Books с помощью оператора Use. Создать хранимые процедуры c помощью операторов Create procedure, причем самостоятельно определить имена процедур. Каждая процедура будет выполнять по одному SQL запросу. Причем код SQL запросов нужно изменить таким образом, чтобы в них можно было передавать значения полей, по которым осуществляется поиск.
Например, исходное задание и запрос:
/*Выбрать из справочника поставщиков (таблица Deliveries) названия компаний, теле- фоны и ИНН (поля Name_company, Phone и INN), у которых название компании (поле
Name_company) 'ОАО МИР'.
SELECT Name_company, Phone, INN FROM Deliveries WHERE
Name_company = 'ОАО МИР'
*/
--В данной работе будет создана процедура:
CREATE
PROC
select_name_company @comp
CHAR
(
30
)
AS

SELECT
Name_company, Phone,
IN
N
FROM
Deliveries
WHERE
Name_company
=
@comp
--Для запуска процедуры используется команда: EXEC select_name_company 'ОАО
МИР'
Список заданий
Задания выполнять для индивидуальной БД, созданной в лабораторной работе
№7(3).
Вариант 1
1.
Вывести список сотрудников, у которых есть хотя бы один ребенок.
2.
Вывести список детей, которым выдали подарки в указанный период.
3.
Вывести список родителей, у которых есть дети возрастом до 14 лет.
4.
Вывести информацию о подарках со стоимостью больше указанного числа, отсор- тированных по дате.
Вариант 2
1.
Вывести список приборов с указанным типом.
2.
Вывести количество отремонтированных приборов и общую стоимость ремонтов у указанного мастера.
3.
Вывести список владельцев приборов и количество их обращений, отсортирован- ный по количеству обращений по убыванию.
4.
Вывести информацию о мастерах с разрядом больше указанного числа или с датой приема на работу меньше указанной даты.
Вариант 3
1.
Вывести список цветков с указанным типом листа.
2.
Вывести список кодов продаж, по которым продано цветов на сумму больше ука- занного числа.
3.
Вывести дату продажи, сумму, продавца и цветок по указанному коду продажи.
4.
Вывести список цветов и сорт для цветов с высотой больше указанного числа или цветущий.
Вариант 4
1.
Вывести список лекарств с указанным показанием к применению.
2.
Вывести список дат поставок, по которым продано больше указанного числа од- ноименного лекарства.
3.
Вывести дату поставки, сумму, ФИО руководителя от поставщика и название ле- карства по коду поступления больше указанного числа.
4.
Вывести список лекарств и единицы измерения для лекарств с количеством в упа- ковке больше указанного числа или кодом лекарства меньше определенного зна- чения.
Вариант 5
1.
Вывести список сотрудников с указанной должностью.
2.
Вывести список списанного оборудования по указанной причине.
3.
Вывести дату поступления, название оборудования, ФИО ответственного и дату списания для оборудования, списанного в указанный период.
4.
Вывести список оборудования с указанным типом или с датой поступления больше определенного значения.

Вариант 6
1.
Вывести список блюд с весом больше указанного числа.
2.
Вывести список продуктов, в названии которых встречается указанный фрагмент слова.
3.
Вывести объем продукта, название блюда, название продукта с кодом блюда от указанного начального значения по определенному конечному значению.
4.
Вывести порядок приготовления блюда и название блюда с количеством углево- дов больше определенного значения или количеством калорий больше указанного значения.
Вариант 7
1.
Вывести список сотрудников с указанной должностью.
2.
Вывести список документов, в содержании которых встречается указанный фраг- мент слова.
3.
Вывести дату регистрации, тип документа, ФИО регистратора и название органи- зации для документов, зарегистрированных в указанный период.
4.
Вывести список зарегистрированных документов с определенным типом доку- мента или с датой регистрации больше указанного значения.
Вариант 8
1.
Вывести список сотрудников с указанной причиной увольнения.
2.
Вывести список документов с датой регистрации в указанный период.
3.
Вывести дату регистрации, причину увольнения, ФИО сотрудника для докумен- тов, зарегистрированных в указанный период.
4.
Вывести список зарегистрированных документов с кодом документа в указанном диапазоне.
Вариант 9
1.
Вывести список сотрудников, бравших отпуск указанного типа.
2.
Вывести список документов с датой регистрации в указанный период.
3.
Вывести дату регистрации, тип отпуска, ФИО сотрудника для документов, заре- гистрированных в указанный период.
4.
Вывести список зарегистрированных документов с кодом документа в указанном диапазоне.
Вариант 10
1.
Вывести список сотрудников с указанной должностью.
2.
Вывести список документов, в содержании которых встречается указанный фраг- мент слова.
3.
Вывести дату регистрации, тип документа, ФИО отправителя и название органи- зации для документов, зарегистрированных в указанный период.
4.
Вывести список зарегистрированных документов с указанным типом документа или с кодом документа меньше определенного значения.
Вариант 11
1.
Вывести список сотрудников, назначенных на указанную должность.
2.
Вывести список документов с датой регистрации в указанный период.
3.
Вывести дату регистрации, должность, ФИО сотрудника для документов, зареги- стрированных в указанный период.
4.
Вывести список зарегистрированных документов с кодом документа в указанном диапазоне.
Вариант 12

1.
Вывести список оборудования с указанным типом.
2.
Вывести список оборудования, которое брал в прокат определенный клиент.
3.
Вывести список лиц, бравших оборудование в прокат и количество их обращений, отсортированный по количеству обращений по убыванию.
4.
Вывести информацию о клиентах, отсортированных по адресам.
Вариант 13
1.
Вывести список поставщиков, отсортированный по количеству закупленного у них оборудования.
2.
Вывести список закупленного оборудования указанного типа.
3.
Вывести дату покупки, название оборудования, цену покупки, данные поставщика для оборудования, закупленного в указанный период.
4.
Вывести список оборудования с указанным типом или с датой поступления больше определенного значения.
Контрольные вопросы
1. Что такое хранимая процедура?
2. Где выполняются хранимые процедуры?
3. Как активизируются хранимые процедуры?
4. В чем преимущества использования хранимых процедур?
5. Какие типы хранимых процедур имеются в SQL Server?
6. Что такое триггер?
7. В чем преимущества использования триггеров?

Лабораторная работа 10(6)
СОЗДАНИЕ КЛИЕНТСКОЙ ЧАСТИ ПРИЛОЖЕНИЯ ДЛЯ ПРОСМОТРА,
РЕДАКТИРОВАНИЯ ДАННЫХ БД.
ВЫЗОВ ХРАНИМЫХ ПРОЦЕДУР ИЗ КЛИЕНТСКОЙ ЧАСТИ
СОЗДАНИЕ ОТЧЕТНЫХ ФОРМ В КЛИЕНТСКОМ ПРИЛОЖЕНИИ
Цель работы – научиться создавать клиентское приложение для работы с базой данных с применением встроенных инструментов на Visual C#, научиться создавать формы отчетных документов по данным БД
Содержание работы:
1. Выполнение всех заданий по ходу лабораторной работы.
2. Выполнение индивидуальных заданий.
Пояснения к выполнению работы
Для создания клиентского приложения на Visual C# ( примеры приводятся для версии Visual C# не менее 2005) используем пример базы данных c названием DB_Books.
1. В проекте выбираем меню Tools => Connect to DataBase.
2. В открывшемся окне в поле Data Source ставим Microsoft SQL Server, в поле Server Name – SQLEXPRESS, далее в поле Select or enter DB name выбирете имя БД, к которой будем подключаться, и нажмите OK.
3. Теперь открыв окно Server explorer можно увидеть подключенную
БД. Нажав на нее, в окне свойств копируем Connection String, она еще пригодится.
4. На форму добавить 5 компонентов типа DataGridView (переимено- вать компоненты на Purchases, Books, Authors, Deliveries, Publish).
5. Во вкладке Data выберем Add New Data Source. В появившемся окне выберем DataBase и нажмем Next. Выбераем нашу БД, жмем Next. В появившемся окне поставим галочку на пункте Table (выбераем все созданные таблици). Жмем Finish.
5. У каждой таблице DataGridView изменим свойство DataSource на соответствующие названию этой таблицы:

6. На основной форме (Form1) добавить компонент. В редакторе меню сделать первый пункт «Работа с таблицами» и в подменю пункты: «Авторы»,
«Книги», «Издательства», «Поставщики», «Поставки».
7. Создать пять форм, каждую из которых назвать: FormAuthors,
FormPurchases, FormBooks, FormDeliveries, FormPublish.
8. На основной форме в подпунктах меню в соответствующих методах
Click вызвать соответствующие формы с помощью кода: для FormAuthors:
FormAuthors myForm2 = new
FormAuthors
(); myForm2.Show(); для FormPurchases:
FormPurchases myForm3 = new
FormPurchases
(); myForm3.Show(); для FormBooks:
FormBooks myForm4 = new
FormBooks
(); myForm4.Show(); для FormDeliveries:
FormDeliveries myForm5 = new
FormDeliveries
(); myForm5.Show(); для FormPublish:
FormPublish myForm6 = new
FormPublish
(); myForm6.Show();
9. На формы FormAuthors, FormPurchases, FormBooks, FormDeliveries,
FormPublish добавить по паре компонент типа DataGridView и
BindingNavigator. Настроить у DataGridView свойство DataSource для связи с соответствующим источником данных. Затем необходимо настроить у
BindingNavigator свойство BindingSource для связи с созданной таблицей(значение должно совпадать со значением свойства элемента
DataGridView).

10. Проверить работу приложения.
11. На форму FormBooks добавить 3 компонента типа TextBox и 2 компонента ComboBox.
У 1-го компонента TextBox изменить свойства:
1   2   3   4   5   6   7


написать администратору сайта