// Adoconn. h
# Pragma once
// ADO error and ATL: catlregexp <> error Name Conflict
# Import "C: \ Program Files \ common files \ System \ ADO \ msado15.dll" no_namespace \
Rename ("EOF", "adoeof") Rename ("Bof", "adobof") Rename ("error", "adoerr ")
# Import "C: \ Program Files \ common files \ System \ ADO \ msjro. dll" no_namespace
//... Other code
Static bool compacting (cstring & destfile );
//... Other code
// Adoconn. cpp where m_strdbname is the ACCESS database path
//////////////////////////////////////// //////////////////////////////////
// Compacting Microsoft Access database via ADO
Bool adoconn: Compacting (cstring & destfile)
{
If (m_strdbname.isempty () | destfile. isempty ())
Return false;
_ Bstr_t sourceconnection = _ T ("provider = Microsoft. jet. oledb.4.0; Data Source = ") + m_strdbname + _ T ("; user id = admin; Password =; "); // normal mode, no password
// _ Bstr_t strconnect = _ T ("provider = Microsoft. jet. oledb.4.0; Data Source = ") + m_strdbname + _ T (" data \ nkj. MDB; Jet oledb: Database Password = your password; "); // common mode with a password
_ Bstr_t destconnection = _ T ("provider = Microsoft. jet. oledb.4.0; Data Source = ") + destfile + _ T ("; Jet oledb: Engine type = 5; user id = admin; Password =; "); // No Password
// _ Bstr_t destconnection = _ T ("provider = Microsoft. jet. oledb.4.0; Data Source = ") + destfile + _ T (" jet oledb: Engine type = 5; Jet oledb: Database Password = your password "); // No Password
Try
{
Ijetengineptr jet (_ uuidof (jetengine ));
Jet-> compactdatabase (sourceconnection, destconnection );
Return true;
}
Catch (_ com_error & E)
{
Afxmessagebox (E. Description ());
Return false;
}
}