我想用Dao的CompactDatabase进行压缩,但是却不能覆盖现有文件。并且在多文档中我还没有试验通过,奇怪的对话框应用中却很正常。
    AFX_MANAGE_STATE(AfxGetModuleState());
    AfxGetModuleState()->m_dwVersion = 0x0601;      CDaoWorkspace sss;
    sss.CompactDatabase("c:\\Northwind.mdb","c:\\Northwind1.mdb");目的是解决数据库膨胀问题,不知道除了这个方法还有没有其他方法?该方法在SDI应用中为何不能成功?

解决方案 »

  1.   

    SDI如上使用,错误提示如下:E:\Myprj\ddd\Login.cpp(115) : error C2039: 'm_dwVersion' : is not a member of 'AFX_MODULE_STATE'
            c:\program files\microsoft visual studio\vc98\mfc\include\afxstat_.h(191) : see declaration of 'AFX_MODULE_STATE'
    E:\Myprj\ddd\LogonSys.cpp(116) : error C2065: 'bUseDao30' : undeclared identifier
      

  2.   

    用这个函数可以操作ACCESS97数据库,压缩源文件后生成新的目标文件,如果目标文件存在可以替换。下面的代码不知道对你有没有帮助
    CDaoWorkspace wspTemp;
    wspTemp.Create("table", "admin", "");
    wspTemp.CompactDatabase( "c:\\Database\\table.mdb", "c:\\Database\\Database.mdb", dbLangGeneral, 0);
    wspTemp.Close();