FIX: Format of the Password Parameter for CompactDatabase (162958)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++, 32-bit Editions 4.0
    • Microsoft Visual C++, 32-bit Editions 4.1
    • Microsoft Visual C++, 32-bit Enterprise Edition 4.2
    • Microsoft Visual C++, 32-bit Professional Edition 4.2
    • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
    • Microsoft Visual C++, 32-bit Professional Edition 5.0

This article was previously published under Q162958

SUMMARY

The documentation for the CDaoWorkspace::CompactDatabase function does not specify the format of the password parameter. The password must be in the following format: ";PWD=password". If the password is not in the correct format, you may see the following error:
Can't find installable ISAM

MORE INFORMATION

The documentation for the CDaoWorkspace::CompactDatabase function gives the following information about compacting a password-protected database:
static void PASCAL CompactDatabase( LPCTSTR lpszSrcName, LPCTSTR
    lpszDestName, LPCTSTR lpszLocale, int nOptions, LPCTSTR lpszPassword );

Parameters
lpszPassword   A password, used when you want to compact a
               password-protected database. Note that if you use the
               version of CompactDatabase that takes a password, you must
               supply all parameters.
				
There is no information about the format of the password parameter. However, the documentation for the DBEngine.CompactDatabase function has the following information:
Syntax
DBEngine.CompactDatabase olddb, newdb [, locale [, options
    [, ;pwd=password]]]

Part           Description
password       An optional string argument containing a password, if the
               database is password protected. The string ";pwd=" must
               precede the actual password.
				


Sample Code



   /* Compile options needed: none
   */ 

   /* The following code will compress the database C:\DB1.MDB, which has
    * a password of "MyPassword"
   */ 

    try
    {
        CDaoWorkspace::CompactDatabase( _T( "C:\\DB1.MDB" ),
            _T( "C:\\DB2.MDB" ), dbLangGeneral, dbVersion30,
            _T( ";PWD=MyPassword" ) );
    }
    catch( CDaoException* e )
    {
        AfxMessageBox( e->m_pErrorInfo->m_strDescription );
        e->Delete();
    }
				

STATUS

This problem was corrected in the documentation for Visual C++, version 6.0.

REFERENCES

Visual C++ Books Online: CDaoWorkspace::CompactDatabase Visual C++ Books Online: DBEngine.CompactDatabase

Modification Type:MajorLast Reviewed:12/2/2003
Keywords:kbBug kbcode kbDatabase kbdocerr kbDocs kberrmsg kbfix kbVC600fix KB162958