여러분의 FireDAC 애플리케이션에서 DBMS와 접속하기 위해서는 DBMS 제조사에서 제공하는 네이티브 클라이언트 드라이버를 설치해야 합니다. 네이티브 클라이언트 드라이버는 각 제조사 홈페이지를 통해 다운로드 받아 설치할 수 있습니다.

 

오라클 서버에 접속하기 위해서는 오라클 클라이언트 소프트웨어를 설치해야 합니다.

오라클 클라이언트 소프트웨어

오라클 클라이언트 소프트웨어는 아래 2가지 방식으로 제공합니다.

 
  • "Fat" 오라클 클라이언트 - 설치형 오라클 클라이언트 프로그램. 기본 오라클 홈경로에 설치된 오라클 드라이버 이용합니다.
  • "Thin" 오라클 클라이언트 - 파일형 오라클 클라이언트 프로그램. 윈도우 PATH 또는 실행파일과 동일한 경로에 아래 라이브러리 복사해 사용합니다.
    • oci.dll
    • oraocci11.dll
    • oraociei11.dll
    • orasql11.dll

[따라하기] FireDAC을 이용해 오라클 서버와 연결하기

1, 오라클 클라이언트 소프트웨어 설치(Thin 오라클 클라이언트)

오라클 다운로드 페이지( http://www.oracle.com/technetwork/indexes/downloads/index.html )에서 Database > Instant Client 메뉴를 선택합니다.

델파이 개발환경에 맞는 Instant Client for Microsoft Windows (32-bit)를 선택합니다.

상단의 라이선스에 동의 하고 

본인의 오라클 서버 버전의 파일을 찾아 다운로드 합니다.(저는 11.2.0.2 버전의 오라클 서버와 연결합니다.) 

(로그인이 필요하니 오라클 계정이 없는 경우 계정 생성 후 로그인하여 진행합니다.)

 

zip 파일 다운로드 완료 후 압축을 해제합니다.

 

아래 4개 파일을 복사 후 RAD Studio 실행파일 경로(XE7 기준 기본경로: C:\Program Files (x86)\Embarcadero\Studio\15.0\bin)에 복사합니다.

(오라클에 접속할 애플리케이션의 실행파일 경로 또는 윈도우 PATH에 등록된 경로에 오라클 클라이언트 라이브러리가 있어야 합니다.)

  • oci.dll
  • oraocci11.dll
  • oraociei11.dll
  • orasql11.dll

2, 테스트 프로그램 작성

오라클 서버와 접속해 하나의 테이블 데이터를 DBGrid에 표시하며 오라클 서버 연결을 확인합니다.

사전 준비사항

개발PC에서 오라클서버와 접속 가능해야 합니다. 오라클에서 제공하는 SQL Plus 툴(다운로드: 오라클 서버 버전과 맞는 SQLPlus 다운로드)을 이용해 오라클 서버와 접속을 확인합니다.

화면구성과 필요 컴포넌트 추가

 

새로운 프로젝트를 생성합니다.(File > New > VCL Form Application - Delphi)

 

아래의 화면과 표를 참고해 폼에 컴포넌트를 추가합니다.

 

 상위 오브젝트

오브젝트 

속성 

 값(또는 설명)

 Form1  DGGrid1 Width, Height  적당한 크기로 조정 
 FDConnection1    

 FDTable1

 

 

 DataSource1

DataSet

FDTable1 

 FDPhysOracleDriverLink1

 

 

 FDGUIxWaitCursor1

 

 

오라클 서버 연결 설정

폼(또는 데이터모듈) 위에 TFDConnection 컴포넌트를 추가하고 추가한 컴포넌트를 더블클릭 해 "FireDAC Connection Editor" 대화상자를 표시하고 아래 정보를 입력합니다.

 

  • Driver ID : Ora
  • Database : 오라클서버의 주소(형식: IP주소:Port/ServiceName, 예> 192.0.0.1:1521/orcl)
  • User_Name : 오라클 계정
  • Password : 오라클 계정의 비밀번호

테스트 버튼을 눌러 입력한 정보가 정확한지 확인합니다.(로그인 창이 나오면 OK 버튼을 누릅니다.)

Connection Editor 창의 OK 버튼을 눌러 설정을 저장합니다.

TFDConnection 컴포넌트의 LoginPromt 속성을 False로 설정 후 Connected 속성을 True로 설정해 연결합니다.

 

오라클 서버의 데이터 조회 확인

테이블 컴포넌트(FDTable1) 선택 후 TableName 속성에서 조회할 테이블을 선택합니다.

FDTable1의 Active 속성을 True로 설정합니다.

 

DBGrid1의 DataSource를 DataSourc1으로 설정 해 테이블의 데이터가 DBGrid에 표시되는지 확인합니다.

3, 배포하기

애플리케이션 배포 시 오라클 클라이언트 드라이버의 라이브러리 4종을 실행파일과 같은 경로로 함께 배포합니다.

 

문제해결

"Cannot initialize OCI environment" 오류 발생 시

연결 설정 후 아래와 같은 오류가 발생하는 경우

oci.png

오라클 클라이언트 v 9.0 이상을 설치하시기 바랍니다.(유니코드 지원)

운영체제가 64비트이더라도, 32bit Windows 용 오라클 클라이언트 라이브러리를 설치하시기 바랍니다.(RAD 스튜디오 IDE가 32비트 입니다.)

 

기타 오라클 서버 질문 참고

엠바카데로 기술문서의 오라클 서버 질문 페이지를 참고하시기 바랍니다.

참고


번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 17542
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 15924
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 18542
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 24117
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 25500
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 20859
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 41433
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 176770
59 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 71949
58 [10.4 시드니 신기능] 새로운 VCL TEdgeBrowser 컴포넌트 험프리 2020.05.18 22976
57 "Could not load SSL library." 오류 대응(XE7: BaaS, RESTClient, DataSnap) [1] Humphery 2014.09.12 16003
56 XE에서 MySQL 연결오류 및 한글문제 해결 [3] c2design 2013.08.28 10741
55 Runtime Packages 옵션으로 프로그램(배포) 용량 줄이기 [4] file Humphery 2013.12.19 7790
54 [델파이 문법] 프로그램과 유닛 #3 file 관리자 2012.09.10 7462
53 [마이그레이션] 유니코드 적용시 검토할 사항들 file 험프리 2014.08.21 7084
52 C++Builder XE3 파이어몽키 31 비디오(한글자막) 관리자 2013.03.05 6707
51 [델파이 문법] 프로시저와 함수 #3 file 관리자 2012.07.31 6427
50 RAD Studio XE3와 SQLite 관리자 2012.10.09 6332
49 [델파이 문법] 프로시저와 함수 #4 file 관리자 2012.08.02 6116
48 인터베이스(InterBase) 2020 버전을 사용해야 하는 5 가지 이유 file 김원경 2020.04.09 6035
47 DLL 폼에서 VCL 폼 스타일 적용하기 file 김원경 2019.10.28 5857
46 [델파이 문법] 프로시저와 함수 #5 file 관리자 2012.08.06 5541
45 [델파이 문법] 문법 요소 #15 file 관리자 2012.12.25 5397
44 [델파이 웹개발] 델파이로 풀스택 웹 개발하기 - uniGUI 활용 (Full Stack Web Development with uniGUI for Delphi) file 관리자 2021.02.01 4341
43 에러 "InterBase is not licensed"가 Interbase ToGo 사용시 발생하는 경우 관리자 2013.04.04 4140
42 QR/바코드 스캐너 앱 샘플코드(ZXing, TFrameStand 사용) [1] 험프리 2017.08.04 3077
» [따라하기] FireDAC으로 오라클(Oracle) DB와 연결하기 험프리 2015.03.24 3067