엔터프라이즈 라이브러리의 SQL 사용자 정의 기능
-
05-07-2019 - |
문제
Enterpise 라이브러리로 SQL 사용자 정의 기능을 실행하는 방법이 있습니까? Database.ExecutesCalar ()를 시도했지만 어떤 이유로 든 NULL을 반환합니다.
이것은 내 기능입니다.
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) 메소드가 NULL을 반환합니다. 이것은 저장 절차에서 발생하지 않습니다.
그건 그렇고, 버전 4.0을 사용하고 있습니다
감사.
해결책
함수에서 결과를 선택하고이를 실행하는 SELECT 문을 작성해야합니다.
"functionName ( @value1, @value2)에서"선택 * "
또는 기능 호출을 절차로 래핑하고 절차를 호출 할 수 있습니다. 나는 이것을 선호합니다.
다른 팁
스칼라 함수의 경우
SELECT FuncName(@Param1)
반면 테이블 값 함수가 될 것입니다
SELECT * FROM FuncName(@Param1)
제휴하지 않습니다 StackOverflow