ExternalDBase.UseProxy
UseProxy (Задает прокси сервер для соединения) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция настраивает прокси сервер для использования с соединением к данной внешней БД. Функция должна быть вызвана до фактического соединения с удаленной стороной на неактивном объекте, затем этот объект может использоваться совместно с функцией Connect. В данный момент поддерживаются только следующие типы прокси-соединений: NGRC, NGRCCHANNEL, остальные типы прокси будут выдавать исключение при попытке соединения.
Синтаксис
ExternalDBase.UseProxy(<Адрес и порт прокси сервера (STRING)>,<Тип прокси сервера (STRING)>,<Имя пользователя прокси (STRING)>,<Пароль пользователя прокси (STRING)>,<Дополнительные параметры прокси (STRING)>)
Аргументы
<Адрес и порт прокси сервера (STRING)>
- Адрес прокси сервера задается в виде<Доменное имя сервера, адрес IPv4>:<Номер порта>
(пример:127.0.0.1:8080
). На данный момент возможно подключение только с помощью IPv4. (необязательный аргумент) Для некоторых видов прокси (к примеру, SFSERVER), этот аргумент не используется и должен быть пропущен.<Тип прокси сервера (STRING)>
- Указание на тип используемого прокси сервера. Возможны следующие значения:- SOCKS4, SOCKS4A, SOCKS5, HTTP, HTTPS, SFSERVER -- Данные типы прокси серверов пока не поддерживаются при соединении к внешней БД.
- NGRC, NGRCCHANNEL -- позволяет перенаправить TCP соединение через сервер ngRC или сервер перенаправления (каналов), к которому в свою очередь соединен сервер ngRC, отвечающий по именованному каналу. Использование прокси такого рода удобно, так как серверы ngRC могут использоваться в организации для удаленного администрирования сети. Сервер каналов ngRC позволяет использовать удаленное администрирование в случае, когда удаленный сервер не имеет постоянного входящего адреса IP. С помощью этого типа прокси программа может получить доступ к сервисам, находящимся в сети, единственный способ подключения к которой -- сервер ngRC. Поддерживаются как шифрованные соединения (соединения с ключами), так и не шифрованные соединения, как для прямых серверов ngRC, так и для серверов каналов ngRC. В прокси соединении будет отказано, пока на ngRC сервере в его утсановках или в установках соединяющегося ключа не будут разрешены адрес и порт перенаправления, к которым происходит соединение. Для соответствующих установок сервера, см. статью Установки сервера. Для установки соединения с прямыми серверами ngRC, необходимо корректно заполнить первый (адрес и порт сервера ngRC), третий (бинарный ключ соединения, если соединение шифрованное) и четвертый (пароль сервера ngRC) аргументы. Для установки соединения с сервером каналов ngRC, необходимо корректно заполнить первый (адрес и порт сервера каналов ngRC), третий (бинарный ключ соединения, если соединение шифрованное), четвертый (пароль сервера ngRC)и пятый (пароль сервера каналов и имя канала) аргументы. См. описание соответствующих аргументов.
<Имя пользователя прокси (STRING)>
- (необязательный аргумент) В зависимости от типа прокси сервера, аргумент задает:- NGRC, NGRCCHANNEL: Если аргумент не задан или является пустой строкой, будет произведена попытка установки нешифрованного соединения с сервером ngRC (обычный порт сервера 37887), иначе задает ANSI строку с бинарным файлом ключа пользователя для установки шифрованного соединения (обычный порт сервера 37932).
<Пароль пользователя прокси (STRING)>
- (необязательный аргумент) В зависимости от типа прокси сервера, аргумент задает:- NGRC, NGRCCHANNEL: пароль ngRC сервера.
<Дополнительные параметры прокси (STRING)>
- (необязательный аргумент) Задает дополнительные параметры в зависимости от типа прокси-сервера. Возможны следующие значения аргумента:- Для NGRCCHANNEL прокси аргумент задает пароль сервера каналов и имя ngRC канала, к которому необходимо подключиться. Связка задается в виде:
[<Пароль сервера каналов>]<Знак 1><Имя канала для подключения>
. "Знак 1" представляет собой знак с кодом 1, который можно получить вызовомChr(1)
.
- Для NGRCCHANNEL прокси аргумент задает пароль сервера каналов и имя ngRC канала, к которому необходимо подключиться. Связка задается в виде:
Примеры
//Здесь дается пример ключа, кодированного в base64. Полный текст ключа не публикуется в примере. стрКлюч:=DecodeString("cmNLYwA..................................................................................................."+ "........................................................................................................................"+ "........................................................................................................................"+ "..............................AAAAAA==","base64"); db2:=exdb.create(); db2.UseProxy("someserver.ru:45556","NGRCCHANNEL",стрКлюч,"","ПарольОтСервераКаналов"+Chr(1)+"Наименование канала (клиента)"); db2.Connect("127.0.0.1:13521:ПарольОтБазыSF","Администратор","ПарольПользователяВБазе"); aEl:=db2.Ref.УсловияПродажИМаркетинговыеАкции; If aEl.Find("Name","Запрет продаж алкоголя") Then Стр:=aEl.Условие; Message("Найдено условие для магазина "+aEl.Parent()+":","I"); Message(Стр); Else Message("Для магазина "+aEl.Parent()+" условие не найдено!","!"); EndIf; db2.Disconnect;