Добрый день,
Возможно ли создать и вызвать БДшную функцию на сервере,
Например создать функцию(Через CREATE FUNCTION ) и добавить ее в скрипты в пакете
и потом как нибудь вызвать ее и получить то что она возвращает?
Заранее спасибо!
Нравится
так вам нужна функция или хранимка? в любом случае вот тема. Как вызвать из js кода свой сервис можно посмотреть на sdk / как добавить кусок C# кода в БП - элемент "задание-сценарий". Ну и в C# коде вызываете хранимку, в хранимке делаете что угодно, результат читаете с помощью datareader'а и далее по бизнес логике...
Варфоломеев Данила,
Спасибо за ссылку, мне нужна функция, но по идее процедурой тоже можно обойтись
Можно вызвать хранимую процедуру. Правильный вызов процедуры (пример):
DataValueTypeManager dataValueTypeManager =UserConnection.DataValueTypeManager; 
var dateTimeValue = new DateTime(2009, 01, 02, 22, 12, 0);
                    Stream stream = newMemoryStream(Encoding.Unicode.GetBytes("Тест большого бинарного объекта"));
                    var textDataValueType = newTextDataValueType(dataValueTypeManager);
                    var guidDataValueType = newGuidDataValueType(dataValueTypeManager);
                    var integerDataValueType = newIntegerDataValueType(dataValueTypeManager);
                    var floatDataValueType = newFloat2DataValueType(dataValueTypeManager);
                    var booleanDataValueType = newBooleanDataValueType(dataValueTypeManager);
                    var dateTimeDataValueType = newDateTimeDataValueType(dataValueTypeManager);
                    var idValue = new Guid("{BCDB8392-55BC-472A-A49D-22A975E0BEF6}");
                    StoredProcedure storedProcedure =
                           new StoredProcedure(Page.UserConnection,"tsp_TestStoredProcedure")
                           .WithParameter("IdParameter", idValue)
                           .WithVarParameter("VarIdParameter", idValue, guidDataValueType)
                           .WithParameter("TextParameter", "Украина")
                           .WithVarParameter("VarTextParameter", "Украина", textDataValueType)
                           .WithParameter("IntegerParameter", 10)
                           .WithVarParameter("VarIntegerParameter", 10, integerDataValueType)
                           .WithParameter("FloatParameter", 3.14)
                           .WithVarParameter("VarFloatParameter", 3.14, floatDataValueType)
                           .WithParameter("BooleanParameter", true)
                           .WithVarParameter("VarBooleanParameter", false, booleanDataValueType)
                           .WithParameter("DateTimeParameter", dateTimeValue)
                           .WithVarParameter("VarDateTimeParameter", dateTimeValue, dateTimeDataValueType)
                           .WithParameter("BinaryParameter", stream)
                           .WithVarParameter("VarBinaryParameter", stream)
                           .WithOutputParameter("ResultParameter", textDataValueType) as StoredProcedure;
storedProcedure.PackageName = Page.UserConnection.DBEngine.SystemPackageName;
storedProcedure.Execute();
Функция вызывается аналогично.
Add comment
Антон Малий,
Я понял, большое спасибо
Вот для функции:
public virtual string GenerateCardCVC(Guid cardId) { var udf = new UserDefinedFunction(UserConnection, "fn_GenerateCardCVC"); udf.WithParameter("pCardId", cardId); return udf.ExecuteScalar<string>(); }
 
  