Проектирование многопользовательской информационной системы "Университетская библиотека"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

а новое*/

UPDATE Отделы

SET табельный_номер_начальника=@Tab_Nom_New_Nach_otd /*меняем значение поля табельный номер начальника отдела на новое*/Номер_отдела = @Nom_otdela /*меняем только для записи, у которой значение номер_отдела равно искомому*/

11. Вставка в таблицу Списание экземпляров

CREATE PROCEDURE NewCpicanExzemplar

@Prichina varchar(20),

@Nom_act int,

@tab_nomer int,

@Shifr varchar(20)EXISTS (SELECT * FROM Списанные_книги WHERE Шифр = @Shifr)0EXISTS (SELECT * FROM Экземпляр WHERE Шифр = @Shifr)EXISTS (SELECT * FROM Сотрудники_библиотеки WHERE табельный_номер = @tab_nomer) INTO Списанные_книги VALUES (@Prichina, @Nom_act,@tab_nomer,@Shifr)

12. Вставка в таблицу Пользование библиотекой2

CREATE PROCEDURE NewPolzovanieBibliotekarej

@Tab_nomer int,

@data_vidachi datetime,

@data_priema datetime,

@Shifr varchar(20)EXISTS (SELECT * FROM Пользование_библиотекой1 WHERE Шифр = @Shifr AND Табельный_номер=@Tab_nomer)0EXISTS (SELECT * FROM Экземпляр WHERE Шифр = @Shifr)EXISTS (SELECT * FROM Сотрудники_библиотеки WHERE табельный_номер = @tab_nomer) INTO Пользование_библиотекой1 VALUES (@tab_nomer, @data_vidachi, @data_priema, @Shifr)

13. Вставка в таблицу Экземпляры

CREATE PROCEDURE NewExzemplar

@ISBN varchar(20),

@otm_o_cpicanii varchar(20),

@otm_o_zamene varchar(20),

@predmet varchar(20),

@Nom_otd int,

@Shifr varchar(20)EXISTS (SELECT * FROM Экземпляр WHERE Шифр = @Shifr)0EXISTS (SELECT * FROM Отделы WHERE Номер_отдела = @Nom_otd) AND EXISTS (SELECT * FROM Книга WHERE ISBN = @ISBN)INTO Экземпляр VALUES (@ISBN, @otm_o_cpicanii, @otm_o_zamene, @predmet, @Nom_otd, @Shifr)

14. Обновление таблицы Сотрудники_библиотеки

CREATE PROCEDURE UpdateCotpyd

@Tab_nom int,

@Fam varchar(20)EXISTS (SELECT * FROM Сотрудники_библиотеки WHERE табельный_номер = @Tab_nom)Сотрудники_библиотеки SET фамилия=@Fam табельный_номер = @Tab_nom

15. Вставка в таблицу Сотрудники_библиотеки

PROCEDURE NewSotrudnik

@Tab_nom int,

@Fam varchar(20),

@Name varchar(20),

@Sec_name varchar(20),

@data_rogd datetime,

@Dolgn varchar(20),

@Nom_otd intEXISTS (SELECT * FROM Сотрудники_библиотеки WHERE Табельный_номер = @Tab_nom)0EXISTS (SELECT * FROM Отделы WHERE Номер_отдела = @Nom_otd)

INSERT INTO Сотрудники_библиотеки VALUES (@Tab_nom,@Fam, @Name, @Sec_name, @data_rogd, @Dolgn, @Nom_otd)

 

3.5 T-SQL-определения курсоров

 

1. Курсор для просмотра информации о студентах и выдача информации об их количестве.

DECLARE curs1 CURSOR

GLOBAL /*Создается глобальный курсор, который будет существовать до закрытия данного соединения*/

SCROLL /*Создает прокручиваемый курсор*/

KEYSET /*Будет создан ключевой курсор*/

TYPE_WARNING

FOR

SELECT/*Какие поля будут показаны в курсоре*/

Студенты. Читательский_номер, Студенты. Имя, Студенты. Фамилия, Студенты. Отчество, Студенты.год_поступления,

Студенты.год_окончания, Студенты.факультет, Студенты.специальность, Студенты.форма_обучения, Студенты.номер_приказа

FROM Студенты /*Из какой таблицы выбираются данные*/

FOR READ ONLY /*Только для чтения*/

open global curs1 /*открываем глобальный курсор*/

DECLARE /*объявляем переменную*/

@@Counter int

SET @@Counter =@@CURSOR_ROWS /*присваиваем ей число рядов курсора*/

Select @@Counter /*выводим результат на экран*/

CLOSE curs1/*закрываем курсор*/

DEALLOCATE curs1/*освобождаем курсор*/

2. Курсор для просмотра заказов и подсчета общего количества заказанных книг.

DECLARE curs2 CURSORSCROLL KEYSET

TYPE_WARNING /*Сервер будет информировать пользователя о неявном изменении типа курсора, если он несовместим с запросом SELECT*/

FOR/*Что будет показано в курсоре*/

Преподаватели. Фамилия, Преподаватели. Имя, Преподаватели. Отчество, Книга. Автор, Книга. Название, Заказы. Количество, Книга. ЦенаКнига INNER JOIN (Преподаватели INNER JOIN Заказы ON Преподаватели. Читательский_номер = Заказы. Читательский_номер)

ON Книга.ISBN = Заказы.ISBN

FOR UPDATE/*Курсор для обновления*/

open global curs2

@@Fam varchar(20),

@@Name varchar(20),

@@Sec_name varchar(20),

@@Autor varchar(20),

@@Nazv varchar(20),

@@Kolvo int,

@@Cena int,

@@Counter int,

@@Var1 int@@Counter = 1 @@Var1 = 0

WHILE @@COUNTER< @@CURSOR_ROWS /*Пока счетчик просмотренных строк меньше их общего числа*/

BEGIN

FETCH curs2 INTO @@Fam,@@Name,@@Sec_name,@@Autor,@@Nazv,@@Kolvo /*Просматриваем строки и значения*/

SET @@Counter =@@Counter +1 /*Меняем значение счетчика при переходе к другой строке*/

SET @@Var1=@@Var1+@@Kolvo *@@Cena /*Суммируем стоимости заказанных книг*/

END

Select @@Var1 /*выводим сумму на экран*/

CLOSE curs2curs2

3. Удаление преподавателя.

DECLARE curs5 CURSORSCROLL KEYSET SELECT Преподаватели.читательский_номер,

Преподаватели. Имя, Преподаватели. Отчество, Преподаватели. Фамилия, Преподаватели.должность

FROM Преподаватели

FOR UPDATE

open curs5

@@Chit_nom int,

@@Name varchar(20),

@@Sec_name varchar(20),

@@Fam varchar(20),

@@Dolgn varchar(20),

@@Counter int@@Counter = 0@@COUNTER< @@CURSOR_ROWScurs5@@Chit_nom=NULL@@Name=NULL@@Sec_name=NULL@@Fam=NULL@@Dolgn=NULLCURRENT OF curs5@@Counter =@@Counter +1curs5

3.Пользование студентов

DECLARE curs1 CURSORSCROLL KEYSET TYPE_WARNING

SELECT

Студенты. Читательский_номер, Студенты. Имя, Студенты. Фамилия, Студенты. Отчество, Студенты.год_поступления,

Студенты.год_окончания, Студенты.факультет, Студенты.специальность, Студенты.форма_обучения, Студенты.номер_приказа

FROM СтудентыREAD ONLYglobal curs1

@@Counter int@@Counter =@@CURSOR_ROWS@@Countercurs1curs1

5. Информация о студентах и их количестве

DECLARE curs1 CURSORSCROLL KEYSET TYPE_WARNING

FOR

Студенты. Читательский_номер, Студенты. Имя, Студенты. Фамилия, Студенты. Отчество, Студенты.год_поступления,

Студенты.год_окончания, Студенты.факультет, Студенты.специальность, Студенты.форма_обучения, Студенты.номер_приказа

FROM СтудентыREAD ONLYglobal curs1

@@Counter int@@Counter =@@CURSOR_ROWS@@Countercurs1curs1

 

3.6 Описание клиентских приложений

 

При разработке клиентского приложения были созданы следующие формы.

При запуске приложения появляется форма Регистрация (рис. 13). на форме присутствует кнопк Вход, нажатие на которую открывает другие формы. Код кнопк?/p>