Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

[가이드]튜토리얼: FireDAC을 데스크탑 플랫폼 용 멀티-디바이스 애플리케이션에서 사용하기


Recommended Posts

Docwiki에 있는 "Tutorial: Using FireDAC from a Multi-Device Application on Desktop Platforms"을 번역한 글: 번역일: 2022년 8월 3일

위로 가기: Database and LiveBindings Tutorials

목차


이 튜토리얼은 윈도우 컴퓨터와 맥OS 컴퓨터에서 관리하는 로컬 데이터베이스 (InterBase ToGo 데이터베이스 엔진 사용)에 있는 데이터를 조회하는 애플리케이션을 만들기 위해 FireDAC 프레임워크를 사용하는 기본 절차를 설명한다.

참고: 이 튜토리얼을 따라하려면 IBToGo 라이선스가 필요하다. 평가판 사용자라면, 평가판 사용 기간 중에 IBToGo 테스트 배포 라이선스 역시 사용할 수 있으므로 맥OS에 이 데이터베이스를 배포할 수 있다. 평가판용 배포 라이선스를 활성화하는 방법은 InterBase ToGo Deployment에 설명되어 있다.

 

1 FireDAC을 사용하여 데이터베이스에 연결하기

FireDAC은 데이터 연결을 일원화할 수 있도록 제공되는 유니버설한 데이터 액세스 컴포넌트(들) 세트이다. 이것은 데이터베이스를 사용하는 멀티-디바이스 애플리케이션을 델파이와 C++빌더 개발환경에서 만들 때에도 사용된다. FireDAC의 아키텍처는 강력하고 공통 기반으로 되어 있어서, 델파이 또는 C++빌더에서 InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, IBM DB2, SQL Anywhere, Access, Firebird, Informix, 등등에 고속으로 직접 접근을 할 수 있다.

FireDAC에 있는 엠바카데로 인터베이스(InterBase)용 네이티브 드라이버는 인터베이스 서버, 데스크탑, 디벨로버, 투고(ToGo), IBLite 에디션은 인터베이스 6.0 버전 이상을 지원한다.

  • 윈도우에서 작동하고 있는 Interbase ToGo에서 관리하는 데이터를 조회하려면, 해당 작업을 하는 컴퓨터에 다음과 같은 x86 또는 x64 클라이언트 소프크웨어가 설치되어 있어야 한다.
    • IBTOGO.DLL 라이브러리는 x86 애플리케이션에서 임베디드 데이터베이스인 InterBase ToGo 또는 IBLite를 사용하는 데이터베이스를 다룰 수 있다.
    • IBTOGO64.DLL 라이브러리는 x64 애플리케이션에서 임베디드 데이터베이스인 InterBase ToGo 또는 IBLite를 사용하는 데이터베이스를 다룰 수 있다.
  • 맥OS에서 작동하고 있는 Interbase ToGo에서 관리하는 데이터를 조회하려면, libibtogo.dylib x86 embedded InterBase가 있어야 한다.

2 사용자 화면 (UI)를 디자인하고 구성하기

새 프로젝트를 하나 만들자. 이때 Multi-Device Application을 선택한다.

  1. 폼(form) 위에 TFDConnection 컴포넌트를 하나 올려 놓는다.
  2. 올려놓은 TFDConnection 컴포넌트를 오른쪽 클릭하고 Connection Editor를 선택한다.
  3. FireDAC의 Connection Editor 안에서, 이 TFDConnection의 파라미터(들)을 다음과 같이 지정한다
    1. Driver ID 프로퍼티에는 IB를 지정한다.
    2. Database 파라미터에는 다음과 같이 지정한다: C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\EMPLOYEE.GDB (데이터베이스가 있는 위치)
    3. User_name 파라미터에는 sysdba를 지정한다.
    4. Password 파라미터에는 masterkey를 지정한다.
      600px-Connection_editor.png
    5. Test 버튼을 클릭하여 해당 연결 정보로 성공적으로 연결되는 지를 확인한다.
      TestConnectionSuccess.png
    6. OK를 클릭하여 FireDAC Connection Editor를 종료한다.
  4. 오브젝트 인스펙터 (Object Inspector) 안에서 TFDConnection를 선택하고, 이 오브젝트의 프로퍼티(들)을 아래와 같이 지정한다.
    1. LoginPrompt 프로퍼티를 False로 지정하여, 사용자에게 데이터베이스 로그인을 요구하는 창이 나타나지 않도록 한다.
    2. Connected 프로퍼티를 True로 지정한다.

3 라이브바인딩스(LiveBindings) 마법사 사용하기

라이브바인딩스(LiveBindings) 마법사를 사용하여 라이브바인딩스 컴포넌트(TBindSourceDB, TBindingsList), TFDQuery, Grid 컴포넌트를 추가한다

3.1 라이브바인딩스(LiveBindings) 컴포넌트 추가하기

  1. View > LiveBindings Designer를 선택하여 LiveBindings Designer를 연다.
  2. LiveBindings Wizard 를 선택한다.
    SelectLiveBindWizard.png
  3. binding task에서 Create a data source를 선택하고 Next 버튼을 클릭한다.
  4. Data source 페이지에서 FireDAC을 선택하고 Next 버튼을 클릭한다.
  5. Command TypeQuery로 변경한다.
  6. Command Text 프로퍼티에서 select * from employee를 지정한다.
    Livebinding_wizard.png
  7. Test Command 버튼을 클릭한다.
  8. Next 버튼을 클릭한다.
  9. Add data source navigator를 선택한다.
  10. Finish 버튼을 클릭한다.

위 작업을 마치자 마자 TBindSourceDB 컴포넌트, TBindNavigator 컴포넌트, TFDQuery 컴포넌트가 폼(form) 위에 추가된다.

3.2 그리드(Grid) 컴포넌트 추가하기

  1. LiveBindings Wizard 를 다시 연다.
  2. binding task에서 Link a grid with a data source를 선택한다.
    Livebinding_wizard.1.png
  3. Next 버튼을 클릭한다.
  4. TSringGrid를 선택한다.
  5. Next 버튼을 클릭한다.
  6. BindSourceDB1을 선택한다.
  7. Finish 버튼을 클릭하여 LiveBindings 마법사를 종료한다.

위와 같이 했다면, 바인딩 다이어그램의 모습이 다음과 같아야 한다.
Diagram.png

4 애플리케이션 런타임 준비 작업

FireDAC의 아키텍처는 서로 헐겁게-짝지어지는(loosely-coupled) 여러 계층으로 구성되고 (multilayered) 각 층마다 담당하는 서비스가 있다. 서비스 API는 COM 인터페이스로 정의되어 있어서 다른 계층에서 요청을 보낼 때 해당 인터페이스 팩토리(interface factory)를 사용한다.
FireDAC이 올바로 작동되도록 하려면, 반드시  IFDGUIxWaitCursor 인터페이스와 IFDPhysDriver 인터페이스에 대한 구현을 연결해야만 한다.

  1. NavigatorBindSourceDB1을 선택하고 Align 프로퍼티에 Top을 지정한다.
  2. StringGridBindSourceDB1을 선택하고 Align 프로퍼티에 Client를 지정한다.
  3. TFDGUIxWaitCursorTFDPhysSQLiteDriverLink 를 폼(form)위에 놓아둔다.
    700px-FormComponentsAdded.png

5 애플리케이션을 맥OS로 배포하기

앞에서 당신이 사용한 InterBase는 개발 장비인 데스크탑에 있는 것이다. 즉, 사용하는 InterBase의 실제 위치가 당신의 로컬 하드 디스크 드라이브 (예: C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\EMPLOYEES.GDB)에 있다. 당신의 애플리케이션을 맥OS로 배포하려면, 해당 데이터베이스 파일도 맥OS의 파일 시스템 안에 복사해야 한다 (예, /Users/<user>/EMPLOYEE.GDB). 또한 Interbase ToGo 파일(들) 역시 반드시 맥OS에 배포되어야 한다.

5.1 InterBase ToGO를 맥OS로 배포하기

  1. Project > Deployment를 선택하여 배포 관리자 (Deployment Manager)를 연다.
  2. 배포 관리자의 윗부분에 있는 target platforms 드롭-다운 목록에서 All-Configurations - macOS platform를 선택한다.
  3. Add Featured Files 를 선택한다.
    AddingFeaturedFiles.png
  4. Interbase ToGo 데이터 모듈을 선택하고 OK를 선택하여 Featured Files 대화창을 종료한다.
    Featured_files.png
    그 전에 엠바카데로로부터 ToGo 라이선스 파일을 받아두었어야 한다. 이 라이선스 파일의 이름은 reg_nnnnnnn.txt 과 같은 형태이며, nnnnnnn는 자동 생성된 숫자이다.
  • 받아둔 라이선스 파일을 사용하여 reg_ibtogo.txt (C:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBase2020 경로에 있음) 파일을 덮어써놓은 경우에는 해당 라이선스 파일을 선택하기만 하면 된다.
  • 받아둔 라이선스 파일 이름을 그대로 사용한 경우에는, Add Files를 선택하고, 애플리케이션과 함께 배포되어야 하는 파일 목록 안에 이 라이선스 파일도 추가한다.

5.2 맥OS 장비에 있는 로컬 데이터베이스에 연결되도록 코드를 변경하기

앞에서 설명한 바와 같이, TFDConnection 컴포넌트는 지금 개발 장비인 윈도우 컴퓨터 안에 있는 데이터베이스를 연결하고 있다. 따라서 데이터베이스에 연결하기 전에 연결할 데이터베이스의 위치를 바꿔주어야 한다. 다음과 같이 한다.

  1. 폼 디자이너 (Form Designer)에서 FDConnection1 컴포넌트를 선택한다.
  2. 오브젝트 인스펙터 (Object Inspector)에서 BeforeConnect 이벤트를 더블-클릭한다.
  3. 이벤트 핸들러에 아래 코드를 추가한다.

델파이:

procedure TForm9.FDConnection1BeforeConnect(Sender: TObject);
begin
{$IFDEF MACOS}
  FDConnection1.Params.Values['Database']:= '$(DOC)/EMPLOYEE.GDB';
{$ENDIF}
end;

C++빌더:

void __fastcall TForm9::FDConnection1BeforeConnect(TObject *Sender) {
#ifdef __MACOS__
 FDConnection1->Params->Values["Database"] = "$(DOC)/EMPLOYEE.GDB";
#endif
}

알아둘 점: $(DOC)은 경로 변수 (path variable)이다. 경로 변수를 이용하면 경로 표현식 작성을 간편하게 할 수 있다. $(DOC)는 맥OS에서는 사용자의 홈 디렉토리 (/Users/<user>)를 가리킨다. 

6 개발한 애플리케이션을 윈도우 컴퓨터와 맥OS 컴퓨터에서 실행하기

이제 애플리케이션을 실행할 준비가 끝났다. 이제 배포된 애플리케이션에서도 개발환경(IDE)에서와 마찬가지로 데이터를 조회할 수 있다. 또한 TBindNavigator 컴포넌트를 사용하여 원하는 데이터로 가서 레코드를 변경할 수도 있다.

애플리케이션을 실행하려면,

  1. 프로젝트 창 (Projects Window)에서 원하는 타겟 플랫폼을 선택한다.
    Projects.png
  2. 다음 명령 중 하나를 실행한다.
    • Run > Run
    • Run > Run Without Debugging

700px-RunTimeMac.png

 

7 기타 참고 (See Also)

 

 


View full 엠바카데로 개발도구 가이드

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

 공유하기

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.