Q&A

  • DBGrid에 대한 하수의 허접한 질문...
^^ 또 허접한 질문을 드립니다.



query와 DBGrid를 연결하여습니다.

1초에 한번식 갱신을 해야 할때



timer컴포넌트주고



Query1.open

Query1.Close



위의 식으로 하니깐.. DBGrid가 심하게 껌벅거리는군요.

깜박거리지 않을 방법이 있을까요??

3  COMMENTS
  • Profile
    강인규 2000.07.17 02:20
    그 방법보다는



    Query1.Refresh;



    이게 조금 나은 방법이죠.그래도 조금의 깜박거림은 감수해야할듯....

    도데체 무신 엽기적인 프로그램을 만드시기에......-_-;

    그나저나 선해석님 오프안갔어요? 나두 학교인데... 담에봐여.





    선해석 wrote:

    > ^^ 또 허접한 질문을 드립니다.

    >

    > query와 DBGrid를 연결하여습니다.

    > 1초에 한번식 갱신을 해야 할때

    >

    > timer컴포넌트주고

    >

    > Query1.open

    > Query1.Close

    >

    > 위의 식으로 하니깐.. DBGrid가 심하게 껌벅거리는군요.

    > 깜박거리지 않을 방법이 있을까요??

  • Profile
    선해석 2000.07.17 10:02
    강인규 wrote:

    > 그 방법보다는

    >

    > Query1.Refresh;

    >

    > 이게 조금 나은 방법이죠.그래도 조금의 깜박거림은 감수해야할듯....

    > 도데체 무신 엽기적인 프로그램을 만드시기에......-_-;

    > 그나저나 선해석님 오프안갔어요? 나두 학교인데... 담에봐여.

    >

    >

    > 선해석 wrote:

    > > ^^ 또 허접한 질문을 드립니다.

    > >

    > > query와 DBGrid를 연결하여습니다.

    > > 1초에 한번식 갱신을 해야 할때

    > >

    > > timer컴포넌트주고

    > >

    > > Query1.open

    > > Query1.Close

    > >

    > > 위의 식으로 하니깐.. DBGrid가 심하게 껌벅거리는군요.

    > > 깜박거리지 않을 방법이 있을까요??



    ^^ 프로젝트 땜시롱 죽갔습니당~~ 해봤어야 뭘 하지... 무조건 덤비고는 있는데,,



    헌데 refresh를 주면

    'Table does not support this opperation beacause it is not uniquely indexed'

    라는 메시지가 나오면서 프로그램 stop이 되는군요..

    음.. 뭐 기본키가 지정이 안되 있기 때문이라는 것 같은데...



    그저 refresh는 내부적으로 쿼리를 close했다가 open해주는거 아닌가??

    왜 open close 했을때는 분명히 되었는데, refresh를 하면 저런 메시지가 뜨는 걸까요.



    흑.. 헤깔리네요... 답변 부탁드립니다.

  • Profile
    갱민이 2000.07.17 11:37
    TDataSet의 Method에는 DisableControls,EnableControls가 있습니다.

    이들 이용하면 TDataSet의 Open,Close시 DBGrid가 깜빡거리지 않으며

    속도 또한 빨라집니다.

    반드시 DisableControls을 하고 나면 EnableCotrols을 해야함으로

    Try~~Finally문을 사용해야 합니다. 또한 TDataSet을 Refresh보단

    Open~close나 Acitve를 False~True하는 것이 더 좋으리가 생각됩니다.



    ( DisableControls,EnableControls의 자세한 설명은 도움말에서

    TDataSet의 Method에서 찾아보시면 됩니다.)



    with TDataSet(Query,Table) do

    begin

    DisableControls;

    try

    Close; //or Active := False;



    {do Somethings}



    Open; //or Active := True;

    finally

    EnableControls;

    end;

    end;



    • 윤상철
    • 2000.07.18 05:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강상성
      2000.07.25 00:14
      저도 이것 때문에 상당히 고생했습니다. 하나 빼 먹은 속성이 있습니다. 도움말에도 언급이 되어 있지 않...
    • happykevin
      2000.07.19 19:03
      저도 믿을 수 없는 초보인데.. 이것은 우연하게 되더군요. 생각보다 간단합니다. 1) 우선 콤보박스에 ...
    • 구창민
    • 2000.07.18 03:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.07.18 19:56
      최영근 wrote: > 안녕하세요 ? > > 답변해 주셔서 고맙습니다. > 관련 소스들을 올립니다. > > >...
    • 타락천사
      2000.07.18 19:28
      글문 전 초보도 못돼나여? ㅠㅠ 흑흑...T_T 안구래두 요즘 고수덜이 초보라구 하는데...ㅠㅠ .....
    • 이상현
    • 2000.07.17 22:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.07.18 03:38
      이상현 wrote: > 저는 왕초보 갓 델파이를 시작한 학생입니다.. > > 책을보면서 열심히 연마(?) 하고있...
    • 사람
    • 2000.07.17 20:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2000.07.18 03:28
      사람 wrote: > 다른 기능 필요없고 > 그냥 기본적인 복사,등록기능과 언인스톨 기능만 있으면됩니다. > ...
    • 타락천사
      2000.07.18 19:24
      안녕하세여 타락임다..^^ ListBox1 : Source, ListBox2 : Destination ListBox2.Itmes.Assign(ListBo...
    • 강인규
      2000.07.17 20:47
      예전에 만들었던건데 동작은 할거에요 var i : integer; begin if listbox1.items.Count < 1 then ...
    • somoon
    • 2000.07.17 16:14
    • 2 COMMENTS
    • /
    • 0 LIKES
    • somoon
      2000.07.18 15:39
      안녕하세요. 님이 친절히 알려주신 batchmove에 대하여 정말 너무나 감사합니다. 이렇게 간단하게 전 ...
    • 김영해
      2000.07.17 20:33
      somoon wrote: > 고수님들 안녕하십니까? > > query1의 전체 레코드를 table1에 복사하려합니다. > ...
    • chipwar
    • 2000.07.17 10:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이유정
    • 2000.07.17 06:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2000.07.18 07:32
      이유정 wrote: > > 델파이에서 기본적으로 지원하는 소켓 컴포넌트대신에 > 다른곳에서 만들어진 win...
    • 양병규
      2000.07.17 11:44
      디비그리드의 셀을 디비와 상관없이 알아내려면... TCustomGrid를 상속받아서 새로운 그리드를 정의한다음...
    • 아세만
      2000.07.17 09:46
      김연기 wrote: > DBGrid 사용시에... > > DBGrid 특정 CELL에서 입력시 > 현재 CELL에 입력된 문자를 ...
    • 선해석
    • 2000.07.17 02:04
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.07.17 02:20
      그 방법보다는 Query1.Refresh; 이게 조금 나은 방법이죠.그래도 조금의 깜박거림은 감수해야할듯.....
    • 선해석
      2000.07.17 10:02
      강인규 wrote: > 그 방법보다는 > > Query1.Refresh; > > 이게 조금 나은 방법이죠.그래도 조금의 ...
    • 갱민이
      2000.07.17 11:37
      TDataSet의 Method에는 DisableControls,EnableControls가 있습니다. 이들 이용하면 TDataSet의 Open,Clo...
    •   
    • 2000.07.17 01:43
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 2001.11.24 01:08
      이렇게 답변글 올려주신 홍성락님께 진심으로 감사드립니다. 그런데, 저의 질문과 약간 엊갈리는 부분...
    • 김진호
      2000.07.18 03:00
      > 윈도우 API 함수중에 TextOut 이라는걸 이용해서 > 해당 DC에 문자열을 출력시킬 수 있는데.. > 그 출...
    • 양병규
      2000.07.17 11:51
      물론... API에 폰트를 바꾸고 그림을 그리는것들이 다 있습니다. 그런데... 질문하신분께 이런 내...
    •   
      2000.07.17 16:58
      죄송하지만 위에서 말했듯이 이런 답변을 요구한게 아니라서.. ^^; 저도 직접 1시간동안 API 함수만 뒤지...
    • 타락천사
      2000.07.18 19:19
      안녕하세여..타락임다..^^ 무슨 질문인가 곰곰히 생각해 봤는데, ..님의 의도를 모르겠더군여..ㅠㅠ ...
    • 김연기
      2000.07.17 01:20
      박승규 wrote: > 예를 들어 어떤 테이블의 필드가 > |필드명| > -------- > | A | > | A...
    • 갱민이
      2000.07.17 11:49
      김연기 wrote: > 박승규 wrote: > > 예를 들어 어떤 테이블의 필드가 > > |필드명| > > -------- ...
    • 선해석
    • 2000.07.16 09:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.07.16 22:25
      Time 대신 Now로 해보세여..
    • 선해석
      2000.07.16 23:46
      내용 없당께요.. 근디.. now랑 time이랑 무신 차이지??
    • 이승리
    • 2000.07.16 09:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김진호
      2000.07.18 00:06
      이승리 wrote: > 안녕하세요.. > > 이미지 박스에 그림을 불러올려 합니다.. 하드에서 말고, > 컴퓨터...
    • 델초보
    • 2000.07.16 02:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.07.19 03:41
      델초보 wrote: > 성적관리 프로그램을 해보려고 하는데요... > 관련 프로그램이나 소스같은 것 좀 올려주...
    • 한영수
    • 2000.07.16 01:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • parkisu
      2000.07.16 08:14
      한영수 wrote: > 초보적인 질문인데 알려주시분 계시리라 생각하며 질문 올립니다. > 데이타 베이스와 연...
    • 이경문
      2000.07.18 07:36
      코딩으로 해야 됩니다. 예를 들면 procedure TForm1.DataSource1Change(...); begin Edit1.Text := T...