Q&A

  • 타이머를 이용했는데 뭐가 문제인지??고수님 쁘리즈
sql에서 데이타를 받아서 정기적(10초)간격으로 데이타를 보여주고 싶은데

잘안되네요....이런지...interval 속성은 10000으로 주었구요...근데 뭐가 문제

이지 제가 코딩을 잘못했는것 같은데...콤보박스를 선택해서 각 해당 데이타를

선택하면 그에 해당하는 데이타가 정기적으로 올라 와야 한는데 좀 갈르쳐 주세요...

소소는

procedure TForm1.EventTimerTimer(Sender: TObject);

begin

screen.Cursor := crHourGlass;

EventTimer.Tag := EventTimer.Tag + 1;

if EventTimer.Tag > 200 then begin

EventTimer.Tag := 0;



with OrderQuery do begin

try

DisableControls;

Close;

SQL.Clear;

SQL.Add('SELECT * FROM tPBS');

OPEN;

LAST;

finally

EnableControls;

end;

end;

orderQuery.free;

end;

Screen.Cursor := crDefault;

end;



1  COMMENTS
  • Profile
    yosul 2001.01.02 23:56
    > with OrderQuery do begin

    > try

    > DisableControls;

    > Close;

    > SQL.Clear;

    > SQL.Add('SELECT * FROM tPBS');

    > OPEN;

    > LAST;

    > finally

    > EnableControls;

    > end;

    > end;

    > orderQuery.free;

    > end;

    > Screen.Cursor := crDefault;

    > end;



    orderQuery.free 이 문장이 잘 못 된것 같습니다.

    주석처리해서 한 번 실행시켜 보시죠.

    그리고 EnableControls와 DisableControls 역시 잘 못 된것 같은데...

    쩝...저두 확실치는 않군요.



    아래 내용은 제 생각입니다. 나중에 틀렸다는걸 알아도 이해 바람.

    DisableControls와 EnabledControls는 쿼리한 데이터를 루프문으로 조작할 때

    속도가 떨어지는것을 줄이기 위해 전 자주 사용했습니다.

    루프문 시작전에 DisableControls를 쓰고,

    루프문 끝난후에 EnableControls를 쓰고,



    왜 위와 같이 쓰냐면 DataSource컴포넌트와의 연결을 잠시 끊기 위해서죠.



    예를 들어 하나의 DataSource 컴포넌트에 여러개의 DBGrid라던지, DBEdit등

    이 연결되어 있다면 Table의 변화되는 내용을 보여주는 돼는 컴퓨터가 빠르다고

    하지만 어느정도의 시간을 쫌 걸리죠. 특히나 중형 DB를 다룬다면 더...



    아래 저 나름대로 고쳐 봤습니다.



    with OrderQuery do begin

    try

    //DisableControls;

    Close;

    SQL.Clear;

    SQL.Add('SELECT * FROM tPBS');

    OPEN;

    LAST;

    finally

    //EnableControls;

    //다른 예외를...

    end;

    end;

    //orderQuery.free;

    end;

    Screen.Cursor := crDefault;



    Query를 Open하고 레코드를 Last로 옮겼는데 왜인지?