Q&A

  • 저 다시한번 질문드립니다. query 루프내에서 다른 테이블을...
저 밑에 질문드렸는데요... 급한 마음에..이렇게 다시한번 질문드립니다....

저 알고 싶은 것이요......

unit db_unit;

interface

uses
  SysUtils, Classes, DB, DBTables;

type
  TDM = class(TDataModule)
    DataSource: TDataSource;
    Database: TDatabase;
    Query: TQuery;
    Query1: TQuery;
    DataSource1: TDataSource;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

이런 식으로 db_unit 을 정의해서 사용하는데요..

레코드양이 많아서요.. 하나씩 가져 오고 끝나는 것이 아니라..
데이타를 계속 루프를 돌면서.. 첫번째 테이블의 내용을 보여주고...
보여준 내용을 가지고 다시 두번째 테이블의 내용을 보여주고...
그 내용을 가지고 세번쨰 테이블의 내용을 다시 보여줄려고 하거든요...

그러니까...  DM.Query 내에서요..

다시 DM.Query1 이나 비슷한 식으로 여는 방법을...알고 싶습니다..

Query1 해서.. 루프내에서 제 퀴리를 하니까....데이타가...혼선이 생기는 것 같아요..

부탁드립니다.......
8  COMMENTS
  • Profile
    Galaxy 2003.10.16 02:56
    안녕하세요
    수고 많습니다.
    질문 내용이 이런것입니까?

    with Query1 do
          begin
          Close;
          Sql.Clear;
          Sql.Add('select * from Order');
          Sql.Add('where comp_Code =:p1 ');
          ParamByNAme('p1').asstring:=Edit1.Text;
          Open;
          while not eof do
                   begin
                   with Query2 do
                         begin
                         Close;
                         .
                         .
                         .
                                 with Query3 do
                                        begin
                                        Close;
                                        .
                                        .
                                        ........
                                        Close;
                                        end;    
                          .
                          .
                          .                      
                         Close;
                         end;
                   Next;
                   end;
          Close;
          end;
    이런 형식을 말 하는것 이죠
    저도 간혹 이런 형식을 이용하기도 하죠(아주 아주 급할때)
    그런데 이런 형식은 좋은 것이 아닙니다.
    제 생각 입니다.
    Join이 힘드시면
    From 절에서의 SubQuery 나 InLine view을 사용해 보시죠...
    저의 짧은 생각 이었습니다.
    죄송합니다.
    수고 하세요
  • Profile
    민경철 2003.10.16 03:56
    예..감사합니다.....
    대충은 알것 같습니다...

    그런데.. 제가..질문내용중에 빠진것이..... 웹쪽에..트래픽이...많아서요..
    트래픽이 많은 웹 페이지를... 파일로 미리 생성하는 것을....생각하고 있거든요..

    그러다 보니.. 이렇게..웹 프로그램 짜는 형식의.. 데이타를 불러오는 형식을...
    요구하게 됐네요...

    ^^;;;;;

    조금더.. 자세히는 안 될까요..^^;;;;;;;;;;;;;;;;; 저 그리고...
    첫번째.... query1 하고 query3도.. 계속 루프가..돌아야 ...하거든요..^^..

    머리가..많이 아프네요...
  • Profile
    Galaxy 2003.10.17 02:37
    수고 많습니다.
    아무리 생각 해도 다른 좋은 방법이 생각 나지 않습니다.

    "From 절에서의 SubQuery"
    에 대해서는 전에 이렇게 해봤는데
    select  a.matr_code, a.matr_name, b.color, b.qty from (select matr_code,
    matr_name from matr_code where worker = 'galaxy') a, matr_color b
    where a.matr_code *=b.matr_code
    이것을 생각하고 이야기를 했는데  도저히 아니네요

    대 단히 죄송하게 생각 합니다.
    초 절정의 고수가 님에게 좋은 답변을 할 것입니다.
    성급하게 생각 하지 마시고 기다리며 좋은 답변이 있을 것 입니다.
    그럼 수고 하세요

  • Profile
    민경철 2003.10.17 04:17
    도움주시고 관심주셔서 너무 감사드립니다..
    아 저 옆에 답변 주셨는데요.. 그 분께서 가르쳐주신대로 하니까..잘 되네요..

    겔럭시 님..다시한번 감사드립니다..
  • Profile
    Galaxy 2003.10.17 06:27
    감사 드립니다.
    다음에 이런 일이 있으며 사용하겠습니다.
    많은것을 배웠습니다.
    그럼 수고 하세요
  • Profile
    성더기 2003.10.17 00:27
    SqlStr := 'SELECT...';
    With DM do
    begin
      Query.Close;
      Query.SQl.Text := SqlStr;
      Query.Open
      while not Query.Eof do
      begin
        SqlStr := 'SELECT '
        Query1.Close;
        Query1.SQl.Text := SqlStr;
        Query1.Open
        while not Query1.Eof do
        begin
          SqlStr := 'SELECT '
          Query2.Close;
          Query2.SQl.Text := SqlStr;
          Query2.Open
          while not Query2.Eof do
          begin
            SqlStr := 'SELECT '
            Query3.Close;
            Query3.SQl.Text := SqlStr;
            Query3.Open
            while not Query3.Eof do
            begin
              Query3.Next
            end;
            Query2.Next
          end;
          Query1.Next
        end;
        Query.Next
      end;
    end;

    이걸 말씀하시는 건가요?
  • Profile
    민경철 2003.10.17 04:20
    와 가르쳐 주신대로 적용하니까..잘 되네요...

    너무 감사드립니다.....

    에고..요새 거의 여기 한델에서 사는데...너무 많은것들을 배워 가네요...

  • Profile
    성더기 2003.10.17 18:53
    각 테이블에 연결하는 데이터가 존재한다면
    위의분 말씀 처럼 조인이나 Sub Query를 사용하시는것이 좋을듯 합니다
    물론 DB가 Paradox라 MySql(조인을 지원안함다..ㅡㅡ;;)이라면 거의 불가능 하겠지만...
    • 델파이Go!
      2003.10.17 19:34
      데브비아 시삽님이 올리신 글입니다. 필요하신분 참고하시길..
    • 김유빈
    • 2003.10.16 01:32
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 뾰옹
    • 2003.10.16 00:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.10.16 02:20
      안녕하세요. 최용일입니다. 서버의 인디커넥션쓰레드(TIdPeerThread)는 제대로 Suspend, Resume되는데요...
    • 뾰옹
      2003.10.16 03:01
      감사해요..... 이렇게 빠르게 답변이 올줄은......(왕~) 처음써보는 컴포넌트인지라....도움말도 찾기 ...
    • 민경철
    • 2003.10.16 00:04
    • 8 COMMENTS
    • /
    • 0 LIKES
    • Galaxy
      2003.10.16 02:56
      안녕하세요 수고 많습니다. 질문 내용이 이런것입니까? with Query1 do     &nb...
    • 민경철
      2003.10.16 03:56
      예..감사합니다..... 대충은 알것 같습니다... 그런데.. 제가..질문내용중에 빠진것이..... 웹쪽에..트...
    • Galaxy
      2003.10.17 02:37
      수고 많습니다. 아무리 생각 해도 다른 좋은 방법이 생각 나지 않습니다. "From 절에서의 SubQuery" ...
    • 민경철
      2003.10.17 04:17
      도움주시고 관심주셔서 너무 감사드립니다.. 아 저 옆에 답변 주셨는데요.. 그 분께서 가르쳐주신대로 하...
    • Galaxy
      2003.10.17 06:27
      감사 드립니다. 다음에 이런 일이 있으며 사용하겠습니다. 많은것을 배웠습니다. 그럼 수고 하세요
    • 성더기
      2003.10.17 00:27
      SqlStr := 'SELECT...'; With DM do begin   Query.Close;   Query.SQl.Text := S...
    • 민경철
      2003.10.17 04:20
      와 가르쳐 주신대로 적용하니까..잘 되네요... 너무 감사드립니다..... 에고..요새 거의 여기 한델에...
    • • • •
    • shem
    • 2003.10.15 23:10
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 연기훈
      2003.10.15 23:29
      우선 1번째 방법은 안될꺼 같네요. 실행된 파일을 다시 복사해서 덥어 써야 하는데 원도우에서 실행...
    • shem
      2003.10.15 23:42
      답변 감사합니다. 근데 응용프로그램 실행에 대한 예제나 답변을 찾기가 힘드네요. 소스나 설명좀 부탁드...
    • 최용일
      2003.10.16 02:22
      안녕하세요. 최용일입니다. WinExec나 ShellExecute로 실행하세요... 예제야 델파이 도움말이나 여기...
    • 조경모
    • 2003.10.15 22:55
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 강형철
      2003.10.15 23:48
      질문한 소스가 잘못되었네요... x := 50; a := Format( '%4.4d', [ 40 + x ] );   b := For...
    • 최용일
      2003.10.15 23:37
      안녕하세요. 최용일입니다. FormatFloat함수를 사용하세요... FormatFloat('0000', [40+x]); ^^ ...
    • 연기훈
      2003.10.15 23:23
      숫자를 문자열로 변경한후 앞에 0을 추가해주어야 합니다. format으론 원하는 결과가 안나옵니다.
    • 윤태정
    • 2003.10.15 21:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 임진묵
      2003.10.15 21:47
      디비 그리드에 ontitleclick 이란 이벤트가 있는데요... 컬럼.필드네임 하면... 누르신 필드네임...
    • nilriri™
      2003.10.16 01:06
      procedure Tacc0105f.dbg_projectTitleClick(Column: TColumn); begin     if (pos(...
    • 이윤도
    • 2003.10.15 19:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 임진묵
      2003.10.15 21:27
      qrRichText1.lines.add(cells...) 라덩가 qrRichText1.Text := Cells....  이거 아닌가요?
    • 이윤도
      2003.10.15 23:24
      답글 감사합니다.!!! 원인을 찾았습니다...! 제가 폼이생성될때그값을 넣었더라구요!!! 그래서 이벤...
    • 최용일
      2003.10.15 19:41
      안녕하세요. 최용일입니다. 그 에러라는게 아마두 응답없음 같은데... 혼자서 CPU를 독점해서 다른 프로...
    • 박상원
      2003.10.15 20:21
      감사합니다.
    • 김민호
    • 2003.10.15 07:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2003.10.17 00:30
      트랜젝션이 실행중인데 다시 트랜젝션을 걸려고 하니깐 나는 에러같은데요? 먼저 StartTransaction이 있는...
    • Formas
      2003.10.15 08:06
      안녕하세요^^ 비록 제가 델파이는 잘 못하지만, 나르대로 C/C++를 합니다. 일단 실행파일은 델파이나, C/...
    • Formas
    • 2003.10.15 05:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.10.15 19:32
      안녕하세요. 최용일입니다. 흠~ 좀 두꺼운 책한권사서 공부하시는게 좋을거 같네요... CreateFile, R...
    • 이현경
    • 2003.10.15 03:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2003.10.17 00:44
      프린터 드라이브 아무거나 하나 설치해보세요
    • 살며배우며
      2003.10.15 06:37
      a테이블에 값과 b테이블에 값이 같은 값을 가져와야 한다는 말씀인가요? 맞다면 쿼리에서 조인을 걸면 ...
    • 민경철
      2003.10.15 07:36
      예..그런데..테이블 컬럼이 좀 많아요..제가..설계를 잘못했는지(^^:)..... 그리고..작업내용상 단계로 내...
    • 연기훈
      2003.10.15 19:56
      결국 2개에서 자료 찾아서 3번째 테이블에서 데이터 가져 오는 거네요.. 그럼 테이블 조인하는거랑 프로...
    • 민경철
      2003.10.15 23:33
      답변 주셔서 감사드리고요.... 제가...설계를 잘 못 한거 같아요...^^;;;; 레코드양이 많아서요.. 하나...
    • 송영배
    • 2003.10.15 01:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2003.10.15 01:35
      안녕하세요.최용일입니다. 인디에는 WriteLn뿐만아니라 WiteInteger, WiteBuffer등의 여러가지 데이터를...
    • 강형철
      2003.10.15 00:55
      이상이 없는데요... 참고로 Rewrite는 파일을 생성하고 생성된 파일을 여는 함수입니다... 그러므로 기...
    • 민경철
      2003.10.15 01:05
      말씀하신 대로 프로그램을 이해하고 다른 환경쪽, 지정해준... 폴더가 있는지 등을 확인하고 했더니..잘 되...