Q&A

  • 값이 제대로 안나옵니당~~
procedure Form1.Formcreate(..)

begin

with query1 do begin

Close;

sql.clear;

sql.add('select *');

sql.add('from table_name');

Open;

end;



Edit1.Text := IntToStr(Query1.recordcount);



end;



위와 같이 코드를 작성하였습니다.

query1을 dbgrid에서는 잘 받아와서 보여주는 반면에 Edit1에서는 '-1'이란 값을

보여주는 군요.. 분명히 많은 record들이 있는데 말입니다.



제가 워낙에 기초가 안돼있고 허접해서 뭐가 뭔지를 모르겠습니다.

저번에는 이런 방식으로 되었었던것 같은데..

답변 부탁드리면서 미리 감사의 말씀을 드립니다.

1  COMMENTS
  • Profile
    김영해 2000.07.13 17:21
    선해석 wrote:

    > procedure Form1.Formcreate(..)

    > begin

    > with query1 do begin

    > Close;

    > sql.clear;

    > sql.add('select *');

    > sql.add('from table_name');

    > Open;

    > end;

    >

    > Edit1.Text := IntToStr(Query1.recordcount);

    >

    > end;

    >

    > 위와 같이 코드를 작성하였습니다.

    > query1을 dbgrid에서는 잘 받아와서 보여주는 반면에 Edit1에서는 '-1'이란 값을

    > 보여주는 군요.. 분명히 많은 record들이 있는데 말입니다.

    >

    > 제가 워낙에 기초가 안돼있고 허접해서 뭐가 뭔지를 모르겠습니다.

    > 저번에는 이런 방식으로 되었었던것 같은데..

    > 답변 부탁드리면서 미리 감사의 말씀을 드립니다.



    미리 검색을 하시면 될껀데.....

    oracle의 경우 어쩌다 그런경우가 생길수도 있습니다.



    Query1.open;

    Query1.FetchAll;

    { Query1.last;

    Query1.first;

    }

    Edit1.Text := IntToStr(Query1.recordcount);



    하시구요... recordcount메쏘드를 자주 사용 안하시는게 좋을 겁니다.

    매번 다시 세거든요. 카운트가 커지면 대책없이 느려집니다.

    쿼리시 count 를 하시는게 빠를 경우도 있습니다.