Переменные встроенного SQL

Модуль основного языка со встроенным SQL может содержать три вида переменных:

  1. общие для предложений встроенного SQL и операторов основного языка переменные. Эти переменные обеспечивают связь, необходимую для обмена данными между пространством имен модуля основного языка и пространством имен СУБД ЛИНТЕР. Они называются переменными основного языка. Переменные основного языка можно использовать одновременно в предложениях встроенного SQL и в C/C++ операторах либо только в предложениях встроенного SQL, либо только в C/C++ операторах;

  2. переменные, используемые только в предложениях встроенного SQL (собственные переменные встроенного SQL – курсоры, соединения, дескрипторы, контексты, имена модулей). Тип и структура таких переменных известна только прекомпилятору. После прекомпиляции они заменяются на соответствующие языку C/C++ структуры данных и становятся доступными основной программе;

  3. переменные, используемые только в операторах C/C++ (собственные переменные основного языка: скалярные переменные, массивы, структуры и объединения). Этот вид переменных прекомпилятор встроенного SQL не распознает и не обрабатывает. Они используются только основным языком;

  4. переменные прекомпилятора всегда локальны относительно модуля основного языка (исключения составляют неявная переменная – соединение по умолчанию и псевдопеременные SQLCODE, SQLSTATE…). Подробнее см. в подразделе «Многомодульные приложения»;

  5. относительно модуля встроенного SQL переменные могут быть локальными и глобальными;

  6. глобальными являются все переменные, описанные с помощью операторов DECLARE или PREPARE вне модулей встроенного языка;

  7. локальными являются все переменные, описанные внутри модуля встроенного SQL;

  8. все глобальные переменные встроенного SQL в одном модуле основного языка должны иметь уникальные имена. В разных модулях основного языка, объединяемых впоследствии в одну программу (библиотеку), глобальные переменные могут иметь одинаковые имена, но в каждом модуле основного языка будет использоваться определенная именно в этом модуле глобальная переменная встроенного языка. Имена переменных встроенного SQL могут совпадать с зарезервированными словами директив языков SQL и C/C++ и переменных основного языка, но должны отличаться от зарезервированных слов встроенного SQL.