서비 님이 쓰신 글 :
: MDB 파일이 현재 10MB라고 가정했을때,
: ADO를 이용해서 데이타의 내용을 모두 삭제해도 용량은 그대로 입니다.
: MS Access를 이용하여 압축을 했을 경우에는 용량이 줄어듭니다.
: 데이타를 삭제해도 MDB파일의 용량이 줄어들 수 있는 방법..
: 어떻게 하면 좋을까요?
하루 종일 여기 저기 찾아 봤습니다.
다음과 같은 방법으로 해서 해결했습니다.
다음 사이트에서 방법을 찾았습니다.
http://borland.xportal.ru/forum/viewtopic.php?t=9585
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant JetEng;
AnsiString SourceFileName = "YahoAutobi.mdb", TargetFileName="Temp.mdb";
JetEng = CreateOleObject("JRO.JetEngine");
WideString InputDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SourceFileName;
WideString OutputDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + TargetFileName;
JetEng.OleFunction("CompactDatabase",InputDB,OutputDB);
if (DeleteFile(SourceFileName)== false) ShowMessage("파일을 지울 수 없음");
if (RenameFile(TargetFileName, SourceFileName) == false)
ShowMessage("파일이름을 바꿀 수 없음");
JetEng = Unassigned;
}
|