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

이 사이트 검색

검색 태그: 'demo'.

  • 태그로 검색

    태그 사이를 쉼표(,)로 구분하세요.
  • 작성자로 검색

콘텐츠 유형


게시판

  • 엠바카데로 (Embarcadero) 개발도구: 델파이 (Delphi), C++빌더 (C++Builder), RAD 스튜디오 (RAD Studio)
    • [기술 Q&A 게시판] 델파이, C++빌더, RAD 스튜디오
    • [설치/등록 Q&A 게시판] 델파이, C++빌더, RAD 스튜디오
    • [기술 기고 게시판] 델파이, C++빌더, RAD 스튜디오
    • [포트폴리오 게시판] 내가 참여한 프로젝트/프로그램 소개
    • [구인 게시판] 개발자 채용/프로젝트 의뢰
  • 엠바카데로 (Embarcadero) DBMS: 인터베이스 (InterBase)
    • [기술 Q&A 게시판] 인터베이스
    • [설치/등록 Q&A 게시판] 인터베이스
    • [기술 기고 게시판] 인터베이스
  • 비주얼 스튜디오 (Visual Studio) 관련 도구
    • [기술 Q&A 게시판] 비주얼 어시스트
    • [설치/등록 Q&A 게시판] 비주얼 어시스트
    • [기술 기고 게시판] 비주얼 어시스트
  • 구록 (Gurock) 테스트도구: 테스트레일 (TestRail)
    • [기술 Q&A 게시판] 테스트레일
    • [설치/등록 Q&A 게시판] 테스트레일
    • [기술 기고 게시판] 테스트레일
  • 아이데라 (Idera) 데이터 도구: 아쿠아 데이터 스튜디오 (Aqua Data Studio), ER/Studio 등
    • ER스튜디오 (ER/Studio)
    • 아쿠아 데이터 스튜디오 (Aqua Data Studio)
  • API레이어 (Apilayer) 개발 도구: API레이어 (Apilayer)
    • [Q&A 게시판] API레이어 (Apilayer)
  • 엠바카데로 (Embarcadero) 라이선스 서버: ELC (Enterprise License Center)
    • [게시판] ELC (Enterprise License Center) 라이선스 서버
  • 이 사이트 이용 관련
    • [게시판] 이 사이트 관련 이용 팁과 Q&A

Categories

  • 이달의 기술자료: 엠바카데로
  • 비디오 세미나
    • UX Summit
    • DelphiCon
    • CodeRage
    • 데브기어 세미나
    • Skill Sprint
  • 기술백서(PDF)

Categories

  • 시작하기
  • 설치/등록/라이선스
  • 튜토리얼
  • 도서

Categories

  • RAD 스튜디오 역사관
  • 11 알렉산드리아
  • 10.4 시드니
  • 10.3 리오
  • 10.2 도쿄
  • 10.1 베를린
  • 10.0 시애틀
  • XE8~XE
  • 2010~6.0

...에서 결과 찾기

검색어 일치 조건


최초 작성일

  • Start

    End


최종 변경일

  • Start

    End


개수로 필터링...

가입

  • Start

    End


Group


자주 쓰는 도구

  1. MDI Form 프로젝트를 BPL 패키지 방식으로 만들면 기존 DLL 방식 보다 간편하고 안정적인 MDI 프로젝트 생성이 가능해 집니다. 각 Child 폼들은 각각의 패키지 프로젝트로 구성 되어 빌드시 .bpl 타입의 독립 모듈이 생성 됩니다. 따라서 각각의 Form들을 별도의 프로젝트로 구축 할 수 있으므로 Form이 많은 대형 프로젝트에서 분업화 된 작업이 가능하며 메인 Form의 .EXE 사이즈도 적은 용량으로 유지 보수가 좀 더 편리 합니다. 물론 BPL은 델파이 내부에서만 사용되며 그래서 더욱 연동에 유리 합니다. 또한 각각의 Child Form들은 Main 폼에서 생성한 FireDAC 커넥션을 사용 할 수 있어 단일 커넥션으로 데이터베이스 접속이 가능 합니다. 데모 영상은 1부와 2부로 나뉘어져 있고 영상을 먼저 시청하고 아래 요약된 내용을 보시면 쉽게 이해 할 수 있습니다. 1부는 BPL MDI 프로젝트를 구축 하는 방법이고 2부는 작성된 MDI Form 에서 단일 커넥션으로 각각의 Child Form들이 데이터베이스에 접속 하는 방법을 소개 합니다. 샘플프로젝트는 즉시 실행 해 볼 수 있도록 편의상 SQLite를 사용 하였으므로 실무에서는 사용 가능한 RDB를 이용하면 됩니다. Part 1. BPL 로 MDI Project 만들기 1. 프로젝트 폴더 분류 - Output 폴더 생성 : Exe 및 BPL 위치로 사용 2. Main Form 프로젝트 생성 - FormStyle : MDIForm 설정 - 프로젝트 옵션 > Output Directory 지정 2. Child Form 프로젝트 생성 - 프로젝트 그룹에서 Add New Project > Package 선택 - bpl 프로젝트 Contains 우클릭 > Add New > VCL Form 으로 새폼 추가 - FormStyle : MDI Child 설정 - 프로젝트 옵션 > Package Output 폴더 지정 - 패키지 프로젝드 빌드 : 패키지 등록창에서 OK 선택. 3. 같은 방법으로 Child Form 프로젝트 1개 더 생성 4. Main Form 프로젝트 - Project Option > Packages > RunTime Packages > Link with RunTime Packages : TRUE 설정 - 프로젝트 정상 빌드 확인. 5. Main Form 프로젝트 화면 및 소스 작업 (상세내용 샘플 프로젝트 참조) - TMainMenu 로 Child 창을 열기 위한 풀다운 메뉴 생성 - 각 메뉴 클릭시 Child Form 호출 6. Child Form 프로젝트 화면 및 소스 작업 (상세내용 샘플 프로젝트 참조) - Initialization 와 finalization 추가 - Form OnClose 이벤트에 Form 메모리 제거 7. 실행 - Child Form 프로젝트 및 Main Form 프로젝트 각각 빌드 - 실행은 Main Form 프로젝트 (.Exe) - Child Form 프로젝트만 변경시 해당 bpl 프로젝트만 개별 빌드 하면 됨, 단 Main Form Exe는 재실행 Part 2. 각 Child Form에서 단일 Connection 으로 FIreDAC 사용하기 1. Main Form 프로젝트 - TFDConnection 으로 Database Connetion 설정 2. Child Form 프로젝트 - Main Form 프로젝트에서 설정한 TFDConnection 커넥션 지정 Ex) TFDQuery 의 Connection을 "MForm.FDConnection1: 으로 지정 (상세내용 샘플 프로젝트 참조) Part 1 데모영상 Part2 데모영상 프로젝트 샘플 소스 다운로드 MDI_Sample.zip
  2. FireDAC의 FetchOptions 을 사용하여 쿼리로 가져올 레코드 데이터 수 제한하는 방법을 쿼리문 으로 실행 하는 방법과 비교해 봅니다. 사용할 FetchOptions에 대한 정의는 아래 게시글을 참조 하시면 도움이 됩니다. 아울러 FireDAC RecordCount 에 대하여 정확하게 이해 하도록 합니다. 데모 프로젝트는 FireDAC, FDQuery, DataSource를 사용하여 DBGrid 에 바로 데이터를 로딩 합니다. *첫번째는 RecsSkip 과 RecsMax 로 쿼리 레코드 수를 제어 하는 방법입니다. 샘플 소스와 같이 데이터를 직접 입력 하면 됩니다. FDQuery1.FetchOptions.RecsSkip := StrtoInt( ET_Top.Text ); FDQuery1.FetchOptions.RecsMax := StrtoInt( ET_Limit.Text ); procedure TMFForm.Button1Click(Sender: TObject); begin FDQuery1.Close; FDQuery1.SQL.Clear; FDQuery1.SQL.Text := 'Select * from testdb'; FDQuery1.FetchOptions.RecsSkip := StrtoInt( ET_Top.Text ); FDQuery1.FetchOptions.RecsMax := StrtoInt( ET_Limit.Text ); FDQuery1.FetchOptions.Mode := fmAll; // 전체 카운트 확인용 FDQuery1.Active := TRUE; Label3.Caption := 'Total Record Count = ' + FDQuery1.RecordCount.ToString; end; * 두번째는 쿼리문으로 직접 레코드 카운트수를 제어 하는 방법입니다. 이 경우에는 데이터베이스 종류에 따라 SQL문의 형태가 다를 수 있습니다. 쿼리문을 사용 할 때는 FetchOptions.RecsSkip 과 FetchOptions.RecsMax 값에 기본값 -1 이 아닌 다른 값이 할당 되면 오류가 납니다. 이 프로젝트 같은 경우 Button1 메소드에서 할당된 값이 있으므로 Button2 메소드에서 초기화 하였습니다. 따라서 이 속성을 전혀 사용하지 않는 다면 별도 초기화는 필요 없습니다. procedure TMFForm.Button2Click(Sender: TObject); begin FDQuery1.Close; FDQuery1.SQL.Clear; FDQuery1.FetchOptions.RecsSkip := -1; // 쿼리문 안에서 Limit 사용시는 미사용으로 초기화 헤야 함. FDQuery1.FetchOptions.RecsMax := -1; FDQuery1.SQL.Add( 'select * from testdb Limit :p_Top, :p_Count ' ); FDQuery1.ParamByName('p_Top').Asinteger := StrtoInt( ET_Top.Text ); FDQuery1.ParamByName('p_count').Asinteger := StrtoInt( ET_Limit.Text ); FDQuery1.FetchOptions.RowsetSize := StrtoInt( ComboBox1.Text ); FDQuery1.FetchOptions.Mode := fmOnDemand; // 화면 표시 레코드 수 지정 FDQuery1.Active := TRUE; Label3.Caption := 'Memory Record Count = ' + FDQuery1.RecordCount.ToString; end; * 다음은 FDQuery1.RecordCount 에 관한 설명입니다. 기본 옵션 변경 없이 RecordCount 값을 쿼리 한 전체 레코드 수로 사용하면 잘 못 사용한 경우가 됩니다. FDQuery1.RecordCount의 범위는 FetchOptions.RowsetSize 로 50으로 지정 되어 있는데 이것은 DBGrid 같은 방식으로 화면에 데이터를 로딩 할 때 DBGrid 화면 메모리에 한번에 올리는 카운터 수 이며 전체 쿼리수는 아닙니다. 따라서 쿼리된 레코드수가 50 이상으로 초과하는 경우에도 항상 50으로 나오게 됩니다. 만약 전체쿼리수를 RecordCount 로 표현 하고 싶으면 FDQuery1.FetchOptions.Mode := fmAll; 로 지정 하면 됩니다. 단, 이때는 화면 메모리에 전체 데이터를 모두 삽입 하므로 로딩 시간이 길어 집니다. 50 같이 특정 수로 제한 하였을 경우에는 사용자가 화면 스크롤 싯점에 나머지 레코드 데이터들이 화면에 반영 됩니다. 만약 화면에 표시할 수 있는 카운트 수가 지정된 수보다 클 경우는 지정된 수를 무시하고 화면에 표시될 수 있는 최대치를 표시 합니다. 따라서 RecordCount를 쿼리 카운트 읽는 용도로의 사용은 데이터수 가 적어 화면 로딩에 별 문제가 없을 경우에 사용 하면 됩니다. 데모 동영상
  3. 원격 서버의 Json Data를 FDMemTable로 불러오고 FDMemTable 의 데이터를 SQL 쿼리로 제어 하는 방법의 데모 프로젝트 입니다. 즉, 이 프로젝트를 통해서 원격 서버의 Json Data 를 쿼리문을 이용하여 처리하는 방법을 알 수 있게 됩니다. TFDMemTable은 FireDAC에서 기존 TClientDataSet 보다 진보 된 기능과 성능을 제공 합니다. FireDAC에서 사용하는 Memory Local DB의 개념으로 이해 하면 됩니다. 실제로 FireDAC의 FDConnection의 DriverName을 Local DB 의 한 종류인 SQLite로 지정하여 사용 하게 됩니다. (영상 및 샘플 프로젝트 소스 참조) * 관련 기술 - 원격 서버의 Json data 호출 방법 - TFDMemTable 필드 생성 및 데이터 적재 방법 - TFDMemTable 의 Data를 SQL 로 제어 하는 방법 <프로젝트 실행 화면> <데모영상> [프로젝트 소스 다운로드 링크]
×
×
  • Create New...

중요한 정보

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