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]