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

DELPHI Oracle Data Access Components (ODAC)를 이용한 간단한 조회

by 메르세데쓰 2015. 6. 9.
반응형

안녕하세요 메르세데스입니다.


이번시간에 해보려는것은 Oracle Data Access Components (ODAC) 를 이용하여 간단한 조회 프로그램을 만들어 보는 것입니다.


저희 사이트에서는 데이터베이스를 3-Tier기반으로 접근하는데요.. WAS가 워낙 옛날 제품인지라..  마음대로 잘 안되는것들이 있습니다.  그중 하나가..  LOB-TYPE을 불러오는 것인데요..  Oracle에 보면 LONG RAW type의 lobtype이 있고.. BLOB.. CLOB 도 있죠..  


네.. 뭐 아무튼 결론적으로 BLOB의 데이터가 처리되지 않아서 방법을 강구해야만 했습니다.


델파이의 DB연결을 하는 컴포넌트를 이용해 보려고합니다.    ODAC의 경우 장점이라면  오라클 클라이언트 프로그램을 개개의 PC마다 설치하지 않고 특정 DLL만 배포하면 되기 때문에 편리하죠..


참고로 제가 사용하는 델파이는 6 버전입니다.


그래서.. 컴포넌트의 버전도 매우 낮습니다.  하지만 이것만 가져도 아직까지는 큰 문제는 없는 것 같습니다.


ODAC


뭐.. DB그리드니 프로바이더니 이런거 다 필요없고.. 간단하게.. SELECT만 해보려고 합니다.


OraSession,  OraQuery 두개만 붙여 넣으면 됩니다.


Session쪽의 설정은...  아래에 표시된 부분에 아래처럼 넣어주시거나.. 코딩으로 구현하시면 됩니다.


주의하실점은.. Server로 표시된부분에.. 입력하는 방법인데요  포트번호 입력란이 없는데 ... 


ODAC


Server : [db서버ip] : [포트번호] : [sid명]  이렇게 입력해주시면 됩니다.  


아니면.. 아래처럼.. 버튼이나 procedure를 만들어서 관련정보들을 직업 소스로 넣으셔도 됩니다. 실무에서는 두번째 방법을 선호하죠..  클릭하는게 매우 번거롭거든요..


ODAC session설정및 sql문입력/조회



만약 DB 이중화가 되어있다면..   그에 맞춰서 코딩을 해야겠죠..?


그리고 OraQuery 컴포넌트에  SQL구분을 위 처럼 넣어주시면 됩니다.   파라메터를 설정하면 조건에 따라 결과물을 얻는것이 수월하겠죠..? 사용하는 방법은 바인드변수 앞에 [클론] : 을 입력해 주시면 됩니다.


그런데 위의경우는 결과가 딱 1줄만 나오는 경우에 해당하기 때문에 크게 문제가 되지 않지만.. 경우에 따라 가변적인 결과가 나오는 경우가 있을겁니다 이럴경우..


아래와같이 loop문을 이용해서 처리하면 됩니다  .Next라는 것을 써주시면.. 다음 항목으로 넘길 수 있습니다.


ODAC 리스트단위의 결과받기


저는 TreeView에 불러온 항목을 추가하려고 위에 처럼 구현해 봤습니다.


결과를 불러올때는  Fields[0].AsString 이런식으로 받으시면 됩니다.  Select문의 첫번째 컬럼의 결과를 String-Type으로 받는 것입니다.


그리고 작업이 마무리되었으면..   연결을 끊어주시는 것 잊지 말아주시고요..


OraQuery1.Close;

OraSession1.Connected := false 


이상으로 DELPHI에서 Oracle Data Access Components (ODAC)를 이용한 간단 조회하기 였습니다. 감사합니다.






반응형

댓글