共用方式為


資料來源:以程式設計方式設定 ODBC 資料來源

本主題說明如何以程式設計方式設定 Open Database 連線ivity (ODBC) 資料來源名稱。 這可讓您彈性地存取資料,而不需要強制使用者明確使用 ODBC 管理員istrator 或其他程式來指定資料來源的名稱。

使用者通常會執行 ODBC 管理員istrator,以在相關聯的資料庫管理系統 (DBMS) 支援這項作業時建立資料來源。

透過 ODBC 管理員istrator 建立 Microsoft Access ODBC 資料來源時,有兩個選項:您可以選取現有的 .mdb 檔案,也可以建立新的 .mdb 檔案。 沒有從 MFC ODBC 應用程式建立 .mdb 檔案的程式設計方式。 因此,如果您的應用程式需要將資料放入 Microsoft Access 資料來源 (.mdb 檔案),您最可能想要有一個空的 .mdb 檔案,只要需要,就可以使用或複製它。

不過,許多 DBMS 允許以程式設計方式建立資料來源。 某些資料來源會維護資料庫的目錄規格。 也就是說,目錄是資料來源,而資料來源中的每個資料表都會儲存在個別的檔案中(在 dBASE 的情況下,每個資料表都是 .dbf 檔案)。 Microsoft Access 和 SQL Server 等其他 ODBC 資料庫的驅動程式需要先滿足一些特定準則,才能建立資料來源。 例如,使用 SQL Server ODBC 驅動程式時,您必須建立 SQL Server 電腦。

SQLConfigDataSource 範例

下列範例會 ::SQLConfigDataSource 使用 ODBC API 函式來建立名為 New Excel 資料來源的新 Excel 資料來源:

SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Excel Files (*.xls)",
                   "DSN=New Excel Data Source\0"
                   "Description=New Excel Data Source\0"
                   "FileType=Excel\0"
                   "DataDirectory=C:\\EXCELDIR\0"
                   "MaxScanRows=20\0");

請注意,資料來源實際上是目錄 (C:\EXCELDIR):此目錄必須存在。 Excel 驅動程式會使用目錄作為其資料來源和檔案作為個別資料表(每個 .xls 檔案一個資料表)。

如需建立資料表的詳細資訊,請參閱 資料來源:以程式設計方式在 ODBC 資料來源 中建立資料表。

下列資訊討論需要傳遞至 ::SQLConfigDataSource ODBC API 函式的參數。 若要使用 ::SQLConfigDataSource ,您必須包含 Odbcinst.h 標頭檔,並使用 Odbcinst.lib 匯入程式庫。 此外,Odbccp32.dll 必須在執行時間的路徑中(或 16 位的 Odbcinst.dll)。

您可以使用 ODBC 管理員istrator 或類似的公用程式來建立 ODBC 資料來源名稱。 不過,有時候最好直接從您的應用程式建立資料來源名稱,以取得存取權,而不需要使用者執行個別的公用程式。

ODBC 管理員istrator (通常安裝在 主控台 中)藉由將專案放在 Windows 登錄中來建立新的資料來源(或 16 位的 Odbc.ini 檔案中)。 ODBC 驅動程式管理員會查詢此檔案,以取得資料來源的必要資訊。 請務必知道登錄中需要放置哪些資訊,因為您需要提供對 的呼叫 ::SQLConfigDataSource

雖然這項資訊可以直接寫入登錄而不使用 ::SQLConfigDataSource ,但執行這項作業的任何應用程式都依賴驅動程式管理員用來維護其資料的目前技術。 如果 ODBC 驅動程式管理員的後續修訂實作以不同方式保留資料來源的記錄,則使用這項技術的任何應用程式都會中斷。 通常建議在提供 API 函式時使用 API 函式。 例如,如果您使用 ::SQLConfigDataSource 函式,您的程式碼會從 16 位移植到 32 位,因為函式會正確地寫入 Odbc.ini 檔案或登錄。

SQLConfigDataSource 參數

下列說明 函式的參數 ::SQLConfigDataSource 。 大部分資訊都是取自 Visual C++ 1.5 版和更新版本所提供的 ODBC API 程式設計人員參考

函式原型

BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);

備註

參數和使用方式

hwndParent
指定為 ODBC 驅動程式管理員或特定 ODBC 驅動程式所建立之任何對話方塊的擁有者,以從使用者取得有關新資料來源的其他資訊。 如果 lpszAttributes 參數未提供足夠的資訊,則會出現對話方塊。 hwndParent 參數可能是 Null。

lpszDriver
驅動程式描述。 這是向使用者呈現的名稱,而不是實體驅動程式名稱(DLL)。

lpszAttributes
格式為 「keyname=value」 的屬性清單。 這些字串會以 Null 結束字元分隔,在清單結尾有兩個連續的 Null 結束字元。 這些屬性主要是預設驅動程式特定專案,會進入新資料來源的登錄。 此函式的 ODBC API 參考中未提及的一個重要索引鍵是 「DSN」 (「資料來源名稱」),指定新資料來源的名稱。 其餘專案是新資料來源的驅動程式專屬。 通常不需要提供所有專案,因為驅動程式可以提示使用者輸入新值的對話方塊。 (將 hwndParent 設定 為 Null 以造成此狀況。您可能想要明確提供預設值,以免提示使用者。

若要使用 ODBC 管理員istrator 判斷 lpszDriver 參數的驅動程式描述

  1. 執行 ODBC 管理員istrator。

  2. 按一下新增

這可讓您列出已安裝的驅動程式及其描述。 使用此描述作為 lpszDriver 參數。 請注意,如果您使用整個描述,例如「Excel 檔案 (*.xls)」,包括其存在於描述中的副檔名和括弧。

或者,您可以檢查登錄 (或 16 位的 Odbcinst.ini 檔案),其中包含登錄機碼 「ODBC Drivers」 下的所有驅動程式專案和描述清單(或 Odbcinst.ini 中的 [ODBC Drivers] 區段)。

尋找 lpszAttributes 參數的索引鍵名稱和值的方法之一,就是檢查已設定資料來源的 Odbc.ini 檔案(可能是 ODBC 管理員istrator 已設定的資料來源)。

尋找 lpszAttributes 參數的索引鍵名稱和值

  1. 執行 Windows 登錄編輯器(或針對 16 位開啟 Odbc.ini 檔案)。

  2. 使用下列其中一項來尋找 ODBC 資料來源資訊:

    • 針對 32 位,尋找 金鑰HKEY_CURRENT_USER\Software\ODBC\ODBC。左窗格中的 INI\ODBC 資料來源

      右窗格會列出表單的專案:「pub:REG_SZ: 資料來源名稱」,其中 < 資料來源名稱 >> 是已針對您想要使用的驅動程式設定的資料來源。 < 選取您想要的資料來源,例如 SQL Server。 字串 「pub:」 後面的專案依序是 lpszAttributes 參數中 要使用的索引鍵名稱和值。

    • 針對 16 位,請在以 [ < 資料來源名稱 > ] 標記的 Odbc.ini 檔案中尋找 區段。

      這一行後面的行格式為 「keyname=value」。 這些正是您在 lpszAttributes 參數中使用的 專案。

您可能也想要檢查您要使用之特定驅動程式的檔。 您可以在驅動程式的線上說明中找到有用的資訊,您可以執行 ODBC 管理員istrator 來存取。 這些說明檔通常會放在 Windows NT、Windows 3.1 或 Windows 95 的 WINDOWS\SYSTEM 目錄中。

取得 ODBC 驅動程式的線上說明

  1. 執行 ODBC 管理員istrator。

  2. 按一下新增

  3. 選取驅動程式名稱。

  4. 按一下 [確定]

當 ODBC 管理員istrator 顯示該特定驅動程式建立新資料來源的資訊時,請按一下 [ 說明 ]。 這會開啟該特定驅動程式的說明檔案,該檔案通常包含有關驅動程式使用的重要資訊。

另請參閱

資料來源 (ODBC)