Q&A

  • Master-Detail-Detail관계에서 DATA 삭제하기.....
안녕하세요...

다음과 같은 테이블 관계가 있읍니다...



Mst_Table //마스터 테이블

|

Dt_Table // 디테일 테이블(=SubDt_Table의 마스터 테이블)

|

SubDt_Table // 디테일의 디테일 테이블...

테일블간의 관계가 이러할때 Mst_Table을 삭제를 하면 Dt_Table, SubDt_Table 모두 다 삭제를 할려고 합니다.... 그래서

1. Mst_Table의 BeforeDelete 이벤트에 다음과 같이 삭제처리를 하였읍니다.

Dt_Table.First;

while not Dt_Table.EOF do

Dt_Table.Delete;

2. Dt_Table의 BeforeDelete 이벤트에도 다음과 같이 삭제처리를 하였읍니다.

SubDt_Table.First;

while not SubDt_Table.EOF do

SubDt_Table.Delete;



1번 Step은 Mst_Table과 Dt_Table간에는 삭제가 잘됨. (여태까지 많이 써 먹었음)

2번 Step에서 디테일 테이블(SubDt_Table)의 Data를 처음 한번은 잘 지우는데

그 다음 부터는 삭제를 하지를 못합니다. 자세히 살펴보니 두번째 실행때에는

커서(레코드) 위치가 SubDt_Table.Bof = SubDt_Table.Eof가 되어 버립니다.

테이블의 레코드가 전혀 없을때에 Bof = Eof 가 되는데 왜 레코드가 있는데도

불구하고 위와 같이 되어 버리는지 도무지 알 길이 없군요...



결과는 DT_Table의 첫번째 Loop만 제대로 수행이되고 두번째 Loop부터는 위와 같은 현상

(Bof = Eof)이 나와서 더 이상 삭제가 되지가 않습니다....

그러나 Dt_Table은 깨끗하게 삭제가 됨... SubDt_Table도 깨끗하게 삭제할 수 있는 방법이

없는지요...

==== 고수님들의 구원의 손길을 기다리겠읍니다..... ====

참고] 델5 + 윈98 + 파라독스 DB

0  COMMENTS