Nawiązywanie połączenia z usługą SQL Database przy użyciu języków C i C++
Dotyczy:Azure SQL Database
Ten wpis jest przeznaczony dla deweloperów języka C i C++ próbujących nawiązać połączenie z usługą Azure SQL Database. Jest ona podzielona na sekcje, dzięki czemu możesz przejść do sekcji, która najlepiej oddaje Twoje zainteresowanie.
Wymagania wstępne dotyczące samouczka języka C/C++
Upewnij się, że masz:
- Aktywne konto platformy Azure. Jeśli go nie masz, możesz zarejestrować się w celu uzyskania bezpłatnej wersji próbnej platformy Azure.
- Program 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.
Usługa Azure SQL Database i program SQL Server na maszynach wirtualnych
Usługa Azure SQL Database jest oparta na programie Microsoft SQL Server i została zaprojektowana w celu zapewnienia wysokiej dostępności, wydajnej i skalowalnej usługi. Korzystanie z usługi Azure SQL w przypadku własnej bazy danych działającej lokalnie zapewnia wiele korzyści. W usłudze Azure SQL nie trzeba instalować, konfigurować, konserwować ani zarządzać bazą danych, ale tylko zawartością i strukturą bazy danych. Typowe rzeczy, które martwimy się o bazy danych, takie jak odporność na uszkodzenia i nadmiarowość, są wbudowane.
Platforma Azure ma obecnie dwie opcje hostowania obciążeń serwera SQL: Azure SQL Database, baza danych jako usługa i serwer SQL na maszynach wirtualnych. Nie będziemy szczegółowo omawiać różnic między tymi dwoma z wyjątkiem tego, że usługa Azure SQL Database jest najlepszym rozwiązaniem dla nowych aplikacji opartych na chmurze, aby skorzystać z oszczędności kosztów i optymalizacji wydajności zapewnianej przez usługi w chmurze. Jeśli rozważasz migrację lub rozszerzanie aplikacji lokalnych na chmurę, serwer SQL na maszynie wirtualnej platformy Azure może być lepszy. Aby zachować prostotę tego artykułu, utwórzmy bazę danych Azure SQL Database.
Technologie dostępu do danych: ODBC i OLE DB
Nawiązywanie połączenia z usługą Azure SQL Database nie różni się i obecnie istnieją dwa sposoby nawiązywania połączenia z bazami danych: ODBC (łączność z otwartą bazą danych) i OLE DB (baza danych łączenia obiektów i osadzania). W ostatnich latach firma Microsoft jest zgodna z ODBC na potrzeby natywnego dostępu do danych relacyjnych. ODBC jest stosunkowo prosty, a także znacznie szybszy niż OLE DB. Jedynym zastrzeżeniem jest to, że ODBC używa starego interfejsu API w stylu C.
Krok 1. Tworzenie bazy danych Azure SQL Database
Zobacz stronę wprowadzenie, aby dowiedzieć się, jak utworzyć przykładową bazę danych. Możesz też skorzystać z tego krótkiego dwuminutowego klipu wideo , aby utworzyć usługę Azure SQL Database przy użyciu witryny Azure Portal.
Krok 2. 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.
W witrynie Azure Portal przejdź do parametrów połączenia ODBC usługi Azure SQL Database przy użyciu parametrów połączenia z bazą danych wyświetlanych jako część sekcji przeglądu bazy danych:
Skopiuj zawartość ciągu ODBC (w tym 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.
Krok 3. Dodawanie adresu IP do zapory
Przejdź do sekcji zapory dla serwera i dodaj adres IP klienta do zapory, wykonując następujące kroki , aby upewnić się, że możemy nawiązać pomyślne połączenie:
Na tym etapie skonfigurowano usługę Azure SQL Database i wszystko jest gotowe do nawiązania połączenia z poziomu kodu C++.
Krok 4. Nawiązywanie połączenia z 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łne parametry połączenia skopiowane 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:
Upewnij się, że podano odpowiednie szczegóły uwierzytelniania dla bazy danych w ramach tych parametrów połączenia bazy danych.
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 tworzenie tabeli , aby zweryfikować łączność bazy danych:
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:
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.
Krok 5. Nawiązywanie połączenia z aplikacji C/C++ systemu Linux
Jeśli nie znasz jeszcze wiadomości, program Visual Studio umożliwia teraz tworzenie aplikacji języka C++ dla systemu Linux. Ten nowy scenariusz można znaleźć w blogu 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 platformy Azure, możesz je szybko skonfigurować przy użyciu maszyn wirtualnych platformy Azure z systemem Linux.
W tym samouczku załóżmy, że masz skonfigurowaną dystrybucję systemu Ubuntu 16.04 Linux. Kroki opisane tutaj powinny również dotyczyć 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 —>> międzyplatformowe —> Menedżer połączeń dodaj połączenie z polem systemu Linux:
Po nawiązaniu połączenia za pośrednictwem protokołu SSH utwórz szablon Pusty projekt (Linux):
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, powinno być możliwe zainicjowanie i nawiązanie połączenia z bazą danych. Podobnie jak w przypadku przykładu ODBC systemu Windows, musisz zastąpić wywołanie SQLDriverConnect szczegółami parametrów połączenia bazy danych skopiowanymi z witryny Azure Portal.
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);
Ostatnią czynnością, którą należy wykonać przed kompilowaniem, jest dodanie odbc jako zależności biblioteki:
Aby uruchomić aplikację, uruchom konsolę systemu Linux z menu Debugowanie :
Jeśli połączenie zakończyło się pomyślnie, w konsoli systemu Linux powinna zostać wyświetlona bieżąca nazwa bazy danych:
Gratulacje! Ukończono samouczek i możesz 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 GetStarted zawierające wszystkie przykłady w tym artykule można znaleźć w witrynie GitHub:
- Przykład ODBC C++ dla systemu Windows, pobierz przykład odBC języka Windows C++ w celu nawiązania połączenia z usługą Azure SQL
- Przykład ODBC C++ Dla systemu Linux pobierz przykład odBC języka Linux C++ w celu nawiązania połączenia z usługą Azure SQL
Następne kroki
- Przegląd programowania w usłudze SQL Database
- Więcej informacji na temat dokumentacji interfejsu API ODBC
Dodatkowe zasoby
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla