Udostępnij za pomocą


Nawiązywanie połączenia z usługą SQL Database przy użyciu języków C i C++

Dotyczy:Azure SQL Database

Ten artykuł ułatwia deweloperom języka C i C++ łączenie się z usługą Azure SQL Database.

Wymagania wstępne

Aby wykonać kroki opisane w tym przewodniku, potrzebne są następujące elementy:

  • Aktywne konto platformy Azure. Jeśli go nie masz, możesz zarejestrować się w celu uzyskania bezpłatnej wersji próbnej platformy Azure.
  • Visual Studio. Aby skompilować i uruchomić ten przykład, należy zainstalować składniki języka C++.
  • Tworzenie aplikacji dla systemu Linux w programie Visual Studio. Jeśli programujesz w systemie Linux, musisz również zainstalować rozszerzenie programu Visual Studio Dla systemu Linux.

Technologie dostępu do danych: ODBC i OLE DB

Obecnie istnieją dwa sposoby nawiązywania połączenia z usługą Azure SQL Database: ODBC (Open Database Connectivity) i OLE DB (Object Linking and Embedding Database). W ostatnich latach firma Microsoft jest zgodna z ODBC na potrzeby natywnego dostępu do danych relacyjnych. OdBC jest znacznie szybszy niż OLE DB. Jedynym zastrzeżeniem jest to, że ODBC używa starego interfejsu API w stylu C.

Tworzenie usługi Azure SQL Database

Zobacz stronę wprowadzenie, aby dowiedzieć się, jak utworzyć przykładową bazę danych.

Pobieranie parametrów połączenia

Po aprowizacji usługi Azure SQL Database należy wykonać następujące kroki, aby określić informacje o połączeniu i dodać adres IP klienta na potrzeby dostępu do zapory.

  1. W portalu Azure przejdź do parametrów połączenia usługi Azure SQL Database używając opcji Pokaż ciągi połączenia bazy danych w części Przegląd dla Twojej bazy danych:

    Zrzut ekranu z Azure Portal przedstawia stronę Przeglądu bazy danych SQL. Link do wyświetlania parametrów połączenia bazy danych jest wyróżniony.

  2. Wybierz kartę ODBC.

    Zrzut ekranu ciągu połączenia ODBC w portalu Azure.

  3. Skopiuj zawartość ciągu ODBC (obejmuje Node.js) [uwierzytelnianie SQL]. Użyjemy tego ciągu później, aby nawiązać połączenie z interpretera wiersza polecenia ODBC języka C++. Ten ciąg zawiera szczegółowe informacje, takie jak sterownik, serwer i inne parametry połączenia bazy danych.

Dodawanie adresu IP do zapory

  1. Przejdź do serwera logicznego usługi Azure SQL Database. Wybierz link nazwa serwera na stronie Przegląd bazy danych SQL lub przejdź do niej za pośrednictwem wyszukiwania w witrynie Azure Portal.
  2. W obszarze Zabezpieczenia wybierz pozycję Sieć.
  3. Na karcie Dostęp publiczny wybierz pozycję Wybrane sieci , jeśli jeszcze nie.
  4. Dodaj adres IP klienta do zapory, wykonując następujące kroki , aby upewnić się, że możemy nawiązać pomyślne połączenie. Wybierz pozycję Dodaj adres IPv4 klienta lub dodaj regułę zapory.

Na tym etapie skonfigurowano usługę Azure SQL Database i wszystko jest gotowe do nawiązania połączenia z poziomu kodu C++ ze stacji roboczej.

Wskazówka

Dodanie adresu IP stacji roboczej klienta do zapory sieci publicznej jest akceptowalne w przypadku tymczasowego laboratorium lub konfiguracji szkoleniowej, ale w przypadku rozwiązania dla przedsiębiorstw lub projektu długotrwałego postępuj zgodnie z następującymi najlepszymi rozwiązaniami w zakresie zabezpieczeń:

  • Ustaw opcję Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera na wartość WYŁ. na poziomie serwera.
  • Użyj punktów końcowych usługi sieci wirtualnej i reguł zapory sieci wirtualnej.
  • Użyj usługi Private Link.

Nawiązywanie połączenia z poziomu aplikacji C/C++ systemu Windows

Możesz łatwo nawiązać połączenie z usługą Azure SQL Database przy użyciu funkcji ODBC w systemie Windows przy użyciu tego przykładu , który kompiluje się z programem Visual Studio. Przykład implementuje interpreter wiersza polecenia ODBC, który może służyć do nawiązywania połączenia z naszą usługą Azure SQL Database. W tym przykładzie jest pobierany plik nazwy źródłowej bazy danych (DSN) jako argument wiersza polecenia lub pełny parametry połączenia skopiowany wcześniej z witryny Azure Portal. Wyświetl stronę właściwości dla tego projektu i wklej parametry połączenia jako argument polecenia, jak pokazano poniżej:

DSN Propsfile.

Upewnij się, że podano odpowiednie szczegóły uwierzytelniania dla bazy danych w ramach tej bazy danych parametry połączenia.

Uruchom aplikację, aby ją skompilować. Powinno zostać wyświetlone następujące okno z walidacją pomyślnego połączenia. Możesz nawet uruchomić kilka podstawowych poleceń SQL, takich jak CREATE TABLE, aby zweryfikować łączność z bazą danych.

Zrzut ekranu przedstawiający połączenia języka C++ w odbcsql.exe.

Alternatywnie można utworzyć plik DSN przy użyciu kreatora, który jest uruchamiany, gdy nie podano żadnych argumentów polecenia. Zalecamy również wypróbowanie tej opcji. Tego pliku DSN można użyć do automatyzacji i ochrony ustawień uwierzytelniania:

Zrzut ekranu przedstawiający proces tworzenia pliku DSN na stronie Wybieranie źródła danych.

Gratulacje! Połączenie z usługą Azure SQL zostało pomyślnie nawiązane przy użyciu języka C++ i ODBC w systemie Windows. Możesz również kontynuować czytanie, aby wykonać to samo dla platformy Linux.

Nawiązywanie połączenia z poziomu aplikacji C/C++ systemu Linux

Aplikacje języka C++ dla systemu Linux można opracowywać w programie Visual Studio. Aby dowiedzieć się więcej, zapoznaj się z następującym blogem: Visual C++ for Linux Development.

Do kompilacji dla systemu Linux potrzebna jest maszyna zdalna, na której działa dystrybucja systemu Linux. Jeśli nie masz dostępnej maszyny wirtualnej Linux Azure, możesz ją szybko skonfigurować, korzystając z różnych metod wdrażania.

W tym przewodniku założono, że masz skonfigurowaną dystrybucję systemu Linux w systemie Ubuntu 16.04. Kroki dotyczą również systemów Ubuntu 15.10, Red Hat 6 i Red Hat 7.

Poniższe kroki umożliwiają zainstalowanie bibliotek wymaganych do dystrybucji SQL i 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*

Uruchom program Visual Studio. W obszarze Narzędzia ->Opcje ->Cross Platform->Menedżer Połączeń, dodaj połączenie do swojego systemu Linux.

Zrzut ekranu przedstawiający opcje narzędzi do tworzenia i usuwania połączeń SSH.

Po nawiązaniu połączenia za pośrednictwem protokołu SSH utwórz szablon Pusty projekt (Linux):

Zrzut ekranu przedstawiający szablony dla nowych projektów.

Następnie możesz dodać nowy plik źródłowy języka C i zastąpić go tą zawartością. Korzystając z interfejsów API ODBC SQLAllocHandle, SQLSetConnectAttr i SQLDriverConnect, powinieneś być w stanie zainicjować i nawiązać połączenie z bazą danych.

Podobnie jak w przypadku przykładu ODBC systemu Windows, należy zastąpić SQLDriverConnect wywołanie szczegółami parametrów połączenia bazy danych skopiowanymi wcześniej z witryny Azure Portal.

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

Ostatnią czynnością, którą należy wykonać przed kompilowaniem, jest dodanie odbc jako zależności biblioteki:

Zrzut ekranu przedstawiający dodawanie odBC jako biblioteki wejściowej.

Aby uruchomić aplikację, uruchom konsolę systemu Linux z menu Debugowanie :

Zrzut ekranu przedstawiający opcję menu Konsola systemu Linux.

Jeśli połączenie zakończyło się pomyślnie, w konsoli systemu Linux powinna zostać wyświetlona bieżąca nazwa bazy danych:

Zrzut ekranu przedstawiający dane wyjściowe okna konsoli systemu Linux.

Gratulacje! Przewodnik został ukończony pomyślnie i można teraz nawiązać połączenie z usługą Azure SQL Database z poziomu języka C++ na platformach Windows i Linux.

Uzyskiwanie kompletnego rozwiązania samouczka języka C/C++

Rozwiązanie, które zawiera wszystkie przykłady w tym artykule, można znaleźć GetStarted w witrynie GitHub: