Установление связи с СУБД
Назначение
Перед тем, как начать работать с БД, пользовательская программа обязана выполнить процедуру связи с СУБД и регистрации. Для этого используется оператор CONNECT, устанавливающий соединение с сервером СУБД.
Синтаксис
< соединение с СУБД >::=
EXEC SQL CONNECT [ < режим канала >]
:< имя пользователя > [ IDENTIFIED BY :< пароль >]
[AT < переменная типа «соединение» >] [USING : < имя сервера >];
< режим канала > : = EXCLUSIVE | OPTIMISTIC | {SHARED | AUTOCOMMIT }
< имя пользователя > :: = < переменная основного языка >
< пароль >::= < переменная основного языка >
< имя сервера >:: =< переменная основного языка >
Описание
-
Оператор
CONNECTдолжен быть первым исполняемым SQL-оператором встроенного языка, т.е. все другие SQL-операторы могут физически, но не логически предшествовать операторуCONNECT. -
< Режим канала >задает способ обработки транзакций в данном соединении. По умолчанию используется режимEXCLUSIVE. -
< Имя пользователя >– переменная типа char. Задает пользователя, под именем которого будет выполняться доступ к СУБД по данному каналу (соединению). Имя должно содержать не более 18 символов. -
< Пароль >– переменная типа char. Задает пароль пользователя, указанного в переменной< имя пользователя >. Длина пароля не должна превышать 66 символов. Пароль может указываться совместно с именем пользователя в переменной< имя пользователя >через косую черту (/). Тогда параметр< пароль >должен отсутствовать.Примечание
Параметр
IDENTIFIED BY:< пароль >не задается, если пользователь с именем< имя пользователя >зарегистрирован в БД без пароля. -
Значение переменных
< пароль >и< имя пользователя >должно быть определено до выполнения оператора CONNECT. -
Программа обязательно должна проверять результат соединения с СУБД (например, посмотреть значение переменной SQLCODE), т.к. в случае неудачного соединения с СУБД дальнейшая ее работа не имеет смысла.
-
< Имя сервера >– переменная типа char, объявленная в секцииEXEC SQL DECLARE. Она задает имя ЛИНТЕР-сервера, где находится БД, с которой требуется установить соединение (см. документ «Сетевые средства»). Имя ЛИНТЕР-сервера не должно содержать более 8 символов. Если параметр< имя сервера >не задан, соединение осуществляется с активной БД по умолчанию на локальном сервере (если таковая есть) либо на удаленном ЛИНТЕР-сервере по умолчанию (удаленным ЛИНТЕР-сервером является первый сервер в списке ЛИНТЕР-серверов в файле сетевой конфигурации) (см. документ «Сетевые средства»). -
< Имя соединения >– переменная встроенного языка, необъявленная или объявленная в директиве встроенного языкаDECLARE DATABASE, либо символьная константа. Задает имя переменной, связываемой с открываемым каналом соединения с СУБД. В дальнейшем, при необходимости работы с каналом, на него можно ссылаться по этому имени. К одной БД может быть установлено несколько соединений. Если параметр< имя соединения >опущен, можно открыть только один неименованный канал соединения с СУБД. -
Программа может установить одновременно несколько соединений как с одной, так и с несколькими БД (локальной или удаленной). При этом значение имени соединения в конструкции
[AT < переменная типа «соединение» >]для каждого соединения должно быть уникальным (таким образом, в программе может использоваться только один оператор соединения без конструкции[AT < переменная типа «соединение» >]). -
Для получения информации о ЛИНТЕР-сервере используется оператор
EXEC LINTER GET SERVER(см. «Получение характеристик ЛИНТЕР-сервера»).
Примечание
Режим OPTIMISTIC устарел (использовать не рекомендуется).