BlobStreams 샘플을 통해 파이어닥을 활용한 BLOB 스트리밍 기술 활용 방안을 확인해보세요. 외부 스트리밍과 내부 스트리밍을 모두 구현하는 방법을 알 수 있습니다.

다운로드 위치

  • Start | Programs | Embarcadero RAD Studio Sydney | Samples 경로에서 확인할 수 있습니다:
    • 프로젝트명: Object PascalDatabaseFireDACSamplesComp LayerTFDQueryBlobStreams
  • 서브버전 리파지토리:

 

샘플 활용 방법

  1. 위 경로에서 BlobStreams.dproj 프로젝트를 찾아서 엽니다.
  2. 실행을 위해 F9 버튼 또는 Run > Run 메뉴를 실행합니다.

 

사용하는 파일들

델파이에서 활용할 파일 포함된 내용
BlobStream.dproj
BlobStreams.dpr
프로젝트
fBlobStr.pas
fBlobStr.fmx
메인 폼

 

구현하기

샘플을 실행하기 전에, 주요 컴포넌트들을 먼저 확인해보겠습니다. 오브젝트 인스펙터에서 디자인할 때 사용된 컴포넌트들을 확인할 수 있습니다:

  • 두 개의 TFDQuery – 각각 qSelectqInsert 라는 이름으로 되어 있습니다. 이 컴포넌트들은 SQL 쿼리를 실행하는 데이터셋을 구현하는데 사용합니다. 다음과 같은 설정이 필요합니다:
  • DBMS 연결을 위해 파이어닥(FireDAC)의 연결 속성을 지정합니다. 두 컴포넌트 모두 FDConnection1로 설정하세요.
    • SQL 속성을 설정해줍니다. 쿼리 실행을 위한 SQL 구문은 다음과 같이 지정해주세요.
    • qSelect의 SQL 속성은 select * from {id FDQA_Blob} 으로 설정합니다.
    • qInsert의 SQL 속성은 insert into {id FDQA_Blob} (blobdata) values (:blobdata)
    • qInsert.Param[0] 을 설정해줍시다:
    • Name 속성은 BLOBDATA 로 해주세요.
    • DataType 속성은 BLOB 데이터 타입 중 하나로 설정합니다. 이 샘플에서는 ftBlob 으로 해줍시다.
    • ParamType 속성은 ptInput 으로 설정합니다. 스트림이 데이터베이스 BLOB 값에 기록되고 읽힌다는 의미입니다.
    • StreamMode 속성은 smOpenRead 로 설정합니다. 이 설정값이 기본값입니다. 스트림이 데이터베이스 BLOB 값을 읽는데 사용된다는 의미입니다.
    • TDataSource 이름은 DataSource1로 설정합니다. 이 컴포넌트는 폼에서 데이터 관련 컨트롤과 데이터셋 컴포넌트 사이의 인터페이스를 제공합니다. 이 샘플에서는 데이터셋과 DBMemo1로 이름을 설정한 TDBMemo간의 커뮤니케이션을 위해 사용됩니다. DBMemo1은 데이터셋의 blobdata 필드를 보여줍니다. 이를 위해서는 다음과 같은 설정을 해주셔야 합니다:
      • DataSource의 DataSet 속성은 qSelect 로 설정합니다.
      • DBMemo1의 DataSource 속성은 DataSource1 로 설정합니다.
      • DBMemo1의 DataField 속성은 blobdata 로 설정합니다.

 

주요 컴포넌트들을 설정하고 나면, 애플리케이션을 실행할 수 있습니다. 이제 세 개의 버튼들을 설정해볼까요?

  • 데이터 준비 버튼이 버튼에는 OnClick 이벤트를 설정해줍니다. TFileStream.Create 메소드를 사용할텐데요. 파일에 문자열을 쓰기위해 파일 스트림을 인스턴스화할 것입니다.
  • 인서트 버튼 (외부 스트림). 이 버튼에 OnClick 이벤트를 설정해줍니다. 외부 스트리밍을 구현해줄 것입니다. 외부 스트림은 애플리케이션에 의해 파이어닥으로 제공되는 것입니다 (외부에서 파이어닥으로). 그럼 파이어닥이 이 스트림을 읽게됩니다.
  • 인서트 버튼 (내부 스트림). 이 버튼에 OnClick 이벤트를 설정해줍니다. 내부 스트림이 파이어닥에 의해서 애플리케이션으로 넘어가게 됩니다 (내부에서 파이어닥으로). 그러면 애플리케이션이 스트림을 읽어오게 됩니다. 샘플에서의 설정은 다음과 같이 해주세요:
    • StarTransaction 메소드를 사용해 필수 트랜잭션을 시작합니다.
    • DataStyle 파라메터를 ftStream 으로 설정합니다.
    • StreamMode 파라메터를 smOpenWrite로 설정해 데이터베이스 BLOB 값을 작성합니다.
    • ExecSQL 메소드를 사용해 SQL 커맨드를 실행합니다. 내부 스트림 참조값을 반환해줄 것입니다.
    • 외부 스트림 참조값을 작성합니다.
    • CloseStreams 메소드를 불러와 데이터베이스 API 버퍼를 플러시하고 내부 스트림을 닫습니다.
    • Commit 메소드를 사용해 트랜잭션을 종료합니다.

 

이 샘플에 대한 더 많은 정보를 다음 링크를 참고하세요:

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 17778
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 16153
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 18803
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 24370
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 25744
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 21115
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 41693
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 176992
34 C++빌더 컨테스트! 관리자 2021.06.04 500
33 인터베이스, 비주얼 스튜디오 지원 확장 관리자 2021.05.10 523
32 API로 머신 러닝과 컴퓨터 비전 활용하기 관리자 2021.05.04 530
31 머신 러닝: 윈도우 앱에 적용하는 5가지 방법(파이썬과 델파이) 관리자 2021.04.30 503
30 이 달의 기술자료 - 2021년 05월 험프리 2021.04.29 445
29 MODERNLISTVIEW 라이브러리 – 커스터마이징 가능한 강력한 크로스 플랫폼 라이브러리 활용 방법 관리자 2021.04.06 407
28 이 달의 기술자료 - 2021년 04월 험프리 2021.03.25 593
27 이 달의 기술자료 - 2021년 03월 험프리 2021.02.26 444
26 TCOFFEE & CODE WEEK 관리자 2021.02.19 372
25 [DelphiCon 요약] 델파이로 웹 다루기 (Powering the Web with Delphi) file 관리자 2021.02.16 1212
24 ‘장기 활용 가능성’이 가장 뛰어난 프레임워크는? (델파이 VS. WPF VS. ELECTRON) 관리자 2021.02.01 473
» 델파이 윈도우 앱 샘플 – BLOB 스트림을 내/외부에서 쉽게 사용하기 관리자 2020.12.15 366
22 개발. 공유. 영감. – 엠바카데로 총괄 매니저가 전하는 메세지 (2020.11) 관리자 2020.12.01 347
21 이 달의 기술자료 - 2020년 12월 험프리 2020.11.26 380
20 델파이에서 파이썬 표현식 활용하기 (PYTHON4DELPHI 샘플 앱) 관리자 2020.11.03 888
19 델파이용 볼드(BOLD FOR DELPHI) 오픈 소스 공개! 관리자 2020.09.25 489
18 [개발환경] 델파이, RAD스튜디오 에서 Git과 Github를 사용해야하는 이유와 꼭 필요한 만큼 사용법 관리자 2020.08.27 1357
17 엠바카데로 오픈 소스 프로젝트 관리자 2020.05.25 719
16 프로그래밍 언어 인기도 측정의 문제점 file 김원경 2020.03.27 522
15 델파이 25주년 기념 무료 크로스 플랫폼 샘플 앱 25개 선정(델파이/C++ 샘플 150여종) 험프리 2020.03.02 664