INFO:存取 CREATE_DB、REPAIR_DB 與 COMPACT_DB

文章翻譯 文章翻譯
文章編號: 126606 - 檢視此文章適用的產品。
本文曾發行於 CHT126606
全部展開 | 全部摺疊

結論

ODBC 2.0 版 Desktop Driver 的「說明」檔提到 Microsoft Access 驅動程式接受有關 lpszAttributes 參數的關鍵字 CREATE_DB、REPAIR_DB 與 COMPACT_DB,但沒有提供語法的詳細資訊。

其他相關資訊

SQLConfigDataSource lpszAttributes 的關鍵字 CREATE_DB、REPAIR_DB 與 COMPACT_DB 無法和其他關鍵字結合使用。如果想要讓程式建立資料來源,並替此資料來源建立一個新的 .MDB 檔,您必須分兩個階段來執行此項作業。您必須針對一個對 SQLConfigDataSource 的呼叫來建立資料來源,並針對另一個對 SQLConfigDataSource 的呼叫來建立新的 .MDB 檔。

這些關鍵字的語法是:
   CREATE_DB=<path name> <sort order>
   REPAIR_DB=<path name>
   COMPACT_DB=<source path> <destination path> <sort order>
<path name> 是指向需要建立或修復的 .MDB 檔的完整路徑名稱。<source path> 是指向需要壓縮的 .MDB 檔的完整路徑名稱。<destination path> 是經過壓縮後的檔案的完整路徑名稱。<sort order> 是下列關鍵字之一:
General, Traditional Spanish, Dutch, Swedish/Finnish, Norwegian/Danish, Icelandic, Czech, Hungarian, Polish, Russian, Turkish, Arabic, Hebrew, Greek
注意 :General 排序次序含蓋英文、法文、德文、葡萄牙文與義大利文。

依據 Microsoft Access ODBC 驅動程式所用的 Microsoft Jet Engine 版本而定,可能還有下列關鍵字可用:
CREATE_DBV2=<path name> <sort order> (to create version 2 Jet engine mdb file, Access 2, 16bit)


CREATE_DBV3=<path name> <sort order> (to create version 3 Jet engine mdb file, Access 95, Access 97)


CREATE_DBV4=<path name> <sort order> (to create version 4 Jet engine mdb file, Access 2000)
若需這些關鍵字與其他關鍵字的詳細資訊,請參閱 MSDN 或 Microsoft Press 書籍: 《Microsoft Jet Database Engine Programmer's Guide》

注意 :有些說明文件版本將 CREATE_DBV2 拼錯了,並且沒有說明 CREATE_DBV3 與 CREATE_DBV4。

使用 CREATE_DB 時,在 <path name> 中所指的檔案不可以在呼叫 SQLCOnfigDataSource 的時候存在。

使用 REPAIR_DB 時,在 <path name> 中所指的檔案必須是有效的 .MDB 檔。

使用 COMPACT_DB 時,在 <source path> 中所指的檔案必須是有效的 .MDB 檔。 <destination path> 可以指向和 <source path> 相同的檔案,在這種情況下,檔案會壓縮至相同的位置中。如果 <destination path> 中所指的檔案和 <source path> 不同,則 <destination path> 所指的檔案不可以在呼叫 SQLConfigDataSource 的時候存在。

例如,下面一段程式碼可以建立 .MDB 檔、修復此檔、將它壓縮至第二個檔案、在相同位置中壓縮此檔,然後替它建立資料來源。
   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;
   }

?考

本文件是根據 Microsoft Knowledgebase 文件編號 Q126606 翻譯的. 若要參考原始英文文件內容, 請至以下網址:

http://support.microsoft.com/support/kb/articles/Q126/6/06.asp

屬性

文章編號: 126606 - 上次校閱: 2003年8月19日 - 版次: 1.1
這篇文章中的資訊適用於:
  • Microsoft Open Database Connectivity 2.0
  • Microsoft Open Database Connectivity 3.0
  • Microsoft Open Database Connectivity 3.5
關鍵字:?
kbcode kbgrpdsvcdb kbinfo kbprogramming kbusage KB126606
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com