Q&A

  • StringGrid에 Data 출력에 대한 질문입니다. 꼭 봐주세요..
1. Table 쿼리를 했습니다

2. 쿼리한 결과를 스트링그리드에 뿌려줍니다.

3. 그런데 그 쿼리한 결과가 수백개라서 스트링그리드의 셀을 일일이 정해주면서 값을

넣어 줄 수 없습니다.

4. 얘기를 들어보니 RowCount를 하나씩 늘려가면서 데이타를 출력할 수 있다고 하는데..

그렇게 하면 Space낭비도 없다고 들었는데.. 제 머리가 안돌아가서요..

혹시 간단한 소스라도 있으면 올려주세요..



5. 지금은 그거 하나만 해결하면 원이 없겠습니다.



꼭 좀 부탁드립니다. 죄송하지만 소스에 설명까지 곁들여 주시면 더더욱 감사하겠습

니다.

2  COMMENTS
  • Profile
    심민식 2000.03.24 02:56
    sun wrote:

    > 1. Table 쿼리를 했습니다

    > 2. 쿼리한 결과를 스트링그리드에 뿌려줍니다.

    > 3. 그런데 그 쿼리한 결과가 수백개라서 스트링그리드의 셀을 일일이 정해주면서 값을

    > 넣어 줄 수 없습니다.

    > 4. 얘기를 들어보니 RowCount를 하나씩 늘려가면서 데이타를 출력할 수 있다고 하는데..

    > 그렇게 하면 Space낭비도 없다고 들었는데.. 제 머리가 안돌아가서요..

    > 혹시 간단한 소스라도 있으면 올려주세요..

    >

    > 5. 지금은 그거 하나만 해결하면 원이 없겠습니다.

    >

    > 꼭 좀 부탁드립니다. 죄송하지만 소스에 설명까지 곁들여 주시면 더더욱 감사하겠습

    > 니다.



    예를 들어 테이블에서 두개의 필드값을 얻는다고 하면,



    var

    i : integer;

    begin

    with query do

    begin

    close;

    sql.Clear;

    sql.Add('select 필드1, 필드2 from 테이블');

    open;

    first;

    i := 1;

    StringGrid.RowCount := RecordCount + 1;

    //그리드의 제목을 고려해 레코드수보다 1개를 더한 값을 RowCount로 해 줍니다.

    while not eof do

    begin

    StopStringGrid.Cells[0,i] := FieldByName('필드1').asstring;

    StopStringGrid.Cells[1,i] := FieldByName('필드2').asstring;

    //각 셀에 처음부터 값을 넣어줍니다.

    Next;

    inc(i); //셀 인덱스를 증가시켜 줍니다

    end;

    close;

    end;

    end;

  • Profile
    yesir 2000.03.24 00:28
    sun wrote:

    > 1. Table 쿼리를 했습니다

    > 2. 쿼리한 결과를 스트링그리드에 뿌려줍니다.

    > 3. 그런데 그 쿼리한 결과가 수백개라서 스트링그리드의 셀을 일일이 정해주면서 값을

    > 넣어 줄 수 없습니다.

    > 4. 얘기를 들어보니 RowCount를 하나씩 늘려가면서 데이타를 출력할 수 있다고 하는데..

    > 그렇게 하면 Space낭비도 없다고 들었는데.. 제 머리가 안돌아가서요..

    > 혹시 간단한 소스라도 있으면 올려주세요..

    >

    > 5. 지금은 그거 하나만 해결하면 원이 없겠습니다.

    >

    > 꼭 좀 부탁드립니다. 죄송하지만 소스에 설명까지 곁들여 주시면 더더욱 감사하겠습

    > 니다.







    이 내용이 맞을 거예여...

    제꺼는 2컬럼짜리 거든여...

    제가 코딩하덩게 이떠서 구냥 붙여봤슴따...도움이 되시길....(간절기원)..^,.^;;

    procedure Tstnys_form.stnys_sg_disp(var receive_key: string);

    var

    i: integer;

    rec_cnt: integer;

    begin

    i:=1;

    with query1 do begin

    close;

    sql.clear;

    sql.add('select * from table1 where 프라이머리 = ''' + 찾을키 + '''');

    open;

    rec_cnt:=recordcount;

    if recordcount<>0 then begin

    while i<=rec_cnt do begin

    stringgrid1.cells[0,i]:=fieldbyname('찾을키1').asstring;

    stringgrid1.cells[1,i]:=FieldByName('찾을키2').asstring;

    i:=i+1;

    query1.Next;

    end;

    end;

    end;

    end;