共用方式為


使用 C 和 C++ 連線到 SQL Database

適用於:Azure SQL 資料庫

本文可協助 C 和 C++ 開發人員連線到 Azure SQL 資料庫

必要條件

若要完成本指南中的步驟,您需要下列項目︰

  • 作用中的 Azure 帳戶。 如果還沒有訂用帳戶,則可註冊免費試用版
  • Visual Studio。 您必須安裝 C++ 語言元件,才能組建並執行此範例。
  • Visual Studio Linux 開發。 如果您要在 Linux 上開發,您也必須安裝 Visual Studio Linux 延伸項目。

資料存取技術:ODBC 和 OLE DB

目前有兩種方式可連線到 Azure SQL 資料庫:ODBC (開放式資料庫連接) 和 OLE DB (物件連結與嵌入資料庫)。 近年來,Microsoft 已配合 ODBC 進行原生關聯性數資料存取。 ODBC 比 OLE DB 快得多。 唯一要注意的事項是 ODBC 確實使用舊的 C 式 API。

建立您的 Azure SQL Database

請參閱 開始使用頁面,瞭解如何建立範例資料庫。 或者,您可以遵循這段簡短的兩分鐘影片,使用 Azure 入口網站 建立 Azure SQL 資料庫。

取得連接字串

佈建 Azure SQL 資料庫後,您需要繼續下列步驟來判定連線資訊,並新增用戶端 IP 以進行防火牆存取。

Azure 入口網站,使用資料庫概觀區段中所列的顯示資料庫連接字串,前往您的 Azure SQL 資料庫 ODBC 連接字串:

ODBCConnectionString

ODBCConnectionStringProps

複製 ODBC 的內容(包括 Node.js)[SQL 驗證] 字串。 我們稍後會使用此字串從 C++ ODBC 命令列解譯器連線。 此字串提供了驅動程式、伺服器和其他資料庫連接參數等詳細資料。

將您的 IP 新增至防火牆

移至伺服器的防火牆區段,並使用下列步驟將用戶端 IP 新增至防火牆,確保我們可以建立成功的連線:

AddyourIPWindow

此時,您已設定好 Azure SQL 資料庫,並準備從 C++ 程式代碼進行連線。

從 Windows C/C++ 應用程式連線

您可以使用以 Visual Studio 組建的這個範例,輕鬆地使用 Windows 上的 ODBC 連線到 Azure SQL 資料庫。 此範例會實作 ODBC 命令列解譯器,可用來連線到我們的 Azure SQL 資料庫。 此範例會採用資料庫來源名稱檔案 (DSN) 檔案作為命令列引數,或稍早從 Azure 入口網站複製的冗長連接字串。 啟動這個專案的屬性頁,並將連接字串貼上為命令引數,如下所示:

DSN Propsfile

請確定您為資料庫提供了正確的驗證詳細資料,作為該資料庫連接字串的一部分。

啟動應用程式來組建。 您應該會看到下列視窗驗證成功的連線。 您甚至可以執行一些基本的 SQL 命令,例如建立資料表來驗證資料庫連線能力:

SQL 命令

或者,您可以在使用未提供任何命令引數時啟動的精靈來建立 DSN 檔案。 建議您避免使用這個選項。 您可以使用此 DSN 檔案進行自動化,並保護您的驗證設定:

建立 DSN 檔案

恭喜! 您現在已使用 Windows 上的 C++ 和 ODBC 成功連線到 Azure SQL。 您可以繼續閱讀,為 Linux 平台執行相同的作業。

從 Linux C/C++ 應用程式連線

您可以在 Visual Studio 中開發 C++ Linux 應用程式。 若要深入瞭解,請檢閱下列部落格:適用於 Linux 開發的 Visual C++

欲組建 Linux,您需要一台運行 Linux 發行版的遠端電腦。。 如果您沒有可用帳戶,您可以使用 Linux Azure 虛擬機快速設定一個帳戶。

本指南假設您已設定好 Ubuntu 16.04 Linux 發行版。 此步驟也應適用於 Ubuntu 15.10、Red Hat 6 和 Red Hat 7。

下列步驟會安裝 SQL 和 ODBC 發行版所需的媒體櫃:

    sudo su
    sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/mssql-ubuntu-test/ xenial main" > /etc/apt/sources.list.d/mssqlpreview.list'
    sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
    apt-get update
    apt-get install msodbcsql
    apt-get install unixodbc-dev-utf16 #this step is optional but recommended*

啟動 Visual Studio。 在 [工具->選項->跨平臺->連線管理員] 底下,新增 Linux box 的連線:

工具選項

建立透過 SSH 連線之後,請建立空白專案 (Linux) 範本:

新增專案範本

接著,您便可以新增新的 C 來源檔案,並以此內容進行取代。 使用 ODBC API SQLAllocHandle、SQLSetConnectAttr 和 SQLDriverConnect,您應該能夠初始化和建立資料庫的連線。 如同 Windows ODBC 範例,您必須將 SQLDriverConnect 呼叫替換為先前從 Azure 入口網站複製的資料庫連接字串參數的詳細資料。

     retcode = SQLDriverConnect(
        hdbc, NULL, "Driver=ODBC Driver 13 for SQL"
                    "Server;Server=<yourserver>;Uid=<yourusername>;Pwd=<"
                    "yourpassword>;database=<yourdatabase>",
        SQL_NTS, outstr, sizeof(outstr), &outstrlen, SQL_DRIVER_NOPROMPT);

編譯前的最後一件事是將 odbc 新增為媒體庫相依性:

將 ODBC 新增為輸入程式庫

欲啟動您的應用程式,請從 [偵錯] 功能表啟動 Linux 主機:

Linux 主控台

如果您的連線成功,您現在應該會在 Linux 主機看到印出的目前資料庫名稱:

Linux 主控台視窗輸出

恭喜! 您已完成本指南,現在可以從 Windows 和 Linux 平台上的 C++ 連線到 Azure SQL 資料庫。

取得完整的 C/C++ 教學課程解決方案

您可以在 GitHub 找到本文中包含的所有範例之 [入門解決方案]: