Установление связи с СУБД

Назначение

Перед тем, как начать работать с БД, пользовательская программа обязана выполнить процедуру связи с СУБД и регистрации. Для этого используется оператор CONNECT, устанавливающий соединение с сервером СУБД.

Синтаксис

 
<​соединение с СУБД​>::=
EXEC SQL CONNECT [ <​режим канала​>]
:<​имя пользователя​> [ IDENTIFIED BY :<​пароль ​>]
[AT <​переменная типа «соединение» ​>] [USING : <​имя сервера​>];
<​режим канала​> : = EXCLUSIVE | OPTIMISTIC | {SHARED | AUTOCOMMIT }
<​имя пользователя​> :: = <​переменная основного языка​>
<​пароль ​>::= <​переменная основного языка​>
<​имя сервера ​>:: =<​переменная основного языка​>

Описание

  1. Оператор CONNECT должен быть первым исполняемым SQL-оператором встроенного языка, т.е. все другие SQL-операторы могут физически, но не логически предшествовать оператору CONNECT.

  2. <​Режим канала​> задает способ обработки транзакций в данном соединении. По умолчанию используется режим EXCLUSIVE.

  3. <​Имя пользователя​> – переменная типа char. Задает пользователя, под именем которого будет выполняться доступ к СУБД по данному каналу (соединению). Имя должно содержать не более 18 символов.

  4. <​Пароль​> – переменная типа char. Задает пароль пользователя, указанного в переменной <​имя пользователя​>. Длина пароля не должна превышать 66 символов. Пароль может указываться совместно с именем пользователя в переменной <​имя пользователя​> через косую черту (/). Тогда параметр <​пароль​> должен отсутствовать.

    Примечание

    Параметр IDENTIFIED BY: <​пароль​> не задается, если пользователь с именем <​имя пользователя​> зарегистрирован в БД без пароля.

  5. Значение переменных <​пароль​> и <​имя пользователя​> должно быть определено до выполнения оператора CONNECT.

  6. Программа обязательно должна проверять результат соединения с СУБД (например, посмотреть значение переменной SQLCODE), т.к. в случае неудачного соединения с СУБД дальнейшая ее работа не имеет смысла.

  7. <​Имя сервера​> – переменная типа char, объявленная в секции EXEC SQL DECLARE. Она задает имя ЛИНТЕР-сервера, где находится БД, с которой требуется установить соединение (см. документ «Сетевые средства»). Имя ЛИНТЕР-сервера не должно содержать более 8 символов. Если параметр <​имя сервера​> не задан, соединение осуществляется с активной БД по умолчанию на локальном сервере (если таковая есть) либо на удаленном ЛИНТЕР-сервере по умолчанию (удаленным ЛИНТЕР-сервером является первый сервер в списке ЛИНТЕР-серверов в файле сетевой конфигурации) (см. документ «Сетевые средства»).

  8. <​Имя соединения​> – переменная встроенного языка, необъявленная или объявленная в директиве встроенного языка DECLARE DATABASE, либо символьная константа. Задает имя переменной, связываемой с открываемым каналом соединения с СУБД. В дальнейшем, при необходимости работы с каналом, на него можно ссылаться по этому имени. К одной БД может быть установлено несколько соединений. Если параметр <​имя соединения​> опущен, можно открыть только один неименованный канал соединения с СУБД.

  9. Программа может установить одновременно несколько соединений как с одной, так и с несколькими БД (локальной или удаленной). При этом значение имени соединения в конструкции [AT <​переменная типа «соединение»​>] для каждого соединения должно быть уникальным (таким образом, в программе может использоваться только один оператор соединения без конструкции [AT <​переменная типа «соединение»​>]).

  10. Для получения информации о ЛИНТЕР-сервере используется оператор EXEC LINTER GET SERVER (см. «Получение характеристик ЛИНТЕР-сервера»).

Примечание

Режим OPTIMISTIC устарел (использовать не рекомендуется).