TN048: 撰寫 MFC 資料庫應用程式的 ODBC 安裝和管理程式
![]() |
---|
由於它第一次線上文件中包含尚未更新下列技術提示。如此一來,某些程序和主題可能已經過期或不正確。如需最新資訊,建議您先搜尋線上文件索引中有興趣的主題。 |
使用 MFC 資料庫類別的應用程式必須安裝 ODBC 元件的安裝程式。它們可能也需要一個 ODBC 系統管理程式,就會擷取可用的驅動程式,以指定預設驅動程式,並設定資料來源的相關資訊。這個記事將告訴您的 ODBC 安裝程式 API 來撰寫這些程式使用。
撰寫的 ODBC 安裝程式
MFC 資料庫應用程式需要 ODBC 驅動程式管理員 (ODBC。DLL) 和 ODBC 驅動程式,才能夠取得與資料來源。許多 ODBC 驅動程式也需要其他網路和通訊的 Dll。大多數的 ODBC 驅動程式隨附的安裝程式將會安裝所需的 ODBC 元件。使用 MFC 資料庫類別的應用程式開發人員可以:
只使用特定的驅動程式安裝程式安裝 ODBC 元件。這項作業需要沒有進一步開發人員的部分工作,您只需轉散發的驅動程式安裝程式。
或者,您可以撰寫您自己的安裝程式,如此便會安裝驅動程式管理員和驅動程式。
ODBC 安裝程式 API 可用於撰寫應用程式專屬的安裝程式。安裝程式 API 中的函式由 ODBC 安裝程式 DLL 中實作 — ODBCINST。在 16 位元的視窗和 ODBCCP32 的 DLL。在 Win32 DLL。應用程式可以呼叫 SQLInstallODBC 安裝程式中 DLL,如此便會安裝 ODBC 驅動程式管理員 」、 ODBC 驅動程式,以及任何必要的轉譯器。它接著會記錄安裝的驅動程式和轉譯器在 ODBCINST 中。INI 檔案 (或登錄中的,在 NT 上)。SQLInstallODBC 需要 ODBC 的完整路徑。INF 檔案,包含要安裝的驅動程式清單,並說明構成每個驅動程式的檔案。它也包含驅動程式管理員和轉譯器的類似資訊。ODBC。INF 檔案通常是由驅動程式開發人員所提供。
程式也可以安裝個別的 ODBC 元件。若要安裝驅動程式管理員,程式會先呼叫 SQLInstallDriverManager 安裝程式 DLL 嘗試取得驅動程式管理員的目標目錄中。這通常是位於 Windows Dll 的目錄。接著程式會使用 ODBC 的 [ODBC 驅動程式管理員] 區段中的資訊。若要將驅動程式管理員和相關的檔案從安裝磁片複製到這個目錄的 INF 檔案。若要安裝個別的驅動程式,程式會先呼叫 SQLInstallDriver ODBCINST 來新增驅動程式規格的 DLL 的安裝程式中。INI 檔案 (或登錄中的,在 NT 上)。SQLInstallDriver 傳回驅動程式的目標目錄 — 通常是位於 Windows Dll 的目錄。接著程式會使用 ODBC 驅動程式的一節中的資訊。若要將驅動程式 DLL 和相關的檔案從安裝磁片複製到這個目錄的 INF 檔案。
如需有關 ODBC 的詳細資訊。INF 檔,ODBCINST。INI 及使用安裝程式 API,請參閱 ODBC SDK 程設人員參考章 19、 安裝 ODBC 軟體。
寫入 ODBC 管理員
MFC 資料庫應用程式可以設定,並依下列方式設定 ODBC 資料來源中有兩種,其中一項:
使用 [ODBC 管理員] (可作為程式或控制台項目)。
建立您自己的程式,設定資料來源。
設定資料來源的程式會安裝程式的 DLL 函式呼叫。安裝程式 DLL 呼叫安裝來設定資料來源的 DLL。沒有安裝程式 DLL 的每個驅動程式。 它可能是驅動程式 DLL 本身或另一個 DLL。安裝程式 DLL 將提示使用者提供的驅動程式必須連接到資料來源以及預設轉譯器中,如果受支援的資訊。接著,它呼叫安裝程式 DLL 和 Windows Api 來的 odbc 記錄這項資訊。INI 檔案 (或登錄)。
若要顯示的使用者可以新增、 修改及刪除資料來源] 對話方塊中,程式會呼叫 SQLManageDataSources 安裝程式 DLL 中。安裝程式呼叫 DLL 從 [控制] 時,會叫用此函式。若要新增、 修改或刪除資料來源時, SQLManageDataSources 呼叫 ConfigDSN 與該資料來源相關聯的驅動程式安裝程式的 DLL 中。若要直接新增、 修改或刪除資料來源,程式會呼叫 SQLConfigDataSource 安裝程式 DLL 中。程式會將傳遞資料來源和一個選項,指定要採取的動作的名稱。SQLConfigDataSource 呼叫 ConfigDSN 安裝程式 DLL 中,並將它傳遞引數,由 SQLConfigDataSource。
如需詳細資訊,請參閱 ODBC SDK 程設人員參考章 23、 安裝的 DLL 函式參考,以及一章 24,安裝程式的 DLL 函式參考。