프로그래밍/델파이

MS-SQL의 저장 프로시저 호출을 위하여 TADOStoredProc를 이용할 때의 주의점.

채윤아빠 2008. 1. 31. 18:09
728x90
반응형
MS-SQL의 저장 프로시저 호출을 위하여  TADOStoredProc를 이용할 때는 파라미터의 순서를 반드시 일치 시켜야함을 주의해야만 합니다.

MS-SQL에 다음과 같은 저장 프로시저가 있다고 가정한다면,

test_proc @param1 INT, @param2 VAHRCHAR(20), @param3 DATETIME

TADOStoredProc를 이용할 때는 다음과 같이 동적으로 파라미터를 순서에 맞게 생성해 주거나, IDE의 Object Inspector에서 TADOStoredProc 컴포넌트의 Parameters 속성에 직접 파라미터들을 생성해 주어야 합니다.

procedure TForm1.Button1Click(Sender: TObject);
var
  AADOStoredProc : TADOStoredProc;
begin
  AADOStoredProc := TADOStoredProc.Create(nil);
  with AADOStoredProc do
  try
    Connection := ADOConnection1;
    ProcedureName := 'test_proc';
    Parameters.CreateParameter('@param1', ftInteger, pdInput, 0, 1);
    Parameters.CreateParameter('@param2', ftString, pdInput, 0, 'test');
    Parameters.CreateParameter('@param3', ftDateTime, pdInput, 0, Now);
    ExecProc;
  finally
    AADOStoredProc.Free;
  end;
end;

위와 같이 파라미터 순서를 정확하게 일치시켜야 저장 프로시저가 올바로 실행됩니다.
아래 그림은 IDE의 Object Inspector에서 TADOStoredProc 컴포넌트의 Parameters 속성에 직접 파라미터들을 생성한 모습입니다.
사용자 삽입 이미지