使用 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 連接字串:
複製 ODBC 的內容(包括 Node.js)[SQL 驗證] 字串。 我們稍後會使用此字串從 C++ ODBC 命令列解譯器連線。 此字串提供了驅動程式、伺服器和其他資料庫連接參數等詳細資料。
將您的 IP 新增至防火牆
移至伺服器的防火牆區段,並使用下列步驟將用戶端 IP 新增至防火牆,確保我們可以建立成功的連線:
此時,您已設定好 Azure SQL 資料庫,並準備從 C++ 程式代碼進行連線。
從 Windows C/C++ 應用程式連線
您可以使用以 Visual Studio 組建的這個範例,輕鬆地使用 Windows 上的 ODBC 連線到 Azure SQL 資料庫。 此範例會實作 ODBC 命令列解譯器,可用來連線到我們的 Azure SQL 資料庫。 此範例會採用資料庫來源名稱檔案 (DSN) 檔案作為命令列引數,或稍早從 Azure 入口網站複製的冗長連接字串。 啟動這個專案的屬性頁,並將連接字串貼上為命令引數,如下所示:
請確定您為資料庫提供了正確的驗證詳細資料,作為該資料庫連接字串的一部分。
啟動應用程式來組建。 您應該會看到下列視窗驗證成功的連線。 您甚至可以執行一些基本的 SQL 命令,例如建立資料表來驗證資料庫連線能力:
或者,您可以在使用未提供任何命令引數時啟動的精靈來建立 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="
"<password>;database=<yourdatabase>",
SQL_NTS, outstr, sizeof(outstr), &outstrlen, SQL_DRIVER_NOPROMPT);
編譯前的最後一件事是將 odbc 新增為媒體庫相依性:
欲啟動您的應用程式,請從 [偵錯] 功能表啟動 Linux 主機:
如果您的連線成功,您現在應該會在 Linux 主機看到印出的目前資料庫名稱:
恭喜! 您已完成本指南,現在可以從 Windows 和 Linux 平台上的 C++ 連線到 Azure SQL 資料庫。
取得完整的 C/C++ 教學課程解決方案
您可以在 GitHub 找到本文中包含的所有範例之 [入門解決方案]:
- ODBC C++ Windows 範例,請下載 Windows C++ ODBC 範例來連線到 Azure SQL
- ODBC C++ Linux 範例,請下載 Linux C++ ODBC 範例來連線到 Azure SQL
相關內容
- 請參閱 SQL Database 開發概觀
- ODBC API 參照上的其他詳細資訊
- 多組織用戶共享 SaaS 應用程式與 Azure SQL 資料庫的設計模式
- 探索所有 SQL 資料庫功能