Добрый день,
Возможно ли создать и вызвать БДшную функцию на сервере,
Например создать функцию(Через 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>(); }