Q&A

  • StringGrid에서 테이블검색에 관해...
procedure TFrmComn.BBtnSearchClick(Sender: TObject);

var

i : integer;

begin

with Qry1 do

begin

Close;

SQL.Clear;

SQL.Add('select * from jaksi');

Sql.Add('order by jiyouk, moun, saeng, dansu');

Open;



StringGrid1.RowCount := RecordCount;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 국내 생산통계 자료 검색 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

if RadioGroup1.ItemIndex = 0 then

begin

for i := 1 to (StringGrid1.RowCount + 1) do

begin

Close;

SQL.Clear;

Sql.Add('Select * from jaksi');

Sql.Add('where gubun = :gubun');

Sql.Add('and yymd = :yymd');

ParamByName('gubun').AsString := Inttostr(RadioGroup1.ItemIndex);

ParamByName('yymd').AsString := MEdit1.Text;

Open;



StringGrid1.Cells[0,i] := FieldByName('jiyouk').Asstring;

StringGrid1.Cells[1,i] := FieldByName('moun').Asstring;

StringGrid1.Cells[2,i] := FieldByName('saeng').Asstring;

StringGrid1.Cells[3,i] := FieldByName('dansu').Asstring;



end;

SBarMsg.Panels[0].Text := '검색이 끝났습니다..!';

end

else

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// 국외 생산통계 자료 검색

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

if RadioGroup1.ItemIndex = 1 then

begin

for i := 1 to (StringGrid1.RowCount + 1) do

begin

Close;

SQL.Clear;

Sql.Add('Select * from jaksi');

Sql.Add('where gubun = :gubun');

Sql.Add('and yymd = :yymd');

ParamByName('gubun').AsString := Inttostr(RadioGroup1.ItemIndex);

ParamByName('yymd').AsString := MEdit1.Text;

Open;



StringGrid1.Cells[0,i] := FieldByName('jiyouk').Asstring;

StringGrid1.Cells[1,i] := FieldByName('moun').Asstring;

StringGrid1.Cells[2,i] := FieldByName('saeng').Asstring;

StringGrid1.Cells[3,i] := FieldByName('dansu').Asstring;



end;

SBarMsg.Panels[0].Text := '검색이 끝났습니다..!';

end;

end;

end;





여기까지가 검색부분인데...

검색 버튼을 누르면...

만약 20개의 레코드가 있다면...

20개이 레코드가 나와야 하는데...

첫 번째 레코드의 내용만...

19번 출력이 됩니다

아무리 보구 또 봐도...

어디가 잘못 된건지 알수가 없어요...

꼭 좀 알려주세요...

급하거든요~!!!!



1  COMMENTS
  • Profile
    신인재 1999.05.28 01:53
    쩝~~~



    for ~ loop에서 query1.next가 빠졌네요...



    for do begin

    .

    operation....

    .

    query1.next;

    end;



    김동수 께서 말씀하시기를...

    > procedure TFrmComn.BBtnSearchClick(Sender: TObject);

    > var

    > i : integer;

    > begin

    > with Qry1 do

    > begin

    > Close;

    > SQL.Clear;

    > SQL.Add('select * from jaksi');

    > Sql.Add('order by jiyouk, moun, saeng, dansu');

    > Open;

    >

    > StringGrid1.RowCount := RecordCount;

    > //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 국내 생산통계 자료 검색 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    > if RadioGroup1.ItemIndex = 0 then

    > begin

    > for i := 1 to (StringGrid1.RowCount + 1) do

    > begin

    > Close;

    > SQL.Clear;

    > Sql.Add('Select * from jaksi');

    > Sql.Add('where gubun = :gubun');

    > Sql.Add('and yymd = :yymd');

    > ParamByName('gubun').AsString := Inttostr(RadioGroup1.ItemIndex);

    > ParamByName('yymd').AsString := MEdit1.Text;

    > Open;

    >

    > StringGrid1.Cells[0,i] := FieldByName('jiyouk').Asstring;

    > StringGrid1.Cells[1,i] := FieldByName('moun').Asstring;

    > StringGrid1.Cells[2,i] := FieldByName('saeng').Asstring;

    > StringGrid1.Cells[3,i] := FieldByName('dansu').Asstring;

    >

    > end;

    > SBarMsg.Panels[0].Text := '검색이 끝났습니다..!';

    > end

    > else

    > //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    > // 국외 생산통계 자료 검색

    > //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    > if RadioGroup1.ItemIndex = 1 then

    > begin

    > for i := 1 to (StringGrid1.RowCount + 1) do

    > begin

    > Close;

    > SQL.Clear;

    > Sql.Add('Select * from jaksi');

    > Sql.Add('where gubun = :gubun');

    > Sql.Add('and yymd = :yymd');

    > ParamByName('gubun').AsString := Inttostr(RadioGroup1.ItemIndex);

    > ParamByName('yymd').AsString := MEdit1.Text;

    > Open;

    >

    > StringGrid1.Cells[0,i] := FieldByName('jiyouk').Asstring;

    > StringGrid1.Cells[1,i] := FieldByName('moun').Asstring;

    > StringGrid1.Cells[2,i] := FieldByName('saeng').Asstring;

    > StringGrid1.Cells[3,i] := FieldByName('dansu').Asstring;

    >

    > end;

    > SBarMsg.Panels[0].Text := '검색이 끝났습니다..!';

    > end;

    > end;

    > end;

    >

    >

    > 여기까지가 검색부분인데...

    > 검색 버튼을 누르면...

    > 만약 20개의 레코드가 있다면...

    > 20개이 레코드가 나와야 하는데...

    > 첫 번째 레코드의 내용만...

    > 19번 출력이 됩니다

    > 아무리 보구 또 봐도...

    > 어디가 잘못 된건지 알수가 없어요...

    > 꼭 좀 알려주세요...

    > 급하거든요~!!!!

    >