Q&A

  • 여러개의 DB의 데이터를 모아서 쿼리문을 날리는데 추천되는 방법이 있나요?

  똑 같은 포맷을 가진 여러개의 Access 파일(EX> 1번 파일에는 1번~5번의 데이터, 2번 파일에는 6번~10번의 데이터, 3번 파일에는 11~15의 데이터)에서 필요한 데이터를 뽑아서 해당 데이터에 Average나 Stdev, group by 등을 날리고 싶습니다.
  현재 진행 중인 것은 5개의 Access파일에서 Select 문으로 뽑은 데이터(모두 같은 포맷)를 FDMemtable에 넣어 하나의 DB로 만드는 것 까지는 진행이 되었는데, Memtable에 쿼리를 날릴 수 있는 방법을 못 찾고 있습니다.
  Memtable을 쓸 수 있다면 좋고 안 쓰더라도 뭔가 방법이 있을까요?

  Access 파일의 수가 가변적이라 여러개의 Query를 가변적으로 만드는 것도 힘들 듯 합니다

3  COMMENTS
  • Profile
    이정욱 2017.01.16 09:47

    메모리 DB에서 SQL문을 사용하시려면 http://aidaim.com/in-memory_sql_database_delphi.htm 같은 써드파티사 제품을 사용해야 합니다.

    사실 제가 FDMemTable은 사용해보지 못했지만, 아마도 TTable 과 마찬가지로 SQL문은 사용하지 못할것 같네요.

  • Profile
    담더기 2017.01.25 20:26

    앗.. 이정욱님.. 실수로 비추천을 눌러 버렸습니다..^^;; 이해 부탁...

  • Profile
    담더기 2017.01.25 20:25

    도움이 될지는 모르겠지만...

    FireDAC을 사용하시는거 같은데요.. 그럼 TFDLocalSQL을 사용하시면 됩니다.

    [이하 코딩으로 처리하는 부분] - 디자인 타임에서 하시려면 그냥 순서대로 미리 연결해 두시면 편합니다.

    var
      FDConnection: TFDConnection;
      FDLocalSQL: TFDLocalSQL;
      FDQuery: TFDQuery;
    begin
      // LocalSQL용 Connection입니다. **SQLITE 고정
      FDConnection := TFDConnection.Create(Self);
      FDConnection.DriverName := 'SQLITE';

      // LocalSQL 생성
      FDLocalSQL := TFDLocalSQL.Create(Self);
      FDLocalSQL.Connection := FDConnection;

      // LocalSQL에 데이터셋 연결
      // 데이터 셋은 AccessDB를 각각 TFDMemTable에 불러온 것을 연결해도 됩니다.
      // FDLocalSQL.DataSets은 각각의 테이블이라고 보시면 됩니다.
      // .Add.Name 부분은 쿼리를 사용할때 테이블이 됩니다.
      // ex) FDLocalSQL.DataSets.Add.Name := 'Temp' 일때 이 데이터셋에서 데이터를 Select하려면
      // select * from Temp가 됩니다.
      with FDLocalSQL.DataSets.Add do
      begin
        DataSet := {AccessDB1};   // <-- 여기가 DataSet
        Name := 'AccessDB1';      // <-- 지정된 DataSet의 별칭을 입력
      end;

      with FDLocalSQL.DataSets.Add do
      begin
        DataSet := {AccessDB2};
        Name := 'AccessDB2;
      end;

      with FDLocalSQL.DataSets.Add do
      begin
        DataSet := {AccessDB3};
        Name := 'AccessDB3;
      end;

      FDQuery := TFDQuery.Create(Self);
      FDQuery.LocalSQL := FDLocalSQL;
      FDLocalSQL.Active := True;

      FDQuery.Close;
      FDQuery.SQL.Clear;
      FDQuery.SQL.Text := '쿼리';
      FDQuery.Open;

    • 민환민준빠
      2015.07.02 18:44
      자체 해결 Panel 이 문제네여 .. -_-;;;
    • 바람순이
      2015.06.10 23:38
      Mozilla Firefox(35.0.1)에서 글 및 댓글을 달았습니다.
    • JangHeeJin
    • 2015.06.03 03:48
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.06.03 12:01
      http://codeverge.com/embarcadero.delphi.general/better-code-for-writing-reading-th/1067762 를 참고해...
    • JangHeeJin
      2015.06.04 01:21
      답변감사합니다 저기 나오는 함수들중 아무거나 사용해도 무관한건가요? 비슷한 함수 들이 많은거같...
    • 이정욱
      2015.06.04 03:45
      시도해보시는것이 기술을 가장 빨리 습득하는 방법입니다.
    • JangHeeJin
      2015.06.05 02:50
      485방식으로 읽으니 이런식으로 데이터가 올라오는데 왜 그런건가요?
    • 이정욱
      2015.06.06 01:16
      소스를 봐야 알 수 있을 듯 합니다. 참고로 시리얼 통신에서는 맞춰줘야할 것들이 있습니다. 컴포넌트로 ...
    • 바람순이
      2015.06.10 23:52
      리더기에서 순수하게 RF-Card 데이터만 넘어오는것이 아니고 Header도 같이 넘어옵니다. 그리고 데이터는 ...
    • 바람순이
      2015.06.10 23:59
      procedure Tform1.VaCommRxChar(Sender: TObject; Count: Integer);var rChr: Char;    Cnt: integer;    s...
    • 이정욱
      2015.05.29 10:20
      Delphi 2010 이 최신 업데이트까지 다 입혀진 상태여야 합니다. 한번 확인해 보세요~
    • 이정욱
      2015.05.26 18:08
      LinePen.Width 속성을 이용해 보세요~
    • 난이화
      2015.05.27 15:06
      답변 감사 합니다. 그러나 Chart1.Series[30].LinePan.width 나 Chart1.SeriesList[1].LinePan.Width ...
    • 이정욱
      2015.05.27 21:38
      (Chart1[0] as TLineSeries).LinePen.Width := 4;  이런식으로 한번 사용해 보세요~
    • 난이화
      2016.10.20 02:20
      답변이 아주 늦어 죄송합니다.  감사 합니다.
    • 이정욱
      2015.05.23 09:16
      http://www.devtools.co.kr/m_mall_detail.php?ps_goid=125&ps_goid=125 을 이용하시면 되실 듯 ...
    • ULP
    • 2015.05.05 22:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • ULP
      2015.05.05 23:07
      var  F : TFileStream;  buf : Array of Char;begin  F := TFileStream.Create('파일 명',fmOpenRead);  tr...
    • 이정욱
      2015.05.06 08:52
      아.. 몰아서 넣으셨다는 뜻이 여러개의 동적배열의 크기를 미리 메모리를 확보해 놓으셔서 그러셨던것 같습...
    • 김미경
    • 2015.05.05 00:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.05.05 10:19
      TAdvStringGrid라면 TMS사의 컴포넌트인데, 꽤 전통있고 유명한 컴포넌트 죠. 특히 바로 이 그리드 때문에...
    • 이정욱
      2015.04.22 09:05
      OnResize 이벤트에서 크기에 맞게 다시 그려주세요..
    • 이정욱
      2015.04.22 09:35
      Option에서 라이브러리의 Search Path 에 해당 경로를 추가해보십시오.
    • 횬이
    • 2015.03.27 02:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.03.27 09:40
      일단 DataSource 라는 개념을 이해 하시면 됩니다. TTable 이나 TQuery는 Dataset 이라는 것을 알아두시...
    • 횬이
      2015.03.27 17:42
      안녕하세요~ 설명해주셔서 감사합니다... 근데 DataSource Dataset에 TQuery로 설정을하게되면 "datasourc...
    • 이정욱
      2015.03.25 06:00
      http://blog.dummzeuch.de/2013/11/10/delphi-20052006-on-windows-8-1/  위 사이트를 참고 하시면...
    • 동키호테
      2015.03.25 18:10
      답변 감사합니다. 저도 그 링크는 보고 따라서 해봤는데, 안 되더라구요. 그래서, embarcadero 에 문의를...
    • jin
    • 2015.03.17 18:54
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.03.19 08:44
      값을 할 당 하시는 부분이 어느 부분이신지요...? 그냥 따옴표로 묶어서 하시는것인지, 아니면 변수를 넣...
    • jin
      2015.03.19 18:06
      소스는 아래와 같습니다. 스레드를 사용하지 않으면 잘되는데 스레드를 사용하면 변수 값이 변경됩니다.pro...
    • 이정욱
      2015.03.20 03:15
      음... 이상하네요. 저는 델파이 2007을 사용하는데 변수값이 변경되지 않고 잘 넘어 옵니다... 언어적으로...
    • 쿠로로
    • 2015.03.14 03:09
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2015.03.19 08:45
      그냥 Uses 절에 넣으시면 됩니다... 물론 해당 PAS파일이 버전에 맞게 잘 작성되어있다면 말이죠...
    • 쿠로로
      2015.03.23 05:07
      .pass파일의 경로는 어떻게 해야 하나요? uses절에 넣는다고 모든 경로를 검색할꺼 같지는 않습니다...
    • 이정욱
      2015.03.24 04:50
      프로젝트와 같은 경로에 있던지, 아니면 그 유닛이 있는 경로를 Option 에서 Library Search Path 에 추가...
    • 이정욱
      2015.03.04 07:11
      한글 데이터들을 유니코드로 변환해 놓으시던지, 아니면 조회 전에 한글을 안시코드로 변환 후 쿼리를 해야...
    • phono
      2015.03.03 08:09
      gdb파일이 쉽게 깨지는 파일이 아닙니다. 제 추측으론.. db를 핸들링 하실때..  db쪽에 커밋이 바로 작동...
    • 카카오톡
      2015.03.13 18:56
      감사합니다. 결국 엑셀에 있는데이터 다시 올리는  프로그램 만들어서 올렸네요 ㅎㅎ 감사해요
    • 이정욱
      2015.01.30 06:20
      Main 폼에 사용하신 ApplicationEvent 컴포넌트 라는것에서 다 먼저 가져가는것 같네요. 모달폼을 띄우기 ...
    • 윤박사
    • 2014.04.01 03:31
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 백록화
      2014.03.25 03:34
      1. 코딩중 단축키 Ctrl+Space , Ctrl+Shift+Space 로 코드컴플레이션, 툴팁 심볼 인싸이트 같은 코드 인싸...
    • gandus
      2014.03.25 06:52
      호출하는 함수에서 para3의  para2 구조체에 반환값을 줘서요
    • gandus
      2014.03.25 06:56
      C로 제작된 dll을 쓰는데, 소스로 확인해보니 c로 쓰레기값이 넘어가서...
    • 이정욱
      2014.03.25 08:14
      dll 을 호출하기 위해 선언한 부분을 알려주셔야 할 듯 합니다. cdecl 인지 stdcall 인지...
    • gandus
      2014.03.25 18:14
      Function 함수4(m_Align_Data : T_Align_Data ; var m_Align_Result : T_Align_Result) : Integer  cdecl; ...
    • 이정욱
      2014.03.26 02:37
      그 DLL의 헤더 부분 및 구조체도 알려주셔야 합니다~ 그리고 Record 를 Packed Record 로 변경해서 해보세요~
    • gandus
      2014.03.28 19:30
      LDC_ReadCalUVWPosition(LD_CAL_UVW *pStageCalUVW)LDC_WriteCalXY(LD_CAL_XY ViewL, LD_CAL_XY ViewR)LDC_...
    • • • •