Probleme mit C++ und ADO und CompactDatabase



  • Hallo ich möchte per Code eine *.accdb von MS Access komprimieren.

    Dazu folgender Code:

    try
    {
    	IJetEnginePtr jet(__uuidof(JetEngine));
    	jet->CompactDatabase("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = d:\\database.accdb", "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = d:\\database1.accdb;Jet OLEDB : Engine Type = 5");
    }
    catch (_com_error &e)
    {
    	::MessageBox(NULL, (LPCTSTR)e.Description(), "", MB_OK);
    }
    

    Fehler Meldung:
    Ungültiges Argument
    Bitte um Hilfe



  • try 
    { 
        IJetEnginePtr jet(__uuidof(JetEngine)); 
        IJetEnginePtr jet(__uuidof(JetEngine)); 
        jet->CompactDatabase("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = 
        d:\\database.accdb", "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = d:\\database1.accdb;Jet OLEDB : Engine Type = 5"); 
    } 
    catch (_com_error &e) 
    { 
        ::MessageBox(NULL, (LPCTSTR)e.Description(), "", MB_OK); 
    }
    
    try 
    { 
        ::CoInitialize(NULL);
        IJetEnginePtr jet(__uuidof(JetEngine)); 
        jet->CompactDatabase("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = 
        d:\\database.accdb", "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = d:\\database1.accdb;Jet OLEDB : Engine Type = 5"); 
        jet.Release();
        ::CoUninitialize();
    
    } 
    catch (_com_error &e) 
    { 
        ::MessageBox(NULL, (LPCTSTR)e.Description(), "", MB_OK);
    

    !!Zur Info so geht es ohne Fehler!!


Anmelden zum Antworten