ISysSettingsKey.BindKey

Синтаксис Fore

BindKey(Key: String; [CanCreate: Boolean = false]): ISysSettingsKey;

Синтаксис Fore.NET

BindKey(Key: String; CanCreate: Boolean): Prognoz.Platform.Interop.ForeSystem.ISysSettingsKey;

Параметры

Key. Ключ элемента в файле с настройками.

CanCreate. Признак создания элемента, если он отсутствует в текущем файле с настройками. Допустимые значения:

Описание

Метод BindKey возвращает параметры указанного элемента с настройками.

Комментарии

Ключ элемента Key формируется из наименований всех его родительских элементов, разделенных символом «\\». Если перед первым значением в ключе встречается символ «@», то само значение воспринимается как значение атрибута «Name» для элемента «Key».

Если параметру CanCreate установлено значение True и элемент с ключом Key отсутствует, то генерируется исключительная ситуация.

Пример Fore

Для выполнения примера предполагается наличие файла Settings.xml. В данном файле заполнены все разделы с настройками BI-сервера. Добавьте ссылку на системную сборку Xml.

Sub UserProc;
Var
    Settings: ISysSettings;
    Node: ISysSettingsKey;
    XmlNode: IXmlDomElement;
    Lock: Object;
Begin
    Settings := New SysSettings.Create;
    Node := Settings.Root;
    XmlNode := Node.Element As IXmlDomElement;
    //Получение параметров элемента <Root>/<Key Name="PP">/<BIS>/<Key Name="System">/<Pool>
    Node := Node.BindKey("@PP\\BIS\\Key\\Pool"True);
    XmlNode := Node.Element As IXmlDomElement;
    //Изменение значения атрибута MaxConnections
    XmlNode.setAttribute("MaxConnections""10");
    //Блокировка перед сохранением
    Lock := Settings.CriticalLock;
    Try
        Settings.Commit;
    Finally
        Dispose Lock;
    End Try;
End Sub UserProc;

При выполнении примера в файле с настройками BI-сервера будет изменено значение параметра «MaxConnections». Если параметр не существует, то он будет создан.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports System.Xml;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub UserProc();
Var
    Settings: SysSettings = New SysSettingsClass();
    Node: ISysSettingsKey;
    XmlNode: XmlElement;
    Lock: Object;
Begin
    Node := Settings.Root;
    XmlNode := Node.Element As XmlElement;
    //Получение параметров элемента <Root>/<Key Name="PP">/<BIS>/<Key Name="System">/<Pool>
    Node := Node.BindKey("@PP\\BIS\\Key\\Pool"True);
    XmlNode := Node.Element As XmlElement;
    //Изменение значения атрибута MaxConnections
    XmlNode.setAttribute("MaxConnections""10");
    //Блокировка перед сохранением
    Lock := Settings.CriticalLock;
    Try
        Settings.Commit();
    Finally
        System.Runtime.InteropServices.Marshal.ReleaseComObject(Lock);
    End Try;
End Sub;

См. также:

ISysSettingsKey