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

Platí pro: Azure SQL Database

Tento článek pomáhá vývojářům jazyka C a C++ připojit se ke službě Azure SQL Database.

Požadavky

K dokončení kroků v této příručce potřebujete následující:

  • 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.

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

K Azure SQL Database se v současné době můžete připojit dvěma způsoby: 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 mnohem rychlejší než OLE DB. Jediným upozorněním je, že rozhraní ODBC používá staré rozhraní API ve stylu jazyka C.

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.

Získání připojovací řetězec

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 na připojovací řetězec ODBC služby Azure SQL Database pomocí připojovací řetězec Zobrazit 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.

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++.

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 přebírá soubor názvu zdroje databáze (DSN) 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 této databáze připojovací řetězec zadáte správné podrobnosti ověřování 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:

Příkazy SQL

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í:

Vytvoření souboru DSN

Gratulujeme! 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.

Připojení z aplikace C/C++ pro Linux

V sadě Visual Studio můžete vyvíjet linuxové aplikace C++. Další informace najdete v následujícím 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.

Tato příručka předpokládá, že máte nastavenou distribuci Ubuntu 16.04 Linux. Postup platí také pro 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 –> Různé platformy –> Správce připojení přidejte připojení k poli s Linuxem:

Možnosti nástrojů

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

Nová šablona projektu

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 databáze připojovací řetězec parametry zkopírované 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:

Přidání rozhraní ODBC jako vstupní knihovny

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

Konzola Linuxu

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:

Výstup okna konzoly Linuxu

Gratulujeme! Průvodce jste úspěšně dokončili 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: