Переменная типа «соединение»

Назначение

Оператор декларирует наличие переменной типа «соединение» с указанным именем.

Синтаксис

 
< переменная типа 'соединение' >::=
EXEC SQL DECLARE < имя соединения > DATABASE;
< имя соединения >::= < идентификатор > | < строковый литерал >

Описание

  1. Оператор DECLARE DATABASE является декларативным, поэтому может находиться вне блоков основного языка.

  2. В процессе работы пользовательская программа может использовать доступ к нескольким БД. Доступ к конкретной БД выполняется после предварительного соединения программы с БД. Каждому соединению можно присвоить уникальное логическое имя (имя БД) для того, чтобы при последующих запросах к этой БД ссылаться уже только на имя соединения, не указывая каждый раз полную информацию, необходимую для соединения. Для этих целей средства встроенного SQL включают тип данных «соединение».

  3. Имя соединения известно только программе и не имеет ничего общего с реальным именем БД.

  4. Объявленная переменная типа «соединение» (DATABASE) может использоваться в операторе CONNECT и последующих выполняемых операторах для идентификации логической связи с заданной БД.

  5. Эта переменная может быть использована в операторах CONNECT и в конструкции AT < имя соединения >.

  6. Использование данного оператора для объявления переменной не является необходимым, переменная неявно объявляется оператором CONNECT.

Примечания

  1. Имя переменной типа «соединение» может совпадать с именем переменной основного языка.

  2. Неявное объявление переменной типа «соединение» выполняется при использовании его в операторе CONNECT.

  3. В том случае, когда используется единственное соединение с БД, логическая связь с сервером БД может быть установлена без объявления переменной типа «соединение» (см. использование оператора CONNECT без конструкции AT < имя соединения > ).

Пример

EXEC SQL INCLUDE SQLCA;
EXEC SQL DECLARE DB1 DATABASE; /* объявление вне блоков основного языка */
void f()
{
/* имя соединения задано идентификатором встроенного языка (case insensitive) */
EXEC SQL DECLARE DB2 DATABASE; /* имя соединения задано строковым литералом (case sensitive) */
EXEC SQL DECLARE 'DataBase Sale' DATABASE;
…
}