Переменные встроенного SQL
Модуль основного языка со встроенным SQL может содержать три вида переменных:
-
общие для предложений встроенного SQL и операторов основного языка переменные. Эти переменные обеспечивают связь, необходимую для обмена данными между пространством имен модуля основного языка и пространством имен СУБД ЛИНТЕР. Они называются переменными основного языка. Переменные основного языка можно использовать одновременно в предложениях встроенного SQL и в C/C++ операторах либо только в предложениях встроенного SQL, либо только в C/C++ операторах;
-
переменные, используемые только в предложениях встроенного SQL (собственные переменные встроенного SQL – курсоры, соединения, дескрипторы, контексты, имена модулей). Тип и структура таких переменных известна только прекомпилятору. После прекомпиляции они заменяются на соответствующие языку C/C++ структуры данных и становятся доступными основной программе;
-
переменные, используемые только в операторах C/C++ (собственные переменные основного языка: скалярные переменные, массивы, структуры и объединения). Этот вид переменных прекомпилятор встроенного SQL не распознает и не обрабатывает. Они используются только основным языком;
-
переменные прекомпилятора всегда локальны относительно модуля основного языка (исключения составляют неявная переменная – соединение по умолчанию и псевдопеременные
SQLCODE
,SQLSTATE…
). Подробнее см. в подразделе «Многомодульные приложения»; -
относительно модуля встроенного SQL переменные могут быть локальными и глобальными;
-
глобальными являются все переменные, описанные с помощью операторов
DECLARE
илиPREPARE
вне модулей встроенного языка; -
локальными являются все переменные, описанные внутри модуля встроенного SQL;
-
все глобальные переменные встроенного SQL в одном модуле основного языка должны иметь уникальные имена. В разных модулях основного языка, объединяемых впоследствии в одну программу (библиотеку), глобальные переменные могут иметь одинаковые имена, но в каждом модуле основного языка будет использоваться определенная именно в этом модуле глобальная переменная встроенного языка. Имена переменных встроенного SQL могут совпадать с зарезервированными словами директив языков SQL и C/C++ и переменных основного языка, но должны отличаться от зарезервированных слов встроенного SQL.