Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИПК_Занятия_ОПБД / Lectures_16-17.pptx
Скачиваний:
14
Добавлен:
15.04.2015
Размер:
2.98 Mб
Скачать

Изменения данных, сделанные в курсоре, невидимы другим пользователям до тех пор, пока курсор не будет подтвержден (committed).

21

Последовательный курсор

(forward-only cursor) не разрешает

выполнять выборку данных в

обратном направлении. Пользователь может выбирать

строки данных только от начала к

концу курсора.

22

Последовательный курсор

не хранит набор всех строк.

Строки считываются из БД, как только они выбираются в курсоре. Это позволяет динамически отражать все изменения, вносимые пользователями в БД с помощью команд INSERT, UPDATE, DELETE. В курсоре видно

самое последнее состояние данных.

23

Ключевой курсор или курсор, зависящий от набора ключей (keyset- driven cursor) построен на основе уникальных идентификаторов.

Множество всех уникальных идентификаторов (ключей) строк таблиц БД называется набором ключей. Ключевой курсор - набор ключей, идентифицирующих строки полного результирующего набора курсора.

24

Набор ключей строится в системной БД temdb.

Сервер блокирует строки исходных

таблиц только на время составления

таблицы ключей.

Так как сохраняется информация только о ключевых столбцах строк, включенных в полный результирующий набор курсора, ключевые курсоры

отражают все изменения, вносимые

другими пользователями.

25

Строки, добавленные после открытия

курсора, не будут показаны в курсоре, даже если они удовлетворяют условиям выборки.

Строки, включенные в курсор, но

удаленные другими пользователями, будут показаны как поврежденные (row missing).

26

При работе с курсором можно выделить пять основных операций:

1. Создание курсора

До использования курсора его нужно создать. Это напоминает предварительное объявление переменной перед ее использованием.

27

Объявление курсора определяет:

тип и режим его работы; инструкцию SELECT, поставляющую ему данные.

При объявлении курсора никакие

данные не извлекаются. Курсор SQL-92 объявляется с

помощью инструкции CURSOR FOR:

Единственный случай, когда инструкция DECLARE не

требует амперсанда.

28

Расширенный курсор T-SQL объявляется аналогичным образом:

29

2. Открытие курсора

Сразу после создания курсор не содержит никаких данных. Операция открытия курсора наполняет курсор

данными.

При открытии курсора извлекаются данные, которыми он и заполняется:

30

Соседние файлы в папке ИПК_Занятия_ОПБД