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