Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Работа с динамическими операторами SQL через курсоры

Читайте также:
  1. D. 17.1.22.11). - Maндатарий может отказаться от договора так, чтобы за мандан­том осталось ненарушенным право с удобством устроить то же дело лично или через другого мандатария.
  2. II. Общее устройство, работа и управление ЭО-4124 с обратной лопатой.
  3. Microsoft Excel. Работа с макросами. Язык программирования Visual Basic for Application.
  4. Microsoft Excel. Работа с пакетом анализа. Построение простой регрессии
  5. Алгоритм расчета теплопередачи через непроницаемые стенки
  6. Анализ процессов (определяем существующую в обществе повестку дня и соотносим с нею разработанные альтернативы). Устанавливаем клиентную группу.
  7. Астрономическая, когда наблюдаемый объект находится на бесконечно большом расстоянии, ЭМВ проходят через всю толщу атмосферы и наблюдения выполняют с поверхности Земли.
  8. Аудиторная работа
  9. Аудиторная работа
  10. Аудиторная работа

Для использования таких операторов используется расширение механизма курсоров стандарта SQL. Во-первых, при определении курсора можно указывать не только литеральную спецификацию курсора, но и имя оператора, вводимое с помощью оператора PREPARE (в этом случае оператор PREPARE должен текстуально находиться выше оператора DECLARE). Тем самым полный синтаксис оператора DECLARE становится следующим:

<declare cursor> ::= DECLARE <cursor name> CURSOR FOR { <cursor specification> | <statement-name> }

Далее, поскольку для такого курсора в статике неизвестна информация о входных и выходных переменных включающей программы, то используется другая форма операторов OPEN и FETCH.

Полный синтаксис этих операторов становится следующим:

<open statement> ::= OPEN <cursor name> [USING { <host-vars-list> | DESCRIPTOR <descr-name> }]<fetch statement> ::= FETCH <cursor name> { INTO <fetch target list> ( USING <host-vars-list> ( USING DESCRIPTOR <descr-name> }

Как видно, предлагается два способа задания фактических входных и выходных параметров: прямое с указанием в операторах OPEN и/или FETCH списков имен переменных включающей программы и косвенное, когда число параметров и их адреса сообщаются через дополнительную структуру-дескриптор.

Первый способ предлагается использовать для работы с операторами выборки, для которых фиксирован набор формальных входных и выходных параметров. Точнее говоря, что касается выходных параметров, должны быть фиксированы число и типы элементов списка выборки.

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

Наиболее общей является конструкция "спецификация курсора". Курсор - это понятие языка SQL, позволяющее с помощью набора специальных операторов получить построчный доступ к результату запроса к БД. К табличным выражениям, участвующим в спецификации курсора, не предъявляются какие-либо ограничения. Как видно из сводки синтаксических правил, при определении спецификации курсора используются три дополнительных конструкции: спецификация запроса, выражение запросов и раздел ORDER BY.

Основная литература [1], стр.618-625

Дополнительная литература [2], стр.201-217

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

1. Как используется SQL при разработке приложении?

2. Оператор объявления курсора?

3. Оператор позиционной модификации?

4 Произведите настройку запроса?


<== предыдущая страница | следующая страница ==>
Оператор открытия курсора | ОСОБЕННОСТИ ФИЗИЧЕСКОЙ РЕАБИЛИТАЦИИ ПРИ ПОРАЖЕНИИ ЦЕНТРАЛЬНОЙ И ПЕРИФЕРИЧЕСКОЙ НЕРВНОЙ СИСТЕМЫ

Дата добавления: 2014-07-19; просмотров: 367; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.