Q&A

  • [질문]프로시져 호출 시 리턴값 받기.
안녕하세요.
간단한 질문하나... 워낙 아는게 없어서리...--ㅋ

아래와 같이 프로시져 생성 후 델파이 소스에서 리턴값을 받아서 사용하려 하는데...
오류가 나네요...

"qrysel : Field 'Return Value' not found"

오랜만에 해서리...--'

답변 부탁드립니다.

수고하세요.


<프로시져>
CREATE PROC up_konan16
@v_title_id varchar(10)
AS
select top 1 * from edi_cntinf_glo

<소스코드>
    with qrySel  do
    begin
      if active then close ;

      sql.Text := ' DECLARE        @return_value int'
                + '    EXEC        @return_value = up_konan16 ' + 'BU1032'
                + '  SELECT        ' + Quotedstr('Return Value')  + '= @return_value  ';
      try
        open;
      except
        showmessage('오류');
      end;

      if FieldByName('Return Value').AsInteger = 0 then
        showmessage('ok')
      else
        showmessage('error');
    end;
1  COMMENTS
  • Profile
    김홍철 2010.12.14 19:20
    오류내용은 필드명에 'Return Value' 가 없기 때문입니다.


    stored procedure 내용을 보면 edi_ctinf_glo 에서 데이터를 가져오네요...

    그런데 v_title_id는 사용하지 않으셨는데 왜 선언을 햇는지요?..

    v_title_id를 이용해 검색조건에 추가해주려고 했다면...where문이 포함이 되어야 겠지요?

    그래서 아마도...

    sql.Text := 'Exec up_konan16 @v_title_id = ''BU1032'' ';

    이렇게 stored procedure를 호출해주는게 맞을것 같구요...

    edi_cntinf_glo에 있는 필드를 가져오고 싶다면

    FieldByName('Return Value') 대신에... edi_entinf_glo에 있는 필드명을 쓰셔야 할것같구요..

    select할때는 *대신 가져오려는 필드명을 직접 적어주는것이 좋습니다.