Q&A

  • 프로시저를 쓰는데 왜 에러가 나는지 궁금합니다.
델7입니다.
디비는 mssql
컴포넌트는 DbExPress입니다.
AcceptDate와 AcceptGubun은 input변수이고
AcceptSeq는 output데이터 입니다.

질문1
그런데 소스1를 보면 params.count보면 3이 제대로 나오는데 왜 list indexout of bounds인지요

질문2
그런데 소스2를 보면 Query를 이용하여 프로시저를 사용하는데 에라는 없는데 왜
AcceptSeq의 변수에 값이 안넘어 올까요 궁금합니다.
쿼리분석기에서
exec sp_er_acceptNo '20060222','E',''
실행하면 값을 가져옵니다 00008이런식으로

그럼 수고하세요

소소1
  With SQLStoredProc1 Do begin
         Close;
         StoredProcName:='sp_er_AcceptNo';
         Params.Create;
         params.CreateParam(FtString  ,'AcceptDate' , ptInput ).AsString:='20060221';
         params.CreateParam(FtString  ,'AcceptGubun', ptInput ).AsString:='E'   ;
         params.CreateParam(FtString  ,'AcceptSeq'  , ptOutput).AsString:=Acc_Code;
         ExecProc;          //여기에서 에라입니다. List index out of bounds에라입니다.
  End;

소소2
  With P_a_DataF.Q1 do begin
         Close;
         SQL.Clear;
         SQL.Add('Exec sp_er_AcceptNo :Date, :Gubun,:Seq ');
         ParamByName('Date' ).AsString:='20060221';
         ParamByName('Gubun').AsString:='E'       ;
         ParamByName('Seq'  ).AsString:=''        ;
         Try
           ExecSQL;
         Except
            on E: EDBEngineError  do begin
                ShowMessage(IntToStr((E as EDBEngineError).Errors[0].ErrorCode)+':'+E.Message);
                Exit;
            end;
         End;
  End;
0  COMMENTS