얼마전 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 입니다.
파워빌더 PowerClient 사용방법 (0) | 2021.06.18 |
---|---|
MSSQL 웹(Get/Post)통신 : SQL_APIConsumer Upgrade (0) | 2021.06.15 |
Gmail 메일 발송시 스팸메일로 처리되어 발송이 안되는 경우 해결 방법 (0) | 2021.05.27 |
PowerBuilder + 키입력시 곱하기 1000 기능 구현 팁 (0) | 2021.04.12 |
MSSQL 웹(Get/Post)통신 : SQL_APIConsumer 활용 (0) | 2020.08.21 |
Blog is powered by kakao / Designed by 미스터짱