안녕하세요 메르세데스입니다.
이번시간에 해보려는것은 Oracle Data Access Components (ODAC) 를 이용하여 간단한 조회 프로그램을 만들어 보는 것입니다.
저희 사이트에서는 데이터베이스를 3-Tier기반으로 접근하는데요.. WAS가 워낙 옛날 제품인지라.. 마음대로 잘 안되는것들이 있습니다. 그중 하나가.. LOB-TYPE을 불러오는 것인데요.. Oracle에 보면 LONG RAW type의 lobtype이 있고.. BLOB.. CLOB 도 있죠..
네.. 뭐 아무튼 결론적으로 BLOB의 데이터가 처리되지 않아서 방법을 강구해야만 했습니다.
델파이의 DB연결을 하는 컴포넌트를 이용해 보려고합니다. ODAC의 경우 장점이라면 오라클 클라이언트 프로그램을 개개의 PC마다 설치하지 않고 특정 DLL만 배포하면 되기 때문에 편리하죠..
참고로 제가 사용하는 델파이는 6 버전입니다.
그래서.. 컴포넌트의 버전도 매우 낮습니다. 하지만 이것만 가져도 아직까지는 큰 문제는 없는 것 같습니다.
뭐.. DB그리드니 프로바이더니 이런거 다 필요없고.. 간단하게.. SELECT만 해보려고 합니다.
OraSession, OraQuery 두개만 붙여 넣으면 됩니다.
Session쪽의 설정은... 아래에 표시된 부분에 아래처럼 넣어주시거나.. 코딩으로 구현하시면 됩니다.
주의하실점은.. Server로 표시된부분에.. 입력하는 방법인데요 포트번호 입력란이 없는데 ...
Server : [db서버ip] : [포트번호] : [sid명] 이렇게 입력해주시면 됩니다.
아니면.. 아래처럼.. 버튼이나 procedure를 만들어서 관련정보들을 직업 소스로 넣으셔도 됩니다. 실무에서는 두번째 방법을 선호하죠.. 클릭하는게 매우 번거롭거든요..
만약 DB 이중화가 되어있다면.. 그에 맞춰서 코딩을 해야겠죠..?
그리고 OraQuery 컴포넌트에 SQL구분을 위 처럼 넣어주시면 됩니다. 파라메터를 설정하면 조건에 따라 결과물을 얻는것이 수월하겠죠..? 사용하는 방법은 바인드변수 앞에 [클론] : 을 입력해 주시면 됩니다.
그런데 위의경우는 결과가 딱 1줄만 나오는 경우에 해당하기 때문에 크게 문제가 되지 않지만.. 경우에 따라 가변적인 결과가 나오는 경우가 있을겁니다 이럴경우..
아래와같이 loop문을 이용해서 처리하면 됩니다 .Next라는 것을 써주시면.. 다음 항목으로 넘길 수 있습니다.
저는 TreeView에 불러온 항목을 추가하려고 위에 처럼 구현해 봤습니다.
결과를 불러올때는 Fields[0].AsString 이런식으로 받으시면 됩니다. Select문의 첫번째 컬럼의 결과를 String-Type으로 받는 것입니다.
그리고 작업이 마무리되었으면.. 연결을 끊어주시는 것 잊지 말아주시고요..
OraQuery1.Close;
OraSession1.Connected := false
이상으로 DELPHI에서 Oracle Data Access Components (ODAC)를 이용한 간단 조회하기 였습니다. 감사합니다.
'프로그래밍 > delphi' 카테고리의 다른 글
delphi RadioGroup을 활용한 동적 버튼 테스트 (0) | 2015.07.28 |
---|---|
delphi PostMessage를 이용한 프로그램사이의 메시지 전달하기.. (0) | 2015.07.13 |
델파이 dll 모달폼을 일반 폼으로 변경하기 위한 팁.. (0) | 2015.05.29 |
delphi TMS 달력에 특정 날짜에 색 표시하기.... (0) | 2015.04.27 |
delphi exe와 프로그램안에 embadded된 dll프로그램간의 상호간 제어하기 (0) | 2015.04.11 |
댓글