Operation: RepositoryOperationType;
Свойство Operation определяет операцию, которую необходимо произвести над репозиторием.
Операция будет применена для репозитория, указанного в свойстве Repository, после вызова метода Execute.
Для выполнения примера предполагается наличие сервера ORCL с наименованием «Test». На сервере в рамках схемы «TestSchema» создан репозиторий платформы. В корневом каталоге диска «С» имеются файлы «current.rm4» и «current_rds.rm4», содержащий скрипт для создания и обновления репозитория и репозитория НСИ.
Sub UserProc;
Var
Rsm: IRepositoryScriptManager;
Driv: IDalDriver;
ConDesc: IDalConnectionDescriptor;
Params: IDalConnectionDescriptorParams;
Con: IDalConnection;
Begin
//Подключение к схеме на сервере Oracle
Driv := New DalOrcl8Driver.Create As IDalDriver;
ConDesc := Driv.CreateDescriptor;
Params := ConDesc.Params;
Params.Find("User Name").Value := "TestSchema";
Params.Find("Password").Value := "TestSchema";
Params.Find("Host BSTR").Value := "Test";
Params.Find("Schema").Value := "TestSchema";
Con := ConDesc.CreateConnection;
//Настройки менеджера репозитория
Rsm := New RepositoryScriptManager.Create;
Rsm.Connection := Con;
Rsm.Driver := RepositoryDriverType.ORCL9;
Rsm.Operation := RepositoryOperationType.Update;
//Обновление репозитория
Rsm.Repository := RepositoryType.Metabase;
Rsm.LoadScript(New FileStream.Create("c:\current.rm4", FileOpenMode.Read, FileShare.Exclusive));
Rsm.Execute(Null);
//Обновление репозитория НСИ
Rsm.Repository := RepositoryType.RDS;
Rsm.LoadScript(New FileStream.Create("c:\current_rds.rm4", FileOpenMode.Read, FileShare.Exclusive));
Rsm.Execute(Null);
End Sub UserProc;
Imports System.IO;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.KeFore;
Public Shared Sub Main(Params: StartParams);
Var
Rsm: IRepositoryScriptManager = New RepositoryScriptManagerClass();
Driv: IDalDriver = New DalOrcl8DriverClass();
ConDesc: IDalConnectionDescriptor;
DalParams: IDalConnectionDescriptorParams;
Con: IDalConnection;
Begin
//Подключение к схеме на сервере Oracle
ConDesc := Driv.CreateDescriptor();
DalParams := ConDesc.Params;
DalParams.Find("User Name").Value := "TestSchema";
DalParams.Find("Password").Value := "TestSchema";
DalParams.Find("Host BSTR").Value := "Test";
DalParams.Find("Schema").Value := "TestSchema";
Con := ConDesc.CreateConnection();
//Настройки менеджера репозитория
Rsm.Connection := Con;
Rsm.Driver := RepositoryDriverType.repwelknodritypORCL9;
Rsm.Operation := RepositoryOperationType.repopetypUpdate;
//Обновление репозитория
Rsm.Repository := RepositoryType.reptypMetabase;
Rsm.LoadScript(New FileStream("c:\current.rm4", FileMode.Open, FileAccess.Read));
Rsm.Execute(Null);
//Обновление репозитория НСИ
Rsm.Repository := RepositoryType.reptypRDS;
Rsm.LoadScript(New FileStream("c:\current_rds.rm4", FileMode.Open, FileAccess.Read));
Rsm.Execute(Null);
End Sub;
После выполнения примера будет осуществлено обновление версии репозитория и репозитория НСИ в соответствии с содержимым файлов «current.rm4» и «current_rds.rm4».
См. также: