DECLARE sp_send_dbmail PROCEDURE FOR sp_send_dbmail
@profile_name = :ls_Null,
@recipients = :ls_To,
@copy_recipients = :ls_Null,
@blind_copy_recipients = :ls_Null,
@subject = :ls_Null,
@body = :ls_Body,
@importance = :ls_Importance,
@rtn = :li_Rtn OUTPUT;
EXECUTE sp_send_dbmail;
0
A
답변
0
필자는 왜 stored procs를 호출하는 것이 PowerBuilder에서 문제가되지 않는지 잘 모르겠습니다.
그 코드는 내가 볼 수있는 것으로부터 멋지게 보인다.
실행 후 SQLCA.SQLCode 및 SQLCA.SQLErrText를 점검하여 오류가 있는지 판별하십시오. 다음과 같이 사용할 수 있습니다.
if SQLCA.SQLCode <> 0 then
MessageBox("Error", "Error Code: " + String(SQLCA.SQLDBCode) + "~r~n" + &
"Error Message: " + SQLCA.SQLErrText)
end if
0
트랜잭션 개체에 로컬 외부 함수를 선언하십시오. 사용자 정의 트랜잭션 객체를 열고 로컬 외부 함수 탭으로 이동하십시오.
프로 시저 또는 package.procedure 전화를 정의이 예제의 일부와 같은 :
// call standard proc
SQLCA.SubRtnName(parms);
// call package.procedure
SQLCA.CalcPenaltyAmt('stingarg', ref ls_ref_string_array);
이것은 가정
// stored proc no package
SUBROUTINE SubRtnName(args) RPCFUNC
// function
long ll_rtn = FUNCTION FuncRtnVal(int li_arg) RPCFUNC
// standard proc with some in/out parameters
SUBROUTINE CalcAmount(string LS_In1, ref string LS_Out2) RPCFUNC
// package.procedure
SUBROUTINE SubRtnName(args) RPCFUNC ALIAS FOR "PackageName.ProcName"
// more complex package.procedure definition
SUBROUTINE CalcPenaltyAmt(string LS_In1, ref string LS_Out2[]) RPCFUNC ALIAS FOR "Penalty.P_Calc_Amount"
서브 루틴 또는 함수 이름 다음에 정의 된 이름을 사용하여 코드에서 프로 시저를 호출하는 방법 비 시각적 트랜잭션 객체가 응용 프로그램 객체의 SQLCA로 정의되고 설정되어 있습니다. 사용자 정의 트랜잭션 객체가 없으면 이와 같은 외부 함수를 정의 할 수 없습니다. 사용자가 수행하는 방식은 유형 비동기 트랜잭션 유형을 작성한 다음 사용자 정의 변수의 응용 프로그램 오브젝트에서 SQLCA를 n_tr_transaction으로 바꿉니 다.