Резюме 25

Команды SQL вкладываются в процедурные языках, чтобы объединить силы двух подходов. Некоторые дополянительные средства SQL необходимы, чтобы выполнить эту работу. Вложенные команды SQL транслируемые программой, называемой прекомпилятором, в форму пригодную для использования транслятором главного языка, и исполяьзуемые в этом главном языке, как вызовы процедуры к подпрограммам которые создает прекомпилятор, называются — модулями доступа. ANSI поддерживает вложение SQL в языки: ПАСКАЛЬ, ФОРТРАН, КОБОЛ, и PL/I. Другие языки также используются, особенно Си. В попытке кратко описать вложенный SQL, имеются наиболее важные места в этой главе:

Все вложенные команды SQL начинаются словами EXEC SQL и заканчиваются способом который зависит от используемого главного языка.
Все главные переменные доступные в командах SQL, должны быть объявлены в разделе объявлений SQL прежде, чем они будут использованы.
Всем главным переменным должно предшествовать двоеточие когда они используются в команде SQL.
Запросы могут сохранять свой вывод непосредственно в главных переменных, Используя предложение INTO, если и только если, они выбирают единственную строку.
Курсоры могут использоваться для сохранения вывода запроса, и доступа к одной строке в каждый момент времени. Курсоры бывают объявлеными ( если определяют запрос в котором будут содержаться), открытыми( если выполяняют запрос ), и закрытыми ( если удаляют вывод запроса из курсора ). Если курсор открыт, команда FETCH, используется чтобы перемещать его по очереди к каждой строке вывода запроса.
Курсоры являются модифицируемыми или только-чтение. Чтобы стать модифицируемым, курсор должен удовлетворять всем критериям которым удовлетворяет просмотр; кроме того, он не должен использовать предложений ORDER BY или UNION, которые в любом случае не могут использоваться просмотрами. Не модифицируемый курсор является курсором только-чтение.
Если курсор модифицируемый, он может использоваться для определения, какие строки задействованы вложенными командами UPDATE и DELETE через предложение WHERE CURRENT OF. DELETE или UPDATE должны быть вне той таблицы к которой кур- сор обращаетс в запросе.
SQLCODE должен быть объявлен как переменна числового типа для каждой программы которая будет использовать вложенный SQL. Его значение устанавливается автоматически после выполянения каждой команды SQL.
Если команда SQL выполянена как обычно, но не произвела вывода или ожидаемого изменения в базе данных, SQLCODE = 100. Если команда произвела ошибку, SQLCODE будет равняться некоторому аппаратно- определенному отрицательному числу которое описывает ошибку. В противном случае, SQLCODE = 0.
Предложение WHENEVER может использоваться для определения действия которое нужно предпринять когда SQLCODE = 100 (не найдено) или когда SQLCODE равен отрицательному числу ( SQLERROR ). Действием может быть или переход к некоторой определенной метке в программе ( GOTO ) или отсутствие какого-либо действия вообще( продолжить). Последнее, установлено по умолчанию.
Числовые переменные могут также использоваться как переменные indicator. Переменные indicator следуют за другим именами переменных в команде SQL, без каких бы то ни было посторонних символов кроме (необязательного) слова INDICATOR.
Обычно, значение переменной indicator = 0. Если команда SQL пытается поместить NULL значение в главную переменную которая использует indicator, indicator будет установлен в отрицательное значение. Этот факт можно использоваться чтобы предотвращать ошибки, и для помечания NULL значений SQL для специальной обработки их в глав- ной программе.
Переменна indicator может использоваться для вставки NULL значений в команды SQL — INSERT или UPDATE. Она также может принимать поляожительное значение указывающее на длину отбрасываемой части строки не поместившейся в предельные границы какой- нибудь переменной, куда эта строка помещалась.

‹ Другое использование переменной INDICATOR
Вверх
ПРИЛОЖЕНИЕ В типы данных в SQL ›

Добавить комментарий

Adblock
detector