INFO:存取 CREATE_DB、REPAIR_DB 與 COMPACT_DB

本文曾發行於 CHT126606
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。
結論
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> 相同的檔案,在這種情況下,檔案會壓縮至相同的位置中。如果 <destinationpath> 中所指的檔案和 <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 翻譯的. 若要參考原始英文文件內容, 請至以下網址:

2.00.2317 Windows NT SQLConfigDataSource desktop driver access
內容

文章識別碼:126606 - 最後檢閱時間:08/19/2003 21:07:30 - 修訂: 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
意見反應