BindKey(Key: String; [CanCreate: Boolean = false]): ISysSettingsKey;
BindKey(Key: String; CanCreate: Boolean): Prognoz.Platform.Interop.ForeSystem.ISysSettingsKey;
Key. Ключ элемента в файле с настройками.
CanCreate. Признак создания элемента, если он отсутствует в текущем файле с настройками. Допустимые значения:
True. Создавать элемент;
False. Не создавать элемент (значение по умолчанию).
Метод BindKey возвращает параметры указанного элемента с настройками.
Ключ элемента Key формируется из наименований всех его родительских элементов, разделенных символом «\\». Если перед первым значением в ключе встречается символ «@», то само значение воспринимается как значение атрибута «Name» для элемента «Key».
Если параметру CanCreate установлено значение True и элемент с ключом Key отсутствует, то генерируется исключительная ситуация.
Для выполнения примера предполагается наличие файла 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.
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;
См. также: