여러분의 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 15504
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13974
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16509
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22069
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23290
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18934
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39283
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174737
614 2020년 5월 GM 업데이트 - 여러분의 비즈니스에 길을 열어주세요! 관리자 2020.05.26 317
613 델파이 안드로이드 개발을 위해 OpenJDK 채택 file 김원경 2020.05.25 905
612 엠바카데로 오픈 소스 프로젝트 관리자 2020.05.25 709
611 [10.4 시드니 신기능] 겟잇 패키지 매니저(GetIt Package Manager) 개선 험프리 2020.05.21 606
610 [10.4 시드니 신기능] 컨트롤 개별 VCL 스타일 적용(Per-Control Style) 적용 험프리 2020.05.19 929
609 [10.4 시드니 신기능] 새로운 VCL TEdgeBrowser 컴포넌트 험프리 2020.05.18 22935
608 [고객 사례- 솔루션, 델파이] Beyond Compare - 데이터, 시스템 비교/병합/관리 프로그램 관리자 2020.05.14 763
607 [고객 사례- 솔루션, 델파이] AlignMix - 시각화된 세일즈 관리 도구 관리자 2020.05.12 375
606 [발표자료] 20200429 델파이 Push 메시지 전송 시스템 구현 방법 with 구글 Firebase [3] file 관리자 2020.05.04 1041
605 헬스케어 분야에서의 델파이 - 코로나에 맞서며 file 김원경 2020.04.29 614
604 [고객 사례- 의료, 델파이] COVID-19 격리 대상자 상태 관리 앱 관리자 2020.04.28 656
603 이 달의 기술자료 - 2020년 05월 file 험프리 2020.04.24 350
602 [사례 소개] 데브기어 마이그레이션 유상 컨설팅 사례 험프리 2020.04.22 552
601 델파이용 벡터 컨테이너 file 김원경 2020.04.14 760
600 [프로그래밍 애피타이저] 개발이 처음이거나 비 전공자 분들을 위한 가장 첫 번째 STEP! 관리자 2020.04.13 2480
599 [프로그래밍 애피타이저] 10장 트랜잭션의 정의 file 김원경 2020.04.09 440
598 [프로그래밍 애피타이저] 9장 저장프로시저와 트리거 file 김원경 2020.04.09 598
597 [프로그래밍 애피타이저] 8장 SQL 정의와문법 file 김원경 2020.04.09 681
596 [프로그래밍 애피타이저] 7장 데이터베이스 개념과 용어정의 file 김원경 2020.04.09 756
595 [고객 사례- POS, 주문, 델파이, 모바일] 마리스코스 - 레스토랑 주문 관리&전송 앱 관리자 2020.04.08 621