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

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


Category

  김영대(2003-03-05 22:09:15, Hit : 5067, Vote : 1172
 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

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






291   [일반/컴포넌트] 타이틀바 클릭시 사용자 팝업메뉴 보이기  김영대 2003/03/07 4911 1180
290   [윈도우즈 API] EXCEL 종료시키기  김영대 2003/03/07 4682 1180
289   [윈도우즈 API] How to flush key buffer  김영대 2003/03/07 4448 1179
288   [윈도우즈 API] bitmap 인쇄하기 2  김영대 2003/03/05 4372 1178
287   [일반/컴포넌트] 모든 드라이브,디렉토리 검색하여 파일 찾기  김영대 2003/03/07 4737 1177
286   [일반/컴포넌트] TRichEdit 에 윗첨자, 아랫첨자 만들기  김영대 2003/03/07 4561 1176
285   [일반/컴포넌트] 문자열의 끝에서부터 검색하는 Pos() 함수  김영대 2003/03/07 5120 1176
284   [일반/컴포넌트] MS-OutLook 으로 메시지 보내기  김영대 2003/03/07 5141 1175
283   [일반/컴포넌트] ListBox의 화면에 보여지는 최상위 Item 번호  김영대 2003/03/07 4336 1174
282   [일반/컴포넌트] 하나의 프로시저,함수로 다른 함수,프로시저를 처리  김영대 2003/03/05 4030 1174
281   [일반/컴포넌트] 쓰레드를 이용한 복수 Query 동시에 열기  김영대 2003/03/05 6344 1174
280   [일반/컴포넌트] TStringGrid 인쇄하기  김영대 2003/03/07 4796 1172
279   [일반/컴포넌트] Memo의 입력행수 제한하기  김영대 2003/03/07 4145 1172
278   [COM/OLE] How to register an OCX  김영대 2003/03/06 5022 1172
  [데이터베이스] Paradox 테이블이 깨졌을때...  김영대 2003/03/05 5067 1172
276   [윈도우즈 API] bitmap 인쇄하기  김영대 2003/03/05 4541 1172
275   [일반/컴포넌트] StringGrid 의 BeginUpdate/EndUpdate ?  김영대 2003/03/07 5494 1171
274   [데이터베이스] 몇가지 BDE 환경정보 구하기  김영대 2003/03/07 4420 1169
273     [COM/OLE] [re] PDF ActiveX 사용하기  초보델피 2005/07/18 5303 1168
272   [윈도우즈 API] 바로 직전에 active 되었던 윈도우와 콘트롤 구하기  김영대 2004/07/24 4646 1168
271   [시스템] PC에 설치된 드라이브 목록 구하기  김영대 2003/03/07 4759 1167
270   [일반/컴포넌트] ComboBox에 IE의 URL 입력창 같은 근접검색 두기  김영대 2003/03/31 4649 1164
269   [일반/컴포넌트] 수직 스크롤이 맨마지막으로 이동했는지 검사  김영대 2003/03/07 3963 1163
268   [윈도우즈 API] 데스크탑 아이콘 전부 감추기/보이기  김영대 2003/03/07 3948 1163
267   [일반/컴포넌트] 베쥬(Bezier) 곡선 그리기2  김영대 2003/03/07 4878 1162
266   [일반/컴포넌트] 표준 콘트롤의 몇가지 한계  김영대 2003/03/05 4334 1162
265   [일반/컴포넌트] Memo의 커서를 특정 위치로 보낸후 scroll 시키기  김영대 2003/03/05 5013 1161
264   [알고리즘] 숫자를 KB, MB, GB 단위로 환산하기  김영대 2003/11/13 5072 1160
263   [일반/컴포넌트] 프로그램 종료시 도움말 화면 닫기  김영대 2003/03/05 4240 1160
262   [일반/컴포넌트] 부활절 달걀(easter egg) 문자열 입력받기  김영대 2003/03/07 4817 1159
261   [윈도우즈 API] "문서" 메뉴에 파일을 등록하고 삭제하기  김영대 2003/03/05 4324 1159
260   [일반/컴포넌트] Variant 변수의 Type 알아내기  김영대 2003/03/05 4374 1159
259   [시스템] 일정시간 경과 후 윈도우즈 종료하기  김영대 2004/08/03 4698 1158
258   [시스템] 프린터에 escape 코드를 전달하는 방법  김영대 2003/03/06 3942 1158
257   [일반/컴포넌트] 표준 TListBox 에 Radio 버튼 올리기  김영대 2004/07/27 4220 1157
256   [일반/컴포넌트] Button의 Mouse Down/Up 흉내내기  김영대 2003/03/07 4488 1156
255   [일반/컴포넌트] 파일에서 특정 Byte 모두 찾기  김영대 2003/03/07 4536 1156
254   [데이터베이스] SQL실행시의 모래시계를 표시하지 않는 방법  김영대 2003/03/07 4682 1154
253   [윈도우즈 API] IE의 현재 url 가져오기  김영대 2003/03/07 4616 1154
252   [일반/컴포넌트] 윈도우즈"시작" 버튼위에 글씨 쓰기  김영대 2004/07/24 4201 1153

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

Copyright 1999-2022 Zeroboard / skin by zero