몇일째 파라독스의 packing에 대해서 고민중입니다..
근데 문득 오늘 아침에 생각 난건데.. DbiDoRestructure()함수를 사용해서(아직 사용하는 방법은 모름-- 무지무지 어려움) 물리적으로 레코드를 삭제할 필요가 없다는
생각이 들었습니다..
삭제한 파일이 물리적으로 지워지는건 아니지만 그래도, 삽입과 같은 레코드 변경이
일어나면, 삭제 표시된 레코드에 덮어쓰는게 아닌가요.. 어디선가 들은적이 있는것
같은데.. 마약 그렇다면, DB Size Full 상황에서는 어떻게 되나요..
파라독스의 전반적은 특성을 알고 싶습니다.. (질문이 넘 포괄적인가^^)
아~~ 그리고, 김영대님!! 님의 글에서 많은 도움을 받고 있습니다..
델팁에서 DbiDoRestructure() 함수 예제도 보았습니다. 그데 에러가 납니다..
제 짧은 생가으로는 uses 절에 무언가를 넣어야 할것만 같은데..
==========================================================================
procedure ParadoxPack(Table : TTable);
var
TBDesc : CRTblDesc;
hDb: hDbiDb;
TablePath: array[0..dbiMaxPathLen] of char;
begin
FillChar(TBDesc,Sizeof(TBDesc),0);
with TBDesc do begin
StrPCopy(szTblName,Table.TableName);
StrPCopy(szTblType,szParadox);
bPack := True;
end;
Table.Open;
hDb := nil;
Check(DbiGetDirectory(Table.DBHandle, True, TablePath));
Table.Close;
Check(DbiOpenDatabase(nil, 'STANDARD', dbiReadWrite, dbiOpenExcl,nil,0, nil, nil, hDb));
Check(DbiSetDirectory(hDb, TablePath));
Check(DBIDoRestructure(hDb,1,@TBDesc,nil,nil,nil,False));
Table.Open;
end;
============================================================================
이코드는 김영대님의 팁에서 복사해온 것입니다..
uses 절에 필요한것이 DbiProcs, DbiTypes, DbiErrs말고 또 뭐가 필요합니까?
그리고, 소스에 대한 자세한 설명도... 넘 염치가 없는것 같지만,
무식이 죄라고, 어떻하겠습니까...ㅠㅠ
꼭 답을 주세요.....
Bde 를 추가하세요.
coolling wrote:
>
> 몇일째 파라독스의 packing에 대해서 고민중입니다..
> 근데 문득 오늘 아침에 생각 난건데.. DbiDoRestructure()함수를 사용해서(아직 사용하는 방법은 모름-- 무지무지 어려움) 물리적으로 레코드를 삭제할 필요가 없다는
> 생각이 들었습니다..
> 삭제한 파일이 물리적으로 지워지는건 아니지만 그래도, 삽입과 같은 레코드 변경이
> 일어나면, 삭제 표시된 레코드에 덮어쓰는게 아닌가요.. 어디선가 들은적이 있는것
> 같은데.. 마약 그렇다면, DB Size Full 상황에서는 어떻게 되나요..
> 파라독스의 전반적은 특성을 알고 싶습니다.. (질문이 넘 포괄적인가^^)
>
> 아~~ 그리고, 김영대님!! 님의 글에서 많은 도움을 받고 있습니다..
> 델팁에서 DbiDoRestructure() 함수 예제도 보았습니다. 그데 에러가 납니다..
> 제 짧은 생가으로는 uses 절에 무언가를 넣어야 할것만 같은데..
> ==========================================================================
> procedure ParadoxPack(Table : TTable);
> var
> TBDesc : CRTblDesc;
> hDb: hDbiDb;
> TablePath: array[0..dbiMaxPathLen] of char;
> begin
> FillChar(TBDesc,Sizeof(TBDesc),0);
> with TBDesc do begin
> StrPCopy(szTblName,Table.TableName);
> StrPCopy(szTblType,szParadox);
> bPack := True;
> end;
> Table.Open;
> hDb := nil;
> Check(DbiGetDirectory(Table.DBHandle, True, TablePath));
> Table.Close;
> Check(DbiOpenDatabase(nil, 'STANDARD', dbiReadWrite, dbiOpenExcl,nil,0, nil, nil, hDb));
> Check(DbiSetDirectory(hDb, TablePath));
> Check(DBIDoRestructure(hDb,1,@TBDesc,nil,nil,nil,False));
> Table.Open;
> end;
> ============================================================================
> 이코드는 김영대님의 팁에서 복사해온 것입니다..
> uses 절에 필요한것이 DbiProcs, DbiTypes, DbiErrs말고 또 뭐가 필요합니까?
> 그리고, 소스에 대한 자세한 설명도... 넘 염치가 없는것 같지만,
> 무식이 죄라고, 어떻하겠습니까...ㅠㅠ
> 꼭 답을 주세요.....
>