Windows/MFC
MDB Init
aucd29
2013. 10. 2. 18:15
MDB를 사용하다가 보면 분명 DELETE QUERY로 삭제하였음에도 불구하고 MDB 파일용량이 변동 되지 않는 걸 볼 수 있습니다.
이를 초기화 하는 방법...
[code]도구 -> 데이터베이스 유틸리티 -> 데이터 베이스 압축 및 복구 메뉴[/code]
[code]
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;
}
[/code]
이를 초기화 하는 방법...
[code]도구 -> 데이터베이스 유틸리티 -> 데이터 베이스 압축 및 복구 메뉴[/code]
[code]
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;
}
[/code]