Пользовательские функции SQL в Enterprise Library - PullRequest
0 голосов
/ 02 ноября 2008

Есть ли способ выполнить пользовательские функции SQL с помощью библиотеки Enterpise? Я пробовал Database.ExecuteScalar (), но по какой-то причине он возвращает ноль.

Это моя функция:

Database db = DatabaseFactory.CreateDatabase("ConnectionString");
DbCommand cmd = db.GetStoredProcCommand("FunctionName");
db.AddInParameter(cmd, "Value1", DbType.String, Param1Value);
db.AddInParameter(cmd, "Value2", DbType.String, Param2Value);
return Convert.ToBoolean(db.ExecuteScalar(cmd)); 

Здесь метод db.ExecuteScalar (cmd) возвращает ноль. Это не происходит с хранимыми процедурами.

Кстати, я использую версию 4.0

Спасибо.

Ответы [ 2 ]

5 голосов
/ 02 ноября 2008

Вы должны создать оператор выбора, который выбирает результат из функции и выполняет его.

"SELECT * FROM FunctionName (@ Value1, @ Value2)"

Или вы можете заключить вызов функции в процедуру и вызвать процедуру, я предпочитаю это.

2 голосов
/ 02 ноября 2008

Для скалярных функций это будет

SELECT FuncName(@Param1)

, тогда как табличная функция будет

SELECT * FROM FuncName(@Param1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...