Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
управление данными методичка.docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
522.34 Кб
Скачать

Транзакции и оператор Raiseerror

Триггер всегда выполняется внутри неявной транзакции. Поэтому незачем явно помещать тело триггера между операторами BEGIN TRANSACTION и COMMIT TRANSACTION.

Единственный управляющий оператор транзакции, который не выполняется автоматически, это оператор ROLLBACK TRANSACTION. Отменить операцию удаления, обновления или добавления данных можно с помощью явного оператора ROLLBACK TRANSACTION.

Пример: Цена (Price) должна быть больше нуля. Для определения значения цены в обновляемой или добавляемой записи в триггере используется таблица inserted.

ALTER Trigger trgtblMenuPriceUI

On dbo.tblMenu

For Insert, Update

As

set nocount on

If UPDATE(Price)

IF(SELECT Count(*) FROM inserted WHERE Price <= 0)

> 0

BEGIN

RAISERROR 50001 'Цена должна быть больше 0'

ROLLBACK TRANSACTION

END

Если оказывается, что значение поля Price меньше или равно 0, транзакция отменяется с помощью оператора ROLLBACK TRANSACTION.

В данном примере с помощью оператора RAISEERROR генерируется ошибка SQL Server. Эта ошибка передается клиенту также, как если бы ее сгенерировал сам SQL Server. Одна из форм записи этого оператора:

RAISERROR код_ошибки сообщение_об_ошибке

Код ошибки должен быть целым числом, а сообщение об ошибке – строкой. Чтобы коды ошибок не конфликтовали со встроенными ошибками SQL Server, назначайте им значения выше 50 000.

Защита проектов Access (adp)

Если вы работаете не с файлом базы данных Access (MDB), а с файлом проекта (ADP), система защиты Jet в вашем приложении не будет действовать.

Для защиты таблиц, хранимых процедур и других объектов SQL Server должна использоваться система защиты SQL Server.

Для защиты форм, отчетов, модулей можно удалить из проекта исходный код, конвертировав проект в MDE-файл. Сохранение базы данных в виде MDE-файла защищает формы и отчеты без требования регистрации пользователей и необходимости для разработчика создавать и поддерживать учетные записи пользователей и разрешения, требуемые для защиты на уровне пользователей.

Для защиты страниц доступа к данным можно опубликовать их на защищенном Web-сервере.

Содержание работы

  1. Создайте проект Access

  2. Создайте хранимую процедуру с входными параметрами

  3. Создайте две хранимые процедуры, первая из которых возвращает параметры, а вторая принимает и обрабатывает эти параметры.

  4. Создайте для одной из таблиц триггер.

  5. Протестируйте работу хранимых процедур и триггера.

  6. Одну из страниц доступа, разместите на Web-сервере.

  7. Протестируйте страницу в браузере.

Содержание отчета

  1. Запишите SQL код хранимых процедур и триггеров

  2. Приведите ответы на контрольные вопросы

Контрольные вопросы

  1. В каких случаях для приложения целесообразно использовать архитектуру клиент-сервер?

  2. Чем отличается хранимая процедура от запроса, хранящегося в MDB файле?

  3. Для чего предназначены триггеры?

  4. Как организуется защита проекта Access?

Приложение 1

Схема данных базы данных “Деканат”

Приложение 2.

Индивидуальные задания

1. Автоматизация Библиотеки.

Описание основных сущностей

1. Информации о книгах - учебниках

Шифр

Автор

Название

Издание Число экземпляров всего

Число свободных экземпляров

2. Для каждой книги отдельно указать кому выдана (группа и фамилия)

и до какого срока, а также состояние книги. Состояние книги может быть плохим и хорошим.

3. Книги должны быть объединены по темам

"Высшая Математика"

"Программирование"

"Физика" и т.д.

4. Список читателей библиотеки

Список групп университета с числом человек в группе

Фамилии студентов