안녕하세요...
다음과 같은 테이블 관계가 있읍니다...
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