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

Назначение

Перед тем, как начать работать с БД, пользовательская программа обязана выполнить процедуру связи с СУБД и регистрации. Для этого используется оператор 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 устарел (использовать не рекомендуется).