Partager via


Se connecter à SQL Database à l’aide de C et C++

S’applique à :Azure SQL Database

Cet article aide les développeurs C et C++ à se connecter à Azure SQL Database.

Prérequis

Pour réaliser les étapes présentées dans ce guide, vous avez besoin de ce qui suit :

Technologies d’accès aux données : ODBC et OLE DB

Il existe actuellement deux moyens de se connecter à Azure SQL Database : ODBC (Open Database Connectivity) et OLE DB (Object Linking and Embedding Database). Ces dernières années, Microsoft s’est aligné sur ODBC pour l’accès aux données relationnelles natives. ODBC est beaucoup plus rapide qu’OLE DB. Le seul inconvénient ici est qu’ODBC utilise une API de style C ancienne.

Créer votre base de données SQL Azure

Consultez la page de prise en main pour apprendre à créer un exemple de base de données.

Obtention de la chaîne de connexion

Une fois votre instance Azure SQL Database approvisionnée, vous devez exécuter les étapes suivantes pour déterminer les informations de connexion et ajouter l’adresse IP de votre client pour l’accès au pare-feu.

  1. Dans le portail Azure, accédez à vos chaînes de connexion Azure SQL Database en utilisant l'option Afficher les chaînes de connexion de la base de données répertoriée dans la section Vue d’ensemble de votre base de données :

    Capture d’écran du portail Azure d’une page Vue d’ensemble d’une base de données SQL. Le lien afficher les chaînes de connexion de base de données est mis en surbrillance.

  2. Sélectionnez l’onglet ODBC .

    Capture d’écran du portail Azure d’une chaîne de connexion ODBC.

  3. Copiez le contenu de la chaîne ODBC (Inclut Node.js) [Authentification SQL] . Nous utiliserons cette chaîne ultérieurement pour la connexion à partir de l’interpréteur de ligne de commande ODBC C++. Cette chaîne fournit des détails tels que le pilote, le serveur et d’autres paramètres de connexion de base de données.

Ajout de votre adresse IP au pare-feu

  1. Accédez à votre serveur logique Azure SQL Database. Sélectionnez le lien du nom du serveur dans la page Vue d’ensemble de votre base de données SQL ou accédez-y via la recherche du portail Azure.
  2. Sous Sécurité, sélectionnez Mise en réseau.
  3. Sous l’onglet Accès public , sélectionnez Réseaux sélectionnés si ce n’est pas déjà fait.
  4. Ajoutez votre adresse IP cliente au pare-feu à l’aide de ces étapes pour vous assurer que nous pouvons établir une connexion réussie. Sélectionnez Ajouter votre adresse IPv4 cliente ou ajoutez une règle de pare-feu.

À ce stade, vous avez configuré votre base de données Azure SQL et êtes prêt à vous connecter à partir de votre code C++ à partir de votre station de travail.

Conseil / Astuce

L’ajout de l’adresse IP de station de travail de votre client au pare-feu de réseau public est acceptable pour une configuration temporaire de laboratoire ou d’apprentissage, mais pour une solution d’entreprise ou un projet de longue durée, suivez les bonnes pratiques de sécurité suivantes :

  • Définissez Autoriser les services et ressources Azure à accéder à ce serveur sur OFF au niveau du serveur.
  • Utilisez des points de terminaison de service VNet et des règles de pare-feu de réseau virtuel.
  • Utilisez une liaison privée.

Connexion à partir d’une application C/C++ Windows

Vous pouvez facilement vous connecter à votre instance Azure SQL Database à l’aide d’ODBC sur Windows en utilisant cet exemple, généré avec Visual Studio. L’exemple implémente un interpréteur de ligne de commande ODBC qui peut être utilisé pour se connecter à l’instance Azure SQL Database. Cet exemple prend comme argument de ligne de commande un fichier de nom de source de base de données (DSN) ou la chaîne de connexion détaillée copiée précédemment à partir du portail Azure. Affichez la page de propriétés de ce projet et collez la chaîne de connexion en tant qu’argument de commande, comme illustré ici :

Fichier de propriétés DSN.

Prenez soin d’inclure les informations d’authentification correctes pour votre base de données dans la chaîne de connexion de cette base de données.

Lancez l’application pour la générer. La fenêtre de confirmation de la connexion suivante doit s’afficher. Vous pouvez même exécuter certaines commandes SQL de base comme CREATE TABLE valider la connectivité de votre base de données :

Capture d’écran des connexions C++ dans odbcsql.exe.

Vous pouvez aussi créer un fichier DSN à l’aide de l’assistant qui est lancé lorsqu’aucun argument de commande n’est fourni. Nous vous recommandons d’essayer également cette option. Vous pouvez utiliser ce fichier DSN à des fins d’automatisation et pour protéger vos paramètres d’authentification :

Capture d’écran du processus créer un fichier DSN, page Sélectionner une source de données.

Félicitations ! Vous avez réussi à vous connecter à Azure SQL à l’aide de C++ et ODBC sur Windows. Vous pouvez poursuivre la lecture pour faire de même sur une plateforme Linux.

Connexion à partir d’une application C/C++ Linux

Vous pouvez développer des applications C++ pour Linux dans Visual Studio. Pour en savoir plus, consultez le billet de blog suivant : Visual C++ pour le développement sous Linux.

Pour générer des applications pour Linux, vous avez besoin d’un ordinateur distant sur lequel s’exécute votre distribution Linux. Si vous n’en avez pas, vous pouvez en configurer un rapidement à l’aide de machines virtuelles Azure Linux et de diverses méthodes de déploiement.

Ce guide part du principe que vous disposez d’une distribution Linux Ubuntu 16.04. Les étapes s’appliquent également à Ubuntu 15.10, Red Hat 6 et Red Hat 7.

Les étapes suivantes permettent d’installer les bibliothèques nécessaires à SQL et ODBC pour votre distribution :

    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*

Lancez Visual Studio. Sous Outils ->Options ->Plateforme multi-OS ->Gestionnaire de connexions, ajoutez une connexion à votre machine Linux.

Capture d’écran des options d’outils pour créer et supprimer des connexions SSH.

Une fois la connexion via SSH établie, créez un modèle de projet vide (Linux) :

Capture d’écran des modèles pour les nouveaux projets.

Vous pouvez ensuite ajouter un nouveau fichier source C et le remplacer par ce contenu. À l’aide des SQLAllocHandleAPI ODBC, SQLSetConnectAttret SQLDriverConnect, vous devez être en mesure d’initialiser et d’établir une connexion à votre base de données.

Comme avec l’exemple ODBC Windows, vous devez remplacer l’appel SQLDriverConnect par les détails de vos paramètres de chaîne de connexion de base de données copiés à partir du portail Azure précédemment.

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

La dernière chose à faire avant de procéder à la compilation consiste à ajouter odbc en tant que dépendance de bibliothèque :

Capture d’écran de l’ajout d’ODBC en tant que bibliothèque d’entrée.

Pour lancer votre application, affichez la Console Linux à partir du menu Déboguer :

Capture d’écran de l’option de menu Console Linux.

Si votre connexion a réussi, le nom de la base de données actuelle doit être indiqué dans la Console Linux :

Capture d’écran de la sortie de la fenêtre console Linux.

Félicitations ! Vous avez terminé le guide et pouvez maintenant vous connecter à votre instance Azure SQL Database à partir de C++ sur les plateformes Windows et Linux.

Obtenir la solution complète du didacticiel C/C++

Vous trouverez la GetStarted solution qui contient tous les exemples de cet article sur GitHub :