프로그래밍/델파이
MS-SQL의 저장 프로시저 호출을 위하여 TADOStoredProc를 이용할 때의 주의점.
채윤아빠
2008. 1. 31. 18:09
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 속성에 직접 파라미터들을 생성한 모습입니다.
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 속성에 직접 파라미터들을 생성한 모습입니다.

728x90
반응형