새로운 글
새로운 덧글

엠바카데로에서 FireDAC Skill Sprint 웨비나(1월 23일 ~ 3월 27일: 매주 금요일 10시)를 진행하고 있습니다.


이 글에서는 웨비나 다시보기와 함께 웨비나 일부 내용을 샘플코드와 함께 소개합니다. 하단 온라인 기술 도움말 링크를 통해 더 자세한 내용을 추가학습하시기 바랍니다.


9회차에서는 쿼리 결과에서 검색하고, 조인할 수 있는 Local SQL에 대해 알아봅니다.


Local SQL이란?

Local SQL은 DB로부터 애플리케이션의 메모리 상으로 가져온 데이터(데이터셋: TDataSet을 상속받은 객체)를 대상으로 다시 SQL 쿼리를 할 수 있는 기능입니다.


Local SQL은 아래와 같이 사용할 수 있습니다.

  • 여러 이기종 DB들에 대한 쿼리 : 다양한 DB에서 가져온 여러 데이터셋을 대상으로 원하는 데이터 쿼리(조인 가능)
  • 인 메모리 데이터베이스 : TFDMemTable은 메모리상에 있는 데이터셋의 역할
  • 오프라인 모드 쿼리 : 원격 DB에 연결할 수 없는 경우에도, 이미 가져온 데이터셋을 대상으로 쿼리 실행
  • 데이터스냅 클라이언트 쿼리 : 데이터스냅 서버(미들웨어)에서 받아온 데이터셋을 대상으로 쿼리 실행
  • 간편한 마이그레이션 : 애플리케이션 내에서 써드파티를 통해 가져온 데이터셋 객체를 대상으로 쿼리 실행

용어> 데이터셋(DataSet) = 애플리케이션의 메모리 상에 있는 데이터 집합


Local SQL 사용을 위한 FireDAC 컴포넌트 구성

  • TFDConnection의 DriverName을 SQLite로 설정합니다.(FireDAC의 Local SQL 엔진으로 SQLite 드라이버를 사용합니다.)
  • TFDLocalSQL과 TFDQuery 컴포넌트의 Connection을 위의 TFDConnection으로 설정
  • TFDLocalSQL 컴포넌트의 DataSets 컬랙션(속성)에 조회할 데이터셋(TDataSet을 상속받은 객체)을 등록

Local SQL의 설정의 자세한 내용은 엠바카데로 기술문서 - Local SQL (FireDAC) 페이지를 참고하시기 바랍니다.


Local SQL 샘플 프로그램

샘플 프로그램에서는 TFDLocalSQL 컴포넌트를 이용해 5가지의 서로 다른 유형의 데이터셋에서 필요한 데이터만 조회해 그리드에 표시합니다.

[샘플코드는 http://delphi.org/2015/03/firedac-local-sql/에서 받을 수 있습니다.]


샘플에서 중점적으로 확인할 내용

    • 총 5 종류의 서로다른 데이터를 대상으로 쿼리
      • dbExpress : dbExpress를 이용해 데이터베이스에서 가져온 데이터
      • REST CDS : REST Client를 이용해 웹서비스에서 가져온 데이터
      • IBX : IBX를 이용해 인터베이스 DB에서 가져온 데이터
      • MemTable from Code : 코드로 직접 만든 로컬 데이터
      • ADO & Access : ADO 기술을 이용해 엑세스 DB에서 가져온 데이터
    • FDLocalSQL1의 DataSets 컬랙션에는 5개의 데이터셋을 검색 대상으로 등록
    • FDQuery1에서는 FDLocalSQL1.DataSets에 등록된 데이터셋 대상으로 SQL 쿼리를 작성해 검색할 수 있습니다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    SELECT
      sales.order_status,
      customers.customer,
      regions.RegionDescription,
      rest.name as REP
    FROM rest
     
    INNER JOIN RestSalesReps
    ON rest.id = RestSalesReps.RestID
     
    INNER JOIN Sales
    ON RestSalesReps.Sales_Rep = Sales.Sales_REP
     
    INNER JOIN customers
    ON sales.cust_no = customers.cust_no
     
    LEFT OUTER JOIN regions
    ON regions.RegionID = RestSalesReps.RestID
    번호 제목 글쓴이 날짜 조회 수
    공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 854
    공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 4355
    공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 932
    공지 [프로그래밍 강의] 2019.4~2019.7 관리자 2015.01.22 7416
    공지 RAD스튜디오(델파이, C++빌더) - 시작하기 관리자 2015.06.30 12710
    공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2018년 09월 업데이트 됨) 험프리 2014.01.16 149708
    483 [XE8] iOS 64bit 앱개발과 유니버설(armv7 + arm64) 앱개발 [1] Humphery 2015.04.13 1127
    482 [XE8] Android 단말기 연결안될때 SDK 확인 및 설치 Humphery 2015.04.11 1629
    481 reFind.exe: 마이그레이션 작업에서 수작업을 줄여주는 도구 [3] Humphery 2015.04.09 2517
    480 모바일 앱 라이프사이클 이벤트 처리하기 Humphery 2015.04.09 1112
    479 모바일 앱 라이프 사이클 이벤트 처리하기(앱 완전 구동 후 실행하기) [1] Humphery 2015.04.09 668
    478 웹에서 어플리케이션 구동하기(ActiveX 사용않고) Humphery 2015.04.09 1138
    477 iOS 64bit 배포 시 ITMS-90092 오류 대응 [1] file Humphery 2015.04.09 1310
    476 [무료 세미나] 초대합니다! RAD Studio XE8 출시 세미나!(서울&대구) 관리자 2015.04.08 3541
    475 [FireDAC Skill Sprints] 8. TFDMemTable: 메모리 기반 데이터셋 사용하기 Humphery 2015.04.06 1224
    » [FireDAC Skill Sprints] 9. LocalSQL: DB에서 가져온 데이터(데이터셋)를 대상으로 다시 SQL쿼리 실행하기 Humphery 2015.04.01 1139
    473 [FireDAC Skill Sprints] 7. FireDAC ETL: 데이터 내보내기, 가져오기 기능 구현하기 Humphery 2015.04.01 1392
    472 [FireDAC Skill Sprints] 1. FireDAC 소개 험프리 2015.04.01 1149
    471 [다음 버전 정보] 비콘(Beacon)으로 접근감지하기 Humphery 2015.03.26 2519
    470 "모바일 앱" 개발 또는 유지관리, 데브기어와 해결하세요! file 관리자 2015.03.26 12006
    469 최신 업데이트와 패치정보 확인하는 방법 file Humphery 2015.03.26 663
    468 이 달의 기술자료 - 2015년 04월 험프리 2015.03.26 5489
    467 [다음 버전 정보] iOS 용 64비트 앱 만들고 배포하기 file Humphery 2015.03.25 907
    466 [따라하기] FireDAC으로 오라클(Oracle) DB와 연결하기 [1] file 험프리 2015.03.24 1774
    465 아이들이 재미있어 할만한 델파이(파이어몽키) 프로젝트 동영상 따라하기 Humphery 2015.03.24 898
    464 [다음 버전 정보] 멀티-디바이스 미리보기 창 관리자 2015.03.19 1073


    광고 모듈이 설치되어 있지 않아 실행을 중단합니다..