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 22591
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 21024
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 23082
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28881
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 30050
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 25397
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 46348
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 182316
1397 N 윈도우와 맥 개발 시작을 위한 파이어몽키 코스북: 무료 다운로드 제공(385페이지) 관리자 2013.04.05 152367
1396 ComPort(시리얼 통신) 컴포넌트 설치안내 [11] file 험프리 2013.12.04 112779
1395 [REST API] REST 기반 파일 업로드와 다운로드 구현하기 험프리 2020.08.31 84736
1394 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 71988
1393 이 달의 기술자료 - 2014년 11월 험프리 2014.10.13 54176
1392 이 달의 기술자료 - 2014년 6월 file 험프리 2014.06.05 50404
1391 Find the O/S Language Type c2design 2014.07.30 48421
1390 RAD Studio Resource Center 박병일 2012.01.26 46644
1389 CD-ROM 열고 닫기 박병일 2011.12.22 44787
1388 [Android] 폰번호 가져오기 [1] 타락천사 2014.09.05 38644
1387 이 달의 기술자료 - 2014년 12월 file 험프리 2014.11.26 32514
1386 RAD Studio XE6 Update1 발표 [1] Humphery 2014.06.20 29499
1385 델파이XE2 파이어몽키 기반 아이폰앱 개발에서 제스춰를 인식시키는 방법 박병일 2012.01.25 23342
1384 [10.4 시드니 신기능] 새로운 VCL TEdgeBrowser 컴포넌트 험프리 2020.05.18 23197