Q&A

  • 쿼리가 여러개 있을 경우 ...
쿼리가 여러개 있을 경우 한 쿼리는 다른 쿼리의 결과값을 참조하고

그 쿼리는 또 다른 쿼리의 값을 참조하여 쿼리실행의 순서의 문제가 발생했습니다.

제일 먼저 실행하는 쿼리가 Calculated 필드를 가지기 때문에 Open과 동시에 OnCalcFields 이벤트가 실행됩니다.

근데 이 이벤트 안에서 다른 쿼리의 결과 값을 참조하게 되므로 모든 레코드가 똑같은 값을 참조하게 됩니다.

쿼리의 결과값에 따라 다른 결과값을 참조해야 하는데

똑같은 값을 참조하니 문제입니다.



문제의 실행소스는 다음과 같습니다.

Q_IOFSEGAmt.AsFloat := Q_IOFSEGIOFQTY.AsFloat * Q_IOFSEGDAN1.AsFloat;

Q_IOFSEGDAN2.AsFloat := T_DanAMT.AsFloat;

// T_.Next;

Showmessage(FloatToStr(Q_IOFSEGDAN2.AsFloat));

if Q_IOFSEGDAN2.AsFloat = 0 then

Q_IOFSEGPercent.AsFloat := 0

else

begin

Q_IOFSEGPercent.AsString := Format('%5.1f',[(Q_IOFSEGDAN1.AsFloat*100./Q_IOFSEGDAN2.AsFloat)])+'%';

end;

위에서 주석 처리한 T_.Next를 넣고 실행하니 에러가 발생하는 군요...

이런 경우엔 어떻게하면 좋은가요?

매번 부탁만 하게 되네요.....

좋은 하루 되십시오....

0  COMMENTS