판매 주문 테이블 (sDetail)이 있습니다. 레코드에 대한 인덱스가 있습니다. 인덱스는 사실상 Order 참조와 STR (줄 번호)의 키가있는 후보 인덱스입니다. 이것은 특정 주문의 행을 검색하는 데 사용됩니다.VFP. 레코드 삭제 - 인덱싱 - 레코드 다시 만들기
sDetail 테이블에는 순차적 ID 인 기본 인덱스가 있습니다.
주문을 수정할 수 있습니다. 사용자가 주문 행을 삭제하면 해당 테이블에 삭제 된 것으로 기록됩니다. 처리 할 때 일반적으로 SET DELETED ON을 사용하여 실행되므로 사용자는 이러한 삭제 된 레코드를 볼 수 없습니다.
그러나 그는 회선을 다시 만들면 '색인의 고유성이 위반됩니다'라는 오류가 발생합니다. 이 기록은 실행 시간
또는에서 보이지 않도록 ')을 삭제 (FOR!'인덱스에 필터 식을 포함합니다 :
는 다음 중 하나를이 오류를 만들지 않도록하기 위해, 나는 두 가지 접근 방식을 볼 수 있습니다 때 나는 특정 라인에 대한 레코드 존재 여부를 테스트하고, SET DELETED OFF를 설정하고, 레코드의 존재 여부를 테스트하고, 필요하다면 RECALL한다. 그런 다음 SET DELETED ON으로 되돌립니다.
다른 개발자는 무엇을합니까? 아니면 더 좋은 방법이 있습니까?
고맙습니다.
삭제 및 리콜이 마음에 들지 않습니다. ! dele()에 대한 색인은 일을 훨씬 더 진절머리 나게합니다. 나는 그것을 단지 후보 색인이 아닌 일반 색인으로 만들 것입니다. 일을 더 간단하게 유지합니다. – Missy