::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-05 22:09:15, Hit : 5228, Vote : 1250
 Paradox 테이블이 깨졌을때...

candy님의 글
---------------------------
파락독스 데이터베이스를 사용하고 있습니다.
데이터를 삭제해도, 파일사이즈는 여전히 줄어들지 않습니다.
어떡해 파일과 데이터 를 관리해야 하나요?

그리고, 가끔 프로그램 실행중 header index가 깨졌다는 메시지가
뜨는데, 왜 이런현상이 생기며
어떡해 해야하나요?
---------------------------

안녕하세요  김영대입니다

파라독스 테이블은 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

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






531   [윈도우즈 API] bitmap 인쇄하기  김영대 2003/03/05 5326 1364
530   [윈도우즈 API] 폼의 최대/최소화 막기  김영대 2003/03/06 5325 1426
529   [윈도우즈 API] 마우스의 모양 바꾸고 이동범위 제한하기  김영대 2003/03/05 5319 1301
528   [일반/컴포넌트] 문자열의 바이트수가 아닌 실제 글자수 구하기  김영대 2003/03/07 5317 1171
527   [일반/컴포넌트] 절대경로와 상대경로 결합  김영대 2004/08/25 5315 1475
526   [일반/컴포넌트] Memo의 커서를 특정 위치로 보낸후 scroll 시키기  김영대 2003/03/05 5313 1192
525   [일반/컴포넌트] MS-OutLook 으로 메시지 보내기  김영대 2003/03/07 5312 1212
524   [윈도우즈 API] 날짜변형에 대해서...  김영대 2003/03/04 5307 1322
523   [윈도우즈 API] 윈도우즈 탐색기에서 "Copy" 될 파일목록 구하기  김영대 2003/03/07 5302 1389
522   [일반/컴포넌트] TIFF Images and manipulation  김영대 2003/03/07 5302 1304
521   [윈도우즈 API] Task bar 에 나타나지 않는 프로그램 만들기  김영대 2003/03/07 5296 1541
520   [시스템] 내 프로그램의 실행 우선순의 바꾸기  김영대 2004/07/24 5295 1434
519   [윈도우즈 API] 전체 화면(Full Screen) 만들기  김영대 2003/03/29 5293 1354
518   [윈도우즈 API] 휴지통이 비어있는지 확인하기  김영대 2004/08/05 5292 1295
517   [일반/컴포넌트] 프린터로 escape 문자 출력하기(raw print)  김영대 2003/03/07 5288 1321
516   [일반/컴포넌트] 다른 윈도우의 PageControl(TabControl) 상태 알아내기  김영대 2004/09/13 5277 1383
515   [시스템] 여러 프로세스간에 자료 공유하기  김영대 2003/03/04 5277 1347
514   [일반/컴포넌트] 디렉토리 검색하여 파일 찾기  김영대 2003/03/05 5275 1520
513   [일반/컴포넌트] 문자열의 끝에서부터 검색하는 Pos() 함수  김영대 2003/03/07 5273 1206
512   [일반/컴포넌트] Task bar 에 나타나는 프로그램 아이콘 바꾸기  김영대 2004/08/11 5267 1256
511   [윈도우즈 API] RichEdit에 입력한 문장의 실제 높이 구하기  김영대 2003/03/06 5258 1471
510   [시스템] 마우스 포인터 속도 바꾸기  김영대 2003/03/06 5254 1295
509   [네트웍/인터넷] Read/Write to COM Port  김영대 2003/03/07 5253 1255
508   [시스템] 다른 Application 생성과 소멸에 대하여...  김영대 2003/03/04 5248 1413
507   [COM/OLE] How to register an OCX  김영대 2003/03/06 5243 1209
506   [COM/OLE] Shockwave Flash ActiveX 사용하기 예제  김영대 2004/08/09 5242 1391
505   [시스템] CD-ROM의 변경여부를 감시하기  김영대 2003/03/07 5241 1350
504   [일반/컴포넌트] 주어진 달의 주수  김영대 2003/03/05 5241 1698
503   [일반/컴포넌트] 특정 레지스트리 키 의 모든 목록을 한방에! 읽어오기  구창민 2003/03/14 5240 986
502   [알고리즘] 숫자를 KB, MB, GB 단위로 환산하기  김영대 2003/11/13 5236 1194
  [데이터베이스] Paradox 테이블이 깨졌을때...  김영대 2003/03/05 5228 1250
500   [일반/컴포넌트] 명령행 인자(command line argument) 사용하기  김영대 2003/03/05 5228 1363
499   [COM/OLE] 떠있는 모든 Internet Explorer 를 강제 Refresh 시키기  김영대 2004/09/20 5224 1346
498   [시스템] 윈도우즈 서비스 상태 구하기  김영대 2004/07/22 5223 1323
497   [데이터베이스] DBGrid 에서 선택된 필드의 타이틀을 굵게  김영대 2003/03/04 5220 1430
496   [윈도우즈 API] 현재 키보드 입력 언어 구하기  김영대 2004/07/24 5219 1399
495   [윈도우즈 API] 모서리가 둥근(rounded ends) TEdit 만들기  김영대 2003/03/07 5219 1329
494   [윈도우즈 API] 메모(TMemo)의 커서(캐럿)모양 바꾸기  김영대 2003/03/05 5216 1958
493   [시스템] CPU의 사용률 구하기  김영대 2003/03/07 5214 3326
492   [일반/컴포넌트] ListBox의 내용을 클립보드로 복사하기  김영대 2003/03/05 5207 1172

[이전 10개] [1]..[11] 12 [13][14][15][16][17][18][19][20]..[25] [다음 10개]
 

Copyright 1999-2024 Zeroboard / skin by zero