델파이6, 7 버전의 BDE TQuery 혹은 TStoredProc을 사용하여
오라클 데이터베이스의 패키지 안에 구현된 프러시저의 Output 변수를 읽는 법을 알고 싶습니다.
아래 제가 해본 소스를 적어 놓겠습니다.
고수님들의 답변 기다리겠습니다.
* 프로시저의 선언형
PROCEDURE GetAudioClipID_Proc(
AudioID_OUT OUT VARCHAR2,
AudioType_IN IN VARCHAR2
)
* 프로시저를 이용한 경우
(이 경우 GetAudioClipID_Proc 구성요소가 정의되어야 합니다. 라는 오라클 에러 발생)
StoredProc1.Close;
StoredProc1.Params.BeginUpdate;
StoredProc1.Params.Clear;
StoredProc1.StoredProcName := 'AUDIOFILE_PACK.GetAudioClipID_Proc';
StoredProc1.Params.CreateParam(ftString, 'AudioID_OUT', Output);
StoredProc1.Params.CreateParam(ftString, 'AudioType_IN', ptInput);
StoredProc1.Params.EndUpdate;
StoredProc1.Params.ParamByName('AudioType_IN').AsString := 'SS';
StoredProc1.ExecProc;
* TQuery를 이용한 경우
( 이 경우 Output 값을 읽을 수 없습니다.)
Query1.Active := false;
Query1.SQL.Text := 'BEGIN AUDIOFILE_PACK.GetAudioClipID_Proc(:RESULT, ''SS''); END;';
Query1.Params.BeginUpdate;
Query1.ParamByName('RESULT').ParamType := ptOutput;
Query1.Params.EndUpdate;
Query1.ParamByName('RESULT').AsString := ' ';
Query1.ExecSQL;
execute 나 opne 후에
변수 := Query1.ParamByName('RESULT').AsString;
하시면 됩니다