델파이코딩_개발일지

델파이코딩_오라클DB 관련 컴포넌트 알아보기

천재메기 2023. 2. 7. 17:38

오늘은 오라클 연결하는 것에 대해 배웠다.

ODAC (Oracle Data Access Components) : 우리 회사에선 오다컴포넌트(?) 라고 부른다.

  • 델파이에서 이 컴포넌트를 쓰면 오라클 클라이언트 없이 DB를 직접 연결할 수 있다.
  • ODBC 등 연결이 불필요하다.
  • TCP/IP를 통한 다이렉트 연결이다.

아래와 같이 오라클 DB에 접근할 수 있는 다양한 컴포넌트들이 존재한다.

오라클 DB 연결해주는 컴포넌트들

그 중에서도 제일 중요한 거!

타입 용도
TOraSession 데이터베이스 연결을 위한 컴포넌트
TOraQuery 사용자가 SQL문을 입력하여 데이터베이스로부터 데이터를 가져옴
TOraTable 데이터베이스와 직접 일대일로 테이블을 가져오기 위한 컴포넌트. 조인된 데이터는 불가
TOraDataSource TOraQuery나 OraTable로 가져온 데이터를 사용자 인터페이스(DB Controls)와 연결해주는 컴포넌트
TOraStoredProc 서버의 저장 프로시저를 실행하기 위한 컴포넌트

 

  • 오라쿼리는 말그대로 쿼리문 짠 것을 바탕으로 DB에서 값을 받아오는 것이다.
  • 오라데이터소스는 명령에 대한 결과물을 담아놓는 공간이다.
  • 오라스토어프로시저는 DB에 정의해준 명령을 실행하기 위한 컴포넌트이다.

 

폼에 들어간 오다컴포넌트들 모습 - 얘네는 컴파일 시 비공개모드이다

  1. 이렇게 위와 같은 오라클 데이터베이스를 연결해주는 컴포넌트들을 가져온 후에,
  2. DB를 컨트롤 해주는 컴포넌트들을 가져와서 쓰면 된다!

데이터 컨트롤 컴포넌트들

특히 이 중에서도 우리는 TCxGrid와 TCxTreeList 라는 것을 가장 많이 사용한다!

<< 바운드 방식으로 작업하기 >>

바운드 방식 :
DB에 직접 접근하는 방법. 쌍방향으로 연결되기 때문에 사용자가 입력한 값이 실제 DB에도 반영되어 영향을 받는다. 

언바운드 방식 : 
DB를 직접 접근하지 않고 간접적으로 접근하고(보여주기만 한다든지), 실제 DB에는 영향을 주지 않는 방식.
대신 실제 데이터 베이스의 값을 변경하려면 별도로 처리해줘야함.

오라세션을 더블클릭하면 DB 계정을 연결해줘야 한다.

  • Host란 오라클이 서비스되는 PC의 IP주소를 말한다.
    (IP주소를 확인하고 싶을 땐 컴퓨터에서 cmd 명령 창을 활성화하여 ipconfig를 입력하여 확인할 수 있다.)
  • SID는 내 PC에 설치된 오라클 DB의 이름 그 자체를 말한다.
    (예를 들어 오라클 DB이름을 'myungsoo' 라고 해놨으면 작업관리자에서도 명수라는 이름으로 오라클이 돌아가고 있다.)
  • Port
  • ID / password 를 입력해준다.

그후에, 오라쿼리에 상위인 오라세션을 연결해주고, 오라데이터소스에 오라쿼리를 연결해준다.

오라세션 > 오라쿼리 > 오라데이터소스

 이렇게 각각 데이터를 연결을 해주자.

 

그리고 이런 애들을 폼에 여러개 올려놓을 때는 당연히 헷갈릴 수 있기 때문에 이름을 잘 지어줘야 한다.

이름도 지어주고 Active 가 True 인지도 봐주고,

지정된 데이터도 잘 맞는지 확인해줘야 한다.

 

이후 TOraDataSource를 더블클릭하여서 쿼리문을 작성해놓고,

select * from Basic_program_info;

폼에다가 

TCxGrid를 가져다 놓고, 데이터 소스를 연결해준 후

Retrieve Field 를 눌러주고 Active를 True로 해주면 연결된다!