Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
управление данными.doc
Скачиваний:
46
Добавлен:
11.03.2015
Размер:
1.51 Mб
Скачать

Транзакции и оператор 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. Литвин П., Гетц К., Гунделой М. Разработка корпоративных приложений в Access 2002. Для профессионалов – СПб.:Питер:BHV, 2003. – 848 c.

  2. Мартин Грабер. Введение в SQL. –М.:ЛОРИ, 1996.-375 С.

  3. Михеева В.Д., Харитонова И.А. Microsoft Access 2002. – СПб.:БХВ – Перербург, 2002. – 1040 с.

  4. Дейт К.Дж. Введение в системы баз данных. –К.: Диалектика, 1998. – 784 с.

  5. Карпова Т. Базы данных: Модели, разработка, реализация. –СПб.:Питер, 2001. – 304 с.

Приложение 1

Схема данных базы данных «Деканат»

Приложение 2

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

Задача - спроектировать базу данных и реализовать перечисленные ниже функции.

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

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

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

Шифр

Автор

Название

Издание

Число экземпляров всего

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

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

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

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

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

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

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

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

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

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