Q&A

  • applyupdate에 관한 질문입니다. 급합니다.
database, query, updatesql 컴포넌트를 가지고 update를 합니다.

코딩은 아래와 같습니다.



with Dm1.query1 do begin

i := 0;



First;

while not Eof do begin

Edit;

inc(i);

FieldByName('필드명').AsString := 'code번호 - ' + IntToStr(i);

Next;

end;



ApplyUpdates;

end;



코딩은 이렇습니다.

문제는 applyupdates 에서 시간이 너무 오래 걸립니다.



다른 방법으로 sql문으로 해봤으나 역시 느리더군요.....



applyupdates는 루프를 다돌고 업데이트 하는데 시간이 너무 오래걸리고,

sql문으로 루프를 돌릴때 한번에 하나씩 업데이트를 하니까..

루프를 다도는데 시간이 너무 오래 걸립니다.



업데이트하는 시간을 줄일수 있는 좋은 방법이 없습니까..?



1  COMMENTS
  • Profile
    김범석 2000.06.22 20:36
    혹 DBGrid를 사용하는지요

    그러면 query1.next할 때마다 DBGrid의 graphic control 때문에 더욱더 속도가



    느려집니다 처리건수가 많을수록 심하겠죠



    방벙은 roop를 돌기전에 query1.disableControls

    roop를 돌고나서 query1.enableControls 를 해주세요



    그리고 coding 위부분의 다른 query 처리는 어떻게 되어있는지 모르겠느데



    ApplyUpdates 이후에 commitUpdate를 해주세요



    이명령은 apply하고난 query를 깨끗히 청소하여 줍니다 자꾸 apply 만하면



    않되겠죠?



    그리고 권장사항인데 건수가 많은 update 처리는 stordProcedure를 사용하세요



    속도가 훨씬 빨라질거예요 그럼 ....





    lee wrote:

    > database, query, updatesql 컴포넌트를 가지고 update를 합니다.

    > 코딩은 아래와 같습니다.

    >

    > with Dm1.query1 do begin

    > i := 0;

    >

    > First;

    > while not Eof do begin

    > Edit;

    > inc(i);

    > FieldByName('필드명').AsString := 'code번호 - ' + IntToStr(i);

    > Next;

    > end;

    >

    > ApplyUpdates;

    > end;

    >

    > 코딩은 이렇습니다.

    > 문제는 applyupdates 에서 시간이 너무 오래 걸립니다.

    >

    > 다른 방법으로 sql문으로 해봤으나 역시 느리더군요.....

    >

    > applyupdates는 루프를 다돌고 업데이트 하는데 시간이 너무 오래걸리고,

    > sql문으로 루프를 돌릴때 한번에 하나씩 업데이트를 하니까..

    > 루프를 다도는데 시간이 너무 오래 걸립니다.

    >

    > 업데이트하는 시간을 줄일수 있는 좋은 방법이 없습니까..?

    >