본문 바로가기
프로그래밍/delphi

stored Procedure 연결하기 Oracle Data Access Component delphi

by 메르세데쓰 2019. 10. 16.
반응형

안녕하세요 메르세데스입니다. 정말 오랜만에 글을 쓰게 되었습니다.

 

델파이에서 오라클 컴포넌트(Oracle Data Access Component)를 이용하여 Stored Procedure를 실행하는 방법을 알아보고자 합니다.

 

이 컴포넌트를 이용하고자 하는 이유는.. 데이터베이스와의 통신을 위한 별도의 배포 파일이 필요하지 않은 장점이 있기 때문입니다.

 

Oracle Data Access Components

 

ODAC에서 제공하는 Component

 

 

복잡하면 혼란이 가중되기 때문에 딱 필요한 설정만 소개드립니다.

 

OraSession, OraStoredProc 두개만 폼에 올려놓습니다.

 

위 화면처럼 두 개(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 코딩을 잘하시는 분들에게 효과적인 방법입니다.

 

 

반응형

댓글