Dapper를 사용하여 out 매개 변수를 사용하여 SP를 Exceute하면 항상 null 값을받습니다 (Dapper + ODBC + Sybase).

dapper odbc sybase

문제

ODBC Sybase를 사용하는 Dapper와 SP를 실행하는 데 문제가 있습니다. 입력 매개 변수에 대해 아무런 문제가 없습니다. 예상대로 매개 변수가 작동하지 않습니다.

기존 SP에는 삽입 문이 있으므로 TRANSACTION 문을 코드에 넣습니다.

여기 수정 된 SP :

create proc dbo.SP_TEST_DAPPER(@FIRST_PARM VARCHAR(10),  @ErrorMessages VARCHAR(1000 ) Out  )
AS 

BEGIN 

  declare @Rtn Int  
  declare @TranName  varchar(50)

  SELECT @TranName = 'SP_TEST' 

  BEGIN TRANSACTION @TranName 
  IF @FIRST_PARM = '1'
  BEGIN 
      SELECT @ErrorMessages   = 'OK'  
  END 
  BEGIN 
      SELECT @ErrorMessages   = 'Error'  
      GOTO ERROR_TRAP  
  END 

  COMMIT TRANSACTION @TranName   
  SELECT @ErrorMessages
    ERROR_TRAP:  
    ROLLBACK TRANSACTION @TranName   
  SELECT @ErrorMessages      
END

내 결과 : 여기에 이미지 설명을 입력하십시오.

인기 답변

ODBC 명명 된 매개 변수 구현이 잘못되었습니다. 문에서 명명 된 매개 변수를 물음표와 함께 넣고 물음표없이 명명 된 매개 변수를 만듭니다. Dapper는 물음표를 사용하여 문을 구문 분석하여 이름을 찾습니다.

storedProcedureName = "dbo.SP_TEST_DAPPER ?FIRST_PARM?, ?ErrorMessages?";

pX.Add("FIRST_PARM",firstparm);
pX.Add("ErrorMessages", dbType: DbType.String, direction: ParameterDirection.Output, size: 1000);

자세한 내용은이 답변을 참조하십시오. https://stackoverflow.com/a/26484944/6490042



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.