CreateProcedure([Options: Integer = 0]);
Options. Зарезервированный параметр.
Метод CreateProcedure осуществляет создание процедуры в базе данных на основе имеющихся метаданных.
Каждому объекту репозитория «Процедура» соответствует физическая процедура, созданная на сервере БД. При создании и сохранении процедуры репозитория осуществляется автоматическое создание процедуры на сервере БД.
Данный метод осуществляет создание физической процедуры на сервере по имеющемуся описанию процедуры репозитория. Его применение актуально, если нету необходимости создания соответствующего объекта в репозитории.
Примечание. При создании и сохранении процедуры репозитория вызов данного метода осуществляется автоматически.
Пример создания процедуры в репозитории:
Для выполнения примера предполагается наличие БД репозитория с идентификатором «BD». На сервере имеется таблица с физическим именем "Table_1".
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
CrInfo: IMetabaseObjectCreateInfo;
Proc: IProcedure;
Begin
MB := MetabaseClass.Active;
//Информация для создания объекта
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_PROCEDURE;
CrInfo.Id := "New_Proc_1";
CrInfo.Name := "New_Proc_1";
CrInfo.Parent := MB.Root;
//Создание временного объекта. После изменения параметров процедура будет сохранена
MObj := MB.CreateObject(CrInfo).Edit;
Proc := MObj As IProcedure;
Proc.Database := Mb.ItemById("BD").Bind As IDatabase;
Proc.Text("ORCL") :=
"As" + #13 + #10 +
"Begin" + #13 + #10 +
"Insert Into Table_1 values(15,'New');" + #13 + #10 +
"End;";
Proc.NativeName := "New_Proc_1";
//Сохранение процедуры репозитория
//При сохранении автоматически будет создана процедура на сервере БД
MObj.Save;
End Sub UserProc;
После выполнения примера в корневом каталоге репозитория будет создана новая процедура. При сохранении объекта репозитория будет создана соответствующая процедура на сервере БД.
Пример создания процедуры на сервере БД без создания соответствующего объекта репозитория:
Для выполнения примера предполагается наличие БД репозитория с идентификатором «BD». На сервере имеется таблица с физическим именем "Table_1".
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
CrInfo: IMetabaseObjectCreateInfo;
Proc: IProcedure;
Begin
MB := MetabaseClass.Active;
//Информация для создания объекта
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_PROCEDURE;
CrInfo.Id := "New_Proc_1";
CrInfo.Name := "New_Proc_1";
CrInfo.Parent := MB.Root;
//Создание временного объекта. После изменения параметров процедура будет сохранена
MObj := MB.CreateObject(CrInfo).Edit;
Proc := MObj As IProcedure;
Proc.Database := Mb.ItemById("BD").Bind As IDatabase;
Proc.Text("ORCL") :=
"As" + #13 + #10 +
"Begin" + #13 + #10 +
"Insert Into Table_1 values(15,'New');" + #13 + #10 +
"End;";
Proc.NativeName := "New_Proc_1";
//Создание физической процедуры на сервере БД
//по имеющемуся описанию процедуры репозитория
Proc.CreateProcedure;
End Sub UserProc;
После выполнения примера на сервере в базе данных будет создана новая процедура.
См. также: