Připojení ke službě SQL Database pomocí jazyka C a C++

Platí pro:Azure SQL Database

Tento příspěvek je zaměřený na vývojáře C a C++, kteří se pokoušejí připojit ke službě Azure SQL Database. Rozdělí se do oddílů, abyste mohli přejít na oddíl, který nejlépe zachycuje váš zájem.

Požadavky pro kurz C/C++

Ujistěte se, že máte následující položky:

  • Aktivní účet Azure Pokud žádný nemáte, můžete si zaregistrovat bezplatnou zkušební verzi Azure.
  • Visual Studio. Abyste mohli sestavit a spustit tuto ukázku, musíte nainstalovat součásti jazyka C++.
  • Vývoj pro Visual Studio pro Linux Pokud vyvíjíte v Linuxu, musíte také nainstalovat rozšíření Visual Studio Linux.

Azure SQL Database a SQL Server na virtuálních počítačích

Azure SQL Database je založená na Microsoft SQL Serveru a je navržená tak, aby poskytovala vysoce dostupné, výkonné a škálovatelné služby. Používání Azure SQL oproti vaší proprietární databázi běžící místně má mnoho výhod. S Azure SQL nemusíte instalovat, nastavovat, spravovat ani spravovat databázi, ale jenom obsah a strukturu databáze. Typické věci, se kterými se obáváme u databází, jako je odolnost proti chybám a redundance, jsou všechny integrované.

Azure v současné době nabízí dvě možnosti hostování úloh SQL Serveru: Azure SQL Database, databáze jako služba a SQL Server na virtuálních počítačích. Nebudeme se podrobně zabývat rozdíly mezi těmito dvěma s tím rozdílem, že azure SQL Database je vaším nejlepším řešením pro nové cloudové aplikace, abychom využili výhod úspor nákladů a optimalizace výkonu, které poskytují cloudové služby. Pokud uvažujete o migraci nebo rozšíření místních aplikací do cloudu, může pro vás sql server na virtuálním počítači Azure fungovat lépe. Pro tento článek si pojďme vytvořit Azure SQL Database.

Technologie přístupu k datům: ODBC a OLE DB

Připojení ke službě Azure SQL Database se nijak neliší a v současné době existují dva způsoby připojení k databázím: ODBC (připojení k open database) a OLE DB (propojování objektů a vkládání databáze). V posledních letech microsoft v souladu s rozhraním ODBC pro nativní přístup k relačním datům. ROZHRANÍ ODBC je poměrně jednoduché a také mnohem rychlejší než OLE DB. Jediným upozorněním je, že rozhraní ODBC používá staré rozhraní API ve stylu jazyka C.

Krok 1: Vytvoření služby Azure SQL Database

Na stránce Začínáme se dozvíte, jak vytvořit ukázkovou databázi. Případně můžete podle tohoto krátkého dvouminutového videa vytvořit službu Azure SQL Database pomocí webu Azure Portal.

Krok 2: Získání připojovacího řetězce

Po zřízení služby Azure SQL Database je potřeba provést následující kroky, abyste zjistili informace o připojení a přidali IP adresu klienta pro přístup k bráně firewall.

Na webu Azure Portal přejděte k připojovacímu řetězci ODBC služby Azure SQL Database pomocí části Zobrazit připojovací řetězce databáze uvedené jako součást části Přehled vaší databáze:

ODBCConnectionString

ODBCConnectionStringProps

Zkopírujte obsah řetězce ODBC (Zahrnuje Node.js) [ověřování SQL]. Tento řetězec použijeme později pro připojení z překladače příkazového řádku ODBC jazyka C++. Tento řetězec obsahuje podrobnosti, jako jsou ovladače, server a další parametry připojení k databázi.

Krok 3: Přidání IP adresy do brány firewall

Přejděte do části brány firewall pro váš server a pomocí následujícího postupu přidejte ip adresu klienta do brány firewall, abychom měli jistotu, že můžeme navázat úspěšné připojení:

AddyourIPWindow

V tuto chvíli jste nakonfigurovali službu Azure SQL Database a jste připraveni se připojit z kódu jazyka C++.

Krok 4: Připojení z aplikace C/C++ systému Windows

Pomocí této ukázky, která se sestavuje pomocí sady Visual Studio, se můžete snadno připojit ke službě Azure SQL Database pomocí rozhraní ODBC ve Windows. Ukázka implementuje interpret příkazového řádku ODBC, který se dá použít k připojení k naší službě Azure SQL Database. Tato ukázka používá soubor dsN (Database Source Name File) jako argument příkazového řádku nebo podrobný připojovací řetězec, který jsme zkopírovali dříve z webu Azure Portal. Otevřete stránku vlastností pro tento projekt a vložte připojovací řetězec jako argument příkazu, jak je znázorněno tady:

DSN Propsfile

Ujistěte se, že jako součást připojovacího řetězce databáze zadáte správné ověřovací údaje pro vaši databázi.

Spusťte aplikaci a sestavte ji. Mělo by se zobrazit následující okno, které ověřuje úspěšné připojení. Můžete dokonce spustit některé základní příkazy SQL, jako je vytvoření tabulky , abyste ověřili připojení k databázi:

SQL Commands

Případně můžete vytvořit soubor DSN pomocí průvodce, který se spustí, když nejsou zadané žádné argumenty příkazu. Doporučujeme vyzkoušet i tuto možnost. Tento soubor DSN můžete použít pro automatizaci a ochranu nastavení ověřování:

Create DSN File

Blahopřejeme! Nyní jste se úspěšně připojili k Azure SQL pomocí C++ a ODBC ve Windows. Můžete pokračovat ve čtení a dělat to samé i pro platformu Linux.

Krok 5: Připojení z aplikace C/C++ pro Linux

V případě, že jste ještě neslyšeli novinky, Visual Studio teď umožňuje vyvíjet také linuxové aplikace C++. O tomto novém scénáři si můžete přečíst na blogu Visual C++ for Linux Development . K sestavení pro Linux potřebujete vzdálený počítač, na kterém běží distribuce Linuxu. Pokud ho nemáte k dispozici, můžete si ho rychle nastavit pomocí virtuálních počítačů Azure s Linuxem.

V tomto kurzu předpokládejme, že máte nastavenou distribuci Ubuntu 16.04 Linux. Zde uvedené kroky by se také měly vztahovat na Ubuntu 15.10, Red Hat 6 a Red Hat 7.

Následující kroky nainstalují knihovny potřebné pro SQL a ODBC pro distribuci:

    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*

Spusťte Visual Studio. V části Nástroje – Možnosti –>> Multiplatformní –> Správce připojení přidejte připojení k poli s Linuxem:

Tools Options

Po vytvoření připojení přes SSH vytvořte prázdnou šablonu projektu (Linux):

New project template

Potom můžete přidat nový zdrojový soubor jazyka C a nahradit ho tímto obsahem. Pomocí rozhraní ODBC API SQLAllocHandle, SQLSetConnectAttr a SQLDriverConnect byste měli být schopni inicializovat a navázat připojení k databázi. Stejně jako u ukázky ROZHRANÍ ODBC pro Windows je potřeba nahradit volání SQLDriverConnect podrobnostmi z parametrů připojovacího řetězce databáze zkopírovaných z portálu Azure Portal dříve.

     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);

Poslední věcí, kterou je potřeba udělat před kompilací, je přidání odbc jako závislosti knihovny:

Adding ODBC as an input library

Aplikaci spustíte tak, že v nabídce Ladění vyvoláte konzolu Linuxu:

Linux Console

Pokud vaše připojení proběhlo úspěšně, měli byste vidět aktuální název databáze vytištěný v konzole linuxu:

Linux Console Window Output

Blahopřejeme! Úspěšně jste dokončili kurz a teď se můžete připojit ke službě Azure SQL Database z C++ na platformách Windows a Linux.

Získání kompletního řešení kurzu jazyka C/C++

Řešení GetStarted, které obsahuje všechny ukázky v tomto článku, najdete na GitHubu:

Další kroky

Další prostředky