C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[92] DB Programming Tip 1 --- Connect Oracle
에보니.^ㅅ^ [ebony] 9918 읽음    2001-05-24 23:30
안녕하세요 에보니입니다.

팁란에는 글을 처음 써보네여. 물론 글을 안쓴 게시판도 많아여.
여기에 제가 그동안 에보니를 사용하면서 익혔던 내용들을 부족하나마 써 보겠습니다.
혹 틀린 내용을 발견하시거나 제가 잘못알고 있다고 생각하시는 분들은 바로잡아 주세요.

첫번째 팁은 에보니(C++Builder)를 사용하여 오라클 데이타베이스 서버에 연결하는 것입니다.

일단 오라클과 연결하려면 오라클 데이타베이스 서버와 오라클 데이타베이스 클라이언트가 있어야 합니다.
그리고 물론 에보니로 만든 데이타베이스 어플리케이션이 있겠죠.

개발자가 데이타베이스 서버에 연결하여 데이타를 조작 가공 분석하는 어플리케이션을 제작하려면 그 어플리케이션은 분명 데이타베이스 서버에서 데이타를 가져오는 과정을 거쳐야 됩니다. 즉 데이타베이스 클라이언트를 그 어플리케이션이 포함하고 있거나 사용해야 한다는 거죠.

오라클 데이타베이스 서버는 대용량의 데이타베이스 서버이기 때문에 주로 대학교, 은행, 관공서, 큰 기업의 전산실에 다양한 플랫폼의 OS(운영체제) - 유닉스, 솔라리스, 리눅스, 윈도우즈 NT/2000 에 설치되어 있습니다. 그리고 데이타베이스 서버를 관리하는 관리자(흔히 dba라고 부른다)가 있습니다.

보통 개발자는 dba에게 사용자 계정과 패스워드, 그리고 각종 오라클 데이타베이스 서버정보들 (서버의 호스트네임--보통은 아이피주소, 서비스네임정보, 프로토콜--보통 TCP/IP, 포트--오라클은 주로 1521포트를 사용함니다, 버젼)을 요청하고 이것으로 오라클 클라이언트를 구성하게 됩니다.

자 오라클 클라이언트를 설치하기 위해 Oracle for Windows 나 Oracle SQL*Net 시디롬을 넣고 인스톨러를 실행시켜 SQL*Net Client 프로그램과 SQL*Net TCP/IP 프로그램을 설치합니다.

오라클 클라이언트 프로그램 중에서 중요한 2가지 프로그램이 있는데

첫째가 사용자계정과 패스워드, 그리고 앨리어스를 사용해서 직접 오라클 데이타베이스 서버에 접속하여 질의를 수행할 수 있는 SQL*PLUS 프로그램 입니다. 사용하는 방법은 다음 팁에서 자세히 쓰겠습니다.

두번째는 앨리어스를 생성 편집하여 오라클 클라이언트를 구성해주는 Net Easy Config 입니다. 이 Net Easy Config 에서 앨리어스를 생성하고 --- 실제로 앨리어스명은 아무래도 좋음. 하지만 일단 생성한 앨리어스 명은 아주 중요함 --- dba로 부터 얻은 서버 정보들을 가지고 앨리어스를 설정합니다. 모든 정보를 설정한 뒤에는 연결검사를 실행해 접속이 성공적으로 수행되었는지 확인합니다.

그러면 이렇게 구성된 앨리어스(여기선 실제로 오라클 클라이언트)를 어플리케이션이 어떻게 사용할까요?

C++ Builder 에는 BDE라고 하는 막강한(?) 데이타베이스 엔진이 내장되어 있는데 이 BDE가 어플리케이션과 오라클 클라이언트를 연결하고 데이타베이스 서버의 데이타에 접근할 수 있게합니다. 즉 쉽게 말해서 어플은 BDE 앨리어스 를 통해서 오라클 클라이언트와 연결되고 이 오라클 클라이언트가 Net Easy Config에서 설정한 앨리어스 를 사용해 서버에 접속하여 질의, 입력, 수정, 삭제등과 같은 데이타에 관계된 일들을 처리할 수 있다는 것이죠.

그럼 BDE 앨리어스를 어떻게 설정하는지 알아봅시다.

1. BDE Administrator를 실행시키고 Configuration탭의 Drivers/Native/Oracle 메뉴를 설정한다.
  
    이때 중요한 것은 벤더와 DLL32인데 오라클의 각 버젼에 맞게 벤더와 DLL32를 맞게 정해야 합니다.
   
    Oracle 7.X 버젼인 경우 ----> SQLORA32.DLL
    Oracle 8.x 버젼인 경우 ----> SQLORA8.DLL    로 맞게 설정합니다.
   
    Vendor Init 의 경우   -----> 대부분 OCI.DLL 로 설정됩니다.

    그외에도 나머지 잡다한 중요할 것 같은 정보가 많이 있는데 입력안해도 됩니다.
   

2. 1 의 화면에서 Database 탭을 눌러서 BDE 앨리어스를 생성합니다.

    이때 중요한 것이 1에서 설정한 네이티브 드라이버로 생성해야 한다는 거에요. 그러니까 여기선

    오라클로 정해야 합니다. ORACLE로 정하면 1에서 네이티브 드라이버를 설정할때와 거의 같은 사항들

    이 나타납니다. 여기서 서버네임 항목을 Net Easy Config 에서 생성한 앨리어스를 써 넣습니다.

   끝을 누르면 콤보박스가 나타나는데 거기 만약 앨리어스가 표시되지 않으면 문제가 생긴것입니다.

   그 밖의 여러가지 캐쉬 정보나 다양한 Mode 들, BLOB(binary large Object --- 이미지나 메모) 필

   드 설정, 언어 등등이 있으나 디폴트 값을 사용하셔도 크게 문제가 안됩니다. 중요한 것은 서버네임으로

   오라클 클라이언트 앨리어스를 설정하는 것입니다. 사용자명도 입력안해도 됩니다.

3. C++ Builder 에서 Data Access, Data Controls 컴포넌트로 어플리케이션을 제작한다.

   여기서 중요한 것은 자료모듈이건 웹모듈이건 심지어 폼위든 간에 데이타베이스 컴포넌트의 설정입니

   다. 데이타베이스 컴포넌트를 두 번 클릭해서 2 에서 설정한 BDE 앨리어스를 Alias Name 에 써 주

   거나 고릅니다. 그리고 Option 에서 Login Prompt 를 체크 빼고 적당한 데이타 베이스명을

   Database Name 에 기록합니다. Default 버튼을 누르면 Parameter Overrides 메모창에 디폴트

   설정이 나타나는데 여기서 USER NAME, PASSWORD 만 제외하고 나머진 다 제거하고 DBA로 부터 받은

   사용자 계정과 패스워드를 입력합니다. 데이타베이스 컴포넌트의 설정이 끝나면 이 데이타베이스 이름

   을 테이블이나 쿼리 컴포넌트의 DatabaseName 프로퍼티에 기록하면 제작하고 있는 어플리케이션에서

   서버의 데이타를 조작할 수 있습니다. 결국은 데이타베이스 컴포넌트의 사용자 정보로 데이타베이스 서

   버에 접속하는 것이 됩니다.

여기 까지가 C++ Builder 에서 오라클을 연결하여 데이타베이스 어플리케이션을 작성하는 방법이며 배포는 다른 팁에서 다루도록 하겠습니다. 요약을 하자면...

1. 테이블, 쿼리등 데이타셋 컴포넌트 --- 데이타 소스 컴포넌트로 DB Grid 등의 컨트롤 컴포넌트와
   연결되며 데이타베이스 컴포넌트의 데이타베이스명을 사용한다.

2. 데이타베이스 컴포넌트 ---- BDE 앨리어스를 사용한다.

3. BDE 앨리어스 ----  오라클 클라이언트가 설정한 앨리어스를 서버네임으로 사용한다.
   오라클 클라이언트의 버젼 종류에 따라 드라이버와 설정들이 달라진다.

4. 오라클 클라이언트 ---- Net Easy Config 에서 생성한 앨리어스와 그 정보를 가지고 데이타베이스
   서버에 연결한다. 단 앨리어스명은 서버내의 설정과 아무런 관계가 없다. 일단 데이타베이스 컴포넌트
   에서 설정된 사용자가 로그인이 되면 그 사용자에게 지정된 권한과 롤, 테이블 스페이스 내에서만
   작업 할수 있다.

상기의 방법은 지정된 드라이버로 직접 서버에 접속하는 방법이며 ODBC를 사용한 방법보다 속도면에서 훨씬 낫습니다.

그럼 다음 팁을 기다려 주세요.

+ -

관련 글 리스트
92 DB Programming Tip 1 --- Connect Oracle 에보니.^ㅅ^ 9918 2001/05/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.