Execute: Integer;
Метод Execute запускает объект на выполнение и возвращает количество обработанных записей.
Если осуществляется работа с командой СУБД, то метод возвращает количество вставленных/удалённых/обновлённых записей.
При работе с процедурой/функцией метод возвращает значение «-1», при этом результаты работы процедуры/функции будут доступны в коллекции значений параметров, которые должны быть сформированы при открытии объекта репозитория. Также экземпляр объекта ISQLCommandInstance может быть приведён к интерфейсу IMetabaseObjectInstance, который позволяет работать с параметрами объекта.
Для выполнения примера предполагается наличие в репозитории процедуры с идентификатором P_CALC. Процедура в своей структуре имеет два входных параметра с идентификаторами pMin, pMax и один выходной с идентификатором pResult. В процедуре выполняется какой-либо расчёт.
Добавьте ссылки на системные сборки: Db, Metabase.
Sub UserProc;
Var
MB: IMetabase;
MDesc: IMetabaseObjectDescriptor;
PValues: IMetabaseObjectParamValues;
SQLInst: ISQLCommandInstance;
Begin
MB := MetabaseClass.Active;
// Описание процедуры
MDesc := MB.ItemById("P_CALC");
// Создание набора параметров
PValues := MDesc.Params.CreateEmptyValues;
PValues.FindById("pMin").Value := 0;
PValues.FindById("pMax").Value := 1000;
// Получение открытого экземпляра
SQLInst := MDesc.Open(PValues) As ISQLCommandInstance;
// Выполнение процедуры
SQLInst.Execute;
// Вывод значения выходного параметра
Debug.WriteLine(PValues.FindById("pResult").Value);
End Sub UserProc;
При выполнении примера будет получен экземпляр процедуры, предназначенный для её выполнения. При открытии экземпляра будут заданы входные параметры. После запуска процедуры на выполнение полученное значение выходного параметра будет выведено в консоль среды разработки.
См. также: