반응형
안녕하세요 메르세데스입니다. 정말 오랜만에 글을 쓰게 되었습니다.
델파이에서 오라클 컴포넌트(Oracle Data Access Component)를 이용하여 Stored Procedure를 실행하는 방법을 알아보고자 합니다.
이 컴포넌트를 이용하고자 하는 이유는.. 데이터베이스와의 통신을 위한 별도의 배포 파일이 필요하지 않은 장점이 있기 때문입니다.
복잡하면 혼란이 가중되기 때문에 딱 필요한 설정만 소개드립니다.
위 화면처럼 두 개(OraSession, OraStoredProc) 만 올려놓으시면 됩니다.
그리고 버튼에 아래처럼 코딩을 하시면 됩니다.
procedure TForm1.RzButton1Click(Sender: TObject);
var rslt : integer;
begin
try
OraSession1.ConnectString := '계정명/passwd@서버ip주소:포트번호:SID';
OraSession1.Options.Net := true;
OraSession1.AutoCommit := true; //기본은 true임..
//OraSession1.PoolingOptions.ConnectionLifetime := 10;
//OraSession1.Pooling := TRUE;
OraSession1.Connect;
OraStoredProc1.Session := OraSession1;
OraStoredProc1.StoredProcName := 'PC_MOI_DSCH_EXCUTE';
OraStoredProc1.PrepareSQL;
OraStoredProc1.ParamByName('in_wkpers').AsString := '33333';
OraStoredProc1.ParamByName('in_nm' ).AsString := '테스트';
OraStoredProc1.ParamByName('in_stat' ).AsString := 'A';
OraStoredProc1.ParamByName('in_wkpers').AsString := '33333';
OraStoredProc1.Execute;
//SHOWMESSAGE( OraStoredProc1.ParamByName('o_rslt').AsString );
// rslt := MessageDlg('저장할까?',mtConfirmation,[mbOK,mbCancel],0);
//
// if rslt = 1 then
// begin
// OraSession1.Commit;
// end
// else if rslt = 2 then
// begin
// OraSession1.Rollback;
// end;
finally
OraSession1.Disconnect;
end;
end;
StoredProcName에.. 오라클에 만들어놓은 프로시저 이름을 적어주시면 됩니다.
ParamName에.. 프로시저 호출 시 선언되어 있는 인자 값의 이름을 넣어주시고 값을 대입해주시면 됩니다.
파라미터의 인자를 out으로 설정하시면 원하는 결괏값을 받아볼 수 있습니다. 정말 간단합니다.
AutoCommit의 설정을 할 수 있어 편리합니다. 기본 값은 true입니다.
잘 만들어진 프로시저를 연결만 하면 되기 때문에 Procedure 코딩을 잘하시는 분들에게 효과적인 방법입니다.
반응형
'프로그래밍 > delphi' 카테고리의 다른 글
odac, Table-type변수를 이용한 데이터 저장(oracle, procedure, delphi) (1) | 2022.08.24 |
---|---|
odac oracle procedure cursor(커서)로 결과 조회 (delphi7 ) (1) | 2022.08.22 |
DELPHI 폼생성에서 종료까지~ (0) | 2017.09.23 |
DELPHI 컴포넌트 생성시 매개변수의 의미? (0) | 2017.09.22 |
delphi overload (0) | 2017.09.21 |
댓글