適用於 C++ 的 Visual Studio 資料工具

存取資料來源時,原生 C++ 通常可提供最快的效能。 不過,Visual Studio 中 C++ 應用程式的資料工具不如 .NET 應用程式那麼豐富。 例如,[資料來源] 視窗無法用來將資料來源拖放到 C++ 設計介面。 如果需要物件關係層,您將必須自行撰寫或使用第三方產品。 資料繫結功能也是如此,不過使用 Microsoft Foundation 類別庫的應用程式可以使用某些資料庫類別,以及文件和檢視,將資料儲存在記憶體中,並將其向使用者顯示。 如需詳細資訊,請參閱 Visual C++ 中的資料存取

若要連線到 SQL 資料庫,原生 C++ 應用程式可以使用 ODBC 和 OLE DB 驅動程式,以及 Windows 隨附的 ADO 提供者。 這些可以連線到支援這些介面的任何資料庫。 ODBC 驅動程式是標準。 提供 OLE DB 的目的是為了舊版相容性。 如需這些資料技術的詳細資訊,請參閱 Windows 資料存取元件

若要利用 SQL Server 2005 和更新版本中的自訂功能,請使用 SQL Server 原生用戶端。 原生用戶端也將 SQL Server ODBC 驅動程式和 SQL Server OLE DB 提供者包含在一個原生動態連結程式庫 (DLL) 中。 這些支援應用程式會對 Microsoft SQL Server 使用機器碼 API (ODBC、OLE DB 和 ADO)。 SQL Server Native Client 會隨著 SQL Server Data Tools 安裝。 程式設計指南在這裡:SQL Server 原生用戶端程式設計

從 C++ 應用程式透過 ODBC 和 SQL Native Client 連線到 localDB

  1. 安裝 SQL Server Data Tools。

  2. 如果您需要連線的範例 SQL 資料庫,請下載 Northwind 資料庫,並將它解壓縮到新的位置。

  3. 使用 SQL Server Management Studio 將解壓縮的 Northwind.mdf 檔案連結至 localDB。 當 SQL Server Management Studio 啟動時,請連線到 (localdb)\MSSQLLocalDB。

    SSMS 連線對話方塊

    然後以滑鼠右鍵按一下左窗格中的 localdb 節點,並選擇 [連結]

    SSMS 附加資料庫

  4. 下載 ODBC Windows SDK 範例,並將它解壓縮到新的位置。 此範例顯示用來連線到資料庫和發出查詢和命令的基本 ODBC 命令。 您可以在 Microsoft 開放式資料庫連接 (ODBC) 中深入了解這些函式。 當您第一次載入方案 (其位於 C++ 資料夾中),Visual Studio 會讓您將方案升級至目前版本的 Visual Studio。 按一下 [是] 。

  5. 若要使用原生用戶端,您需要其 header 檔案與 lib 檔案。 這些檔案包含 SQL Server 專屬的函式和定義,超出 sql.h 中定義的 ODBC 函式。 在 [專案]> [屬性]> [VC++ 目錄] 中,新增下列 include 目錄:

    %ProgramFiles%\Microsoft SQL Server\110\SDK\Include

    以及此程式庫目錄:

    %ProgramFiles%\Microsoft SQL Server\110\SDK\Lib

  6. odbcsql.cpp 中新增這些行。 #define 會防止編譯無關的 OLE DB 定義。

    #define _SQLNCLI_ODBC_
    #include <sqlncli.h>
    

    請注意,範例實際上不會使用任何原生用戶端功能,因此不需要上述步驟即可編譯和執行。 但是專案現在已設定讓您使用此功能。 如需詳細資訊,請參閱 SQL Server Native Client 程式設計

  7. 指定要在 ODBC 子系統中使用的驅動程式。 範例會將 DRIVER 連接字串屬性以命令列引數形式傳入。 在 [專案]> [屬性]> [偵錯] 中,新增此命令引數:

    DRIVER="SQL Server Native Client 11.0"
    
  8. F5 以建置並執行應用程式。 您應該會看到來自驅動程式的對話方塊,提示您輸入資料庫。 輸入 (localdb)\MSSQLLocalDB,然後勾選 [使用受信任的連線]。 按 [確定]。 您應該會看到主控台有訊息指出連線成功。 您也應該會看到命令提示字元,您可以在其中輸入 SQL 陳述式。 下列畫面顯示範例查詢和結果:

    ODBC 範例查詢輸出

另請參閱