Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Курсоры

Операции в реляционной базе данных выполняются над множеством строк. Набор строк, возвращаемый инструкцией SELECT, содержит все строки, которые удовлетворяют условиям, указанным в предложении WHERE инструкции. Такой полный набор строк, возвращаемых инструкцией, называется результирующим набором. Приложения, особенно интерактивные, не всегда эффективно работают с результирующим набором как с единым целым. Им нужен механизм, позволяющий обрабатывать одну строку или небольшое их число за один раз. Курсоры являются расширением результирующих наборов, которые предоставляют такой механизм.

Курсоры позволяют усовершенствовать обработку результатов:

  • позиционируясь на отдельные строки результирующего набора;

  • получая одну или несколько строк от текущей позиции в результирующем наборе;

  • поддерживая изменение данных в строках в текущей позиции результирующего набора;

  • поддерживая разные уровни видимости изменений, сделанных другими пользователями для данных, представленных в результирующем наборе;

  • предоставляя инструкциям Transact-SQL в сценариях, хранимых процедурах и триггерах доступ к данным результирующего набора.

Запрос курсора

Microsoft SQL Server 2005 поддерживает два метода запроса курсоров:

  • Transact-SQL – который поддерживает синтаксис использования курсоров по стандарту SQL-92;

  • API-функции курсоров базы данных.

SQL Server поддерживает функциональность курсоров для следующих API-интерфейсов баз данных:

  • ADO (Microsoft ActiveX Data Object);

  • OLE DB;

  • открытый интерфейс доступа к базам данных (ODBC).

В приложении всегда используется один из интерфейсов.

Обработка курсоров

Курсоры Transact-SQL и API-курсоры имеют различный синтаксис, но для всех курсоров SQL Server используется одинаковый цикл обработки:

  • связать курсор с результирующим набором инструкции Transact-SQL и задать его характеристики (например, возможность обновления строк);

  • выполнить инструкцию Transact-SQL для заполнения курсора;

  • получить в курсор необходимые строки; операция получения в курсор одной и более строк называется выборкой; выполнение серии выборок для получения строк в прямом или обратном направлении называется прокруткой;

  • при необходимости выполнить операции изменения (обновления или удаления) строки в текущей позиции курсора;

  • закрыть курсор.

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

Преимущества использования курсоров

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

  • эффективность – оптимизатор запросов автоматически выбирает надлежащий план запросов, поэтому разработчику не нужно придумывать сложный алгоритм для доступа к запрашиваемым данным;

  • адаптируемость – по мере добавления или удаления изменений данных либо индексов оптимизатор запросов автоматически адаптирует поведение курсоров с помощью альтернативных планов;

  • меньшее количество ошибок – разработчику не требуется обрабатывать данные и алгоритмы в приложении, поскольку необходимые операции поддерживаются SQL Server.

Microsoft SQL Server 2005 поддерживает следующие типы курсоров:

  • базовая таблица;

  • статические;

  • последовательные;

  • последовательные «только для чтения»;

  • управляемые набором ключей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]