Q&A

  • 파라독스 DB에서 삭제된 레코드 복구하기
고수님들의 조언을 듣고자 이렇게 올림니다.
일반 파라독스테이블에서여 삭제된 레코드를 다시 복구하고자 하는데
방법이 있으면 답변부탁드립니다.
(이미 테이블은 클로즈된 상태입니다.)
2  COMMENTS
  • Profile
    구창민 2003.03.04 03:50
    안녕하세여~ 아래 내용은 오래전에 영대님이 XBase 계열의 DB 삭제에

    대해 쓰신 글인데, 참고하시고 즐거운 프로그래밍 하시길~~

    파라독스 테이블은 Xbase 계열(Dbase III Plus, Fox Pro, Clipper, ...)의 테이블들중
    테이블의 내부 구조를 공개하지 않아 파라독스 사용자들을 난처하게 만들죠
    다른 Xbase 들은 테이블이나 인덱스 파일의 내부를 공개하여 파일이 깨졌을때
    복구할 수 있는 자료를 주던데...
    그대신 파라독스 테이블은 tutil32.dll 이나 tutility.dll 의 함수를 사용하여
    테이블을 조작할 수 있습니다

    Xbase 계열의 테이블들은 삭제 표시(파일을 덤프떠보면 '*' 문자로 표시되어 있습니다)만 하는 것입니다
    즉, 레코드를 삭제하면 그 즉시 테이블에서 물리적으로 지우지 않고 삭제되었다는
    표시만 레코드에 해놓고 물리적으로는 지우지 않습니다
    이런 삭제 표시된 레코드를 지우는 작업을 packing 한다고 합니다
    반대로 DOS의 삭제된 파일의 복구처럼 삭제(표시)된 레코드를 살리는 것을
    unpacking 한다고 합니다
    또한 인덱스 파일은 깨져도 다시 만들면 되므로 걱정안 하셔도 됩니다
    다른 Xbase 계열들은 이런 복구, 재생성 유틸리티를 함께 제공하는데
    파라독스는 tutil32.dll 나 tutility.dll 의 함수를 호출하여 작업을 해야 합니다

    아래는 이 dll 들을 응용한 파라독스 테이블 복구 유틸리티 입니다
    저도 써 봤는데 괜찮더군요
    DataSentry Data Maintenance Utility - http://www.logicprocess.com/download/DSENTRY.EXE

    만약 인덱스가 아닌 데이터가 깨졌다면 위의 유틸리티를 써도 약간의
    데이터는 손실될 수 있습니다



  • Profile
    ktos 2003.03.04 05:42


    답변 감사합니다.
    근데 파라독스DB의 Unpack기능 없는데요 있으면 혹 알고 계시면 알려주면
    감사하겠습니다.