IT Story/TIP
Powerbuilder Stored Procedure(SP) Output 파라미터 관련
행복한소식까치
2021. 6. 14. 14:11
반응형
얼마전 PowerBuilder 9.0 버전에서 잘 사용하는 아래와 같은 저장 프로시저가 Powerbuilder 2019 버전으로 업그레이드 후 Output 파라미터를 못 받아 오는 현상이 발생 했습니다.
문제가 되는 파워빌더 스크립트 샘플
Long ll_Gubun
DateTime ldt_F_Day, ldt_T_Day
String ls_Msg
ll_Gubun = 2
ldt_F_Day = Gstr_Ui.sys_date
ldt_T_Day = Gstr_Ui.sys_date
Declare PB_MF200_Output Procedure For SP_MF200_UP_O
@iGubun = :ll_Gubun
, @iF_Day = :ldt_F_Day
, @iT_Day = :ldt_T_Day
, @oRtn = :ls_Msg Output;
EXECUTE PB_MF200_Output;
FETCH PB_MF200_Output Into :ls_Msg;
CLOSE PB_MF200_Output;
Messagebox('rtn',string(ls_Msg))
위 소스의 경우 파월빌터 9.0 버전의 경우 정상 작동합니다. 그러나 2019 버전 부터는 Output 파라미터를 정상적으로 받아 오지 못합니다.
해결방법은 아래와 같이 저장 프로시저에 스키마 부분을 정확히 선언하면됩니다.
소스에서 변경된부분은 선언시 SP_MF200_UP_O -> dbo.SP_MF200_UP_O 변경하면 해결됩니다.
(※ 스키마가 dbo가 아닌경우 해당 스키마를 선언해야됩니다.)
2019 버전에서 정상적으로 Output 파라미터 받아오는 소스
Long ll_Gubun
DateTime ldt_F_Day, ldt_T_Day
String ls_Msg
ll_Gubun = 2
ldt_F_Day = Gstr_Ui.sys_date
ldt_T_Day = Gstr_Ui.sys_date
Declare PB_MF200_Output Procedure For dbo.SP_MF200_UP_O
@iGubun = :ll_Gubun
, @iF_Day = :ldt_F_Day
, @iT_Day = :ldt_T_Day
, @oRtn = :ls_Msg Output;
EXECUTE PB_MF200_Output;
FETCH PB_MF200_Output Into :ls_Msg;
CLOSE PB_MF200_Output;
//Messagebox('rtn',string(ls_Msg))
IF ls_Msg <>'1' Then
MessageBox('오류','저장실패 전산실에 문의 바랍니다.')
gw_Frame.wf_SetMicroHelp('저장실패')
RollBack Using SQLCA;
Else
gw_Frame.wf_SetMicroHelp('저장완료.')
Commit using SQLCA;
End IF
추가로 DB는 MSSQL 입니다.
반응형