INFO: Accessing CREATE_DB, REPAIR_DB, and COMPACT_DB

ID: Q126606


The information in this article applies to:
  • Microsoft Open Database Connectivity, version 2.0


SUMMARY

The help file for the ODBC version 2.0 Desktop Drivers mentions that the Microsoft Access driver will accept the keywords CREATE_DB, REPAIR_DB, and COMPACT_DB on the lpszAttributes parameter, but gives no details on their syntax.


MORE INFORMATION

The SQLConfigDataSource lpszAttributes keywords CREATE_DB, REPAIR_DB, and COMPACT_DB cannot be used in conjunction with other keywords. If you want your programs to create a datasource and also create a new .MDB file for that datasource, you must do this in a two stage process. You must create the datasource on one call to SQLConfigDataSource, and create the new .MDB file on a separate call to SQLConfigDataSource.

The syntax for these keywords are:


   CREATE_DB=<path name> <sort order>
   REPAIR_DB=<path name>
   COMPACT_DB=<source path> <destination path> <sort order> 
where <path name> is the fully qualified path name to the .MDB file to be created or repaired. <source path> is the fully qualified path name to the .MDB file to be compacted. <destination path> is the fully qualified path name of the file after it has been compacted. <sort order> is one of the following keywords:
General, Traditional Spanish, Dutch, Swedish/Finnish, Norwegian/Danish, Icelandic, Czech, Hungarian, Polish, Russian, Turkish, Arabic, Hebrew, Greek
NOTE: The General sort order covers English, French, German, Portuguese, and Italian.

With CREATE_DB, the file named in <path name> must not exist at the time SQLCOnfigDataSource is called.

With REPAIR_DB, the file named in <path name> must be a valid .MDB file.

With COMPACT_DB, the file named in <source path> must be a valid .MDB file. <destination path> can point to the same file as <source path>, in which case the file will be compacted into the same location. If <destination path> names a different file than <source path>, the file named as the <destination path> must not exist at the time SQLConfigDataSource is called.

For example, the following code segment would create a .MDB file, repair it, compress it to a second file, compress it in the same location, and then create a datasource for it.

   void Config_Sample(void)
   {
             RETCODE retcode;
             int     subscrp;
     extern  HWND    hWnd;      /* Main window handle. */ 

     UCHAR szDriver[] = "Microsoft Access Driver (*.mdb)";
     UCHAR *szAttributes2[] =
     // Create the original .mdb file.
     {"CREATE_DB=c:\\odbcsdk\\smpldata\\access\\general.mdb General\0\0",

     // Issue a REPAIR_DB on the created file.
     "REPAIR_DB=c:\\odbcsdk\\smpldata\\access\\general.mdb\0\0",

     // Compact the file into a new location.
     "COMPACT_DB=c:\\odbcsdk\\smpldata\\access\\general.mdb "
       "c:\\odbcsdk\\smpldata\\access\\general2.mdb General\0\0",

     // Compact the file onto itself.
     "COMPACT_DB=c:\\odbcsdk\\smpldata\\access\\general.mdb "
       "c:\\odbcsdk\\smpldata\\access\\general.mdb General\0\0",

     // Create a datasource for the first .mdb file created.
     "DSN=albacc\0FIL=MS Access\0JetIniPath=odbcddp.ini\0"
     "DBQ=c:\\odbcsdk\\smpldata\\access\\general.mdb\0"
     "DefaultDir=c:\\odbcsdk\\smpldata\\access\0\0"};

     for (subscrp = 0;
          subscrp <= ((sizeof szAttributes2 / sizeof(UCHAR *)) - 1);
           subscrp++)
     {
       retcode = SQLConfigDataSource(hWnd,
                                     ODBC_ADD_DSN,
                                     szDriver,
                                     szAttributes2[subscrp]);
       if (retcode != TRUE)
         handle_error(retcode);
     }
     return;
   } 

Additional query words: 2.00.2317 Windows NT SQLConfigDataSource desktop driver access

Keywords : kbcode kbprg kbusage
Version : WINDOWS:2.0
Platform : WINDOWS
Issue type : kbinfo


Last Reviewed: August 24, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.