Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / ЛЕКЦІЯ 13.ppt
Скачиваний:
28
Добавлен:
30.05.2020
Размер:
93.7 Кб
Скачать

ЛЕКЦІЯ 13

ТЕМА: Курсори: принципи роботи

План

1 Поняття курсору

2 Реалізація курсорів в середовищі MS SQL Server

3 Управління курсором в середовищі MS SQL Server

Оголошення курсору Відкриття курсору Вибірка даних з курсору Зміна і видалення даних Закриття курсору

Курсор в SQL

це область в пам'яті бази даних, яка призначена для зберігання останнього оператора SQL

використовуються для вибору з бази даних деякої підмножини збереженої в ній інформації

деякі з них неявно створюються сервером бази даних, тоді як інші визначаються програмістами

Дії при роботі з курсорами

створення або оголошення курсору ;

відкриття курсору, тобто наповнення його даними, які зберігаються в багаторівневій пам'яті ;

вибірка з курсору і зміна з його допомогою рядків даних;

закриття курсору, після чого він стає неприступним для призначених для користувача програм;

звільнення курсору, тобто видалення курсору як об’єкту, оскільки його закриття необов’язково звільняє асоційовану з ним пам'ять.

Види курсорів

курсори SQL застосовуються в основному усередині тригерів, збережених процедур і сценаріїв;

курсори серверу діють на сервері і реалізують програмний інтерфейс додатків для ODBC, OLE DB, DB_Library;

курсори клієнта реалізуються на самому клієнті. Вони вибирають весь результуючий набір рядків з серверу і зберігають його локально, що дозволяє прискорити операції обробки даних за рахунок зниження втрат часу на виконання мережних операцій.

Категорії курсорів

Послідовні дозволяють вибирати дані тільки в одному напрямі – від початку до кінця.

Прокручувані – надають можливість переміщення в обох напрямах і перехід до довільного рядка результуючого набору курсору.

Різновиди курсорів

Статичні курсори забезпечують стабільний погляд на дані. Вони застосовні для систем "складування" інформації: додатків для систем звітності або для статистичних і аналітичних цілей. Крім того, статичний курсор краще за інші справляється з вибіркою великої кількості даних.

Динамічний курсор підтримує дані в "живому" стані. При використовуванні динамічних курсорів не створюється повна копія початкових даних, а виконується динамічна вибірка з початкових таблиць тільки при зверненні користувача до тих або інших даних.

Курсор, керований набором ключів ідентифікує записи на момент вибірки, і тим самим відстежує зміни. Такий тип курсору корисний при реалізації прокрутки назад – тоді додавання і видалення рядів не видні, поки інформація не оновиться, а драйвер вибирає нову версію запису, якщо в неї були внесені зміни.

Послідовні курсори не дозволяють виконувати вибірку даних у зворотному напрямі. Користувач може вибирати рядки тільки від початку до кінця курсору .

Управління курсором

DECLARE – створення або оголошення курсору ;

OPEN – відкриття курсору, тобто наповнення його даними;

FETCH – вибірка з курсору і зміна рядків даних за допомогою курсору;

CLOSE – закриття курсору ;

DEALLOCATE – звільнення курсору, тобто видалення курсору як об'єкту.

Створення курсору

DECLARE ім”я_курсору [INSENSITIVE] [SCROLL] CURSOR

FOR SELECT_оператор

[FOR { READ_ONLY | UPDATE [Ім”я_колонки[,...n]]}]

Приклади

Приклад 1. Оголошення курсору

DECLARE abc CURSOR SCROLL FOR

SELECT * FROM Клієнт

Приклад 2. Використовування змінної для оголошення курсору.

DECLARE @MyCursor CURSOR

SET @MyCursor = CURSOR LOCAL SCROLL FOR

SELECT * FROM Клієнт

Соседние файлы в папке лекции