Q&A

  • DBGrid로 읽은후, 편집중에 특정필드만 계산하는데..
DBGrid로 쿼리를 읽어와서, 편집까지 하고 싶습니다.



근데, 문제는 기존의 데이타를 수정하지 않으면, 원래 데이타를 그대로 있게



하고 싶은데 쿼리의 BeforeScroll에서 하니까, 무조건 다시 계산합니다.



DataSource의 OnDataChange에서 계산처리를 한후 POST하게



하니까 Stack OverFlow가 나면서 다운이 됩니다.



BeforeScroll에서 계산처리한 후, Post를 했는데 이 모듈을 그대로 OnDataChange에서



쓰면 안되나요?



수정이 되어야, 계산을 새로하고 싶은데 방법이 없나요?

2  COMMENTS
  • Profile
    Bean 2001.01.15 05:09
    BeforeScroll에서보다는



    BeforeEdit에서가 확실히 되는 것 같습니다. 휘리릭~~~~

  • Profile
    Bean 2001.01.15 04:33
    자답 :



    에궁, 먼저 여러분께 물의(?)를 일으킨점 사과드립니다.



    결론부터 말씀드리면 해결했습니다.



    어떻게 했냐하면,



    먼저, Query의 BeforeScroll이벤트에서 필드값을 불러오고(oldval)



    Query의 BeforePost에서 다시 불러옵니다.(newval)



    고놈을



    if (oldval <> newval) then

    begin

    Adoquery1.Edit;

    AdoQuery1.FieldByName('LENGTH').AsFloat := oldval;

    end;



    하니깐 이 필드가 변경이 되었는지 검사가 되었습니다.



    다들 아시는데, 나만 몰라서 지송...^.^



    글구, AdoQuery1.Post를 하면 에러가 납니다.



    당연히, POST직전에 하는 일이니깐, 알아서 POST가 되겠죠?



    고럼, 즐푸하세여.