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. Sinon, vous pouvez suivre cette vidéo de deux minutes pour créer une instance Azure SQL Database à l’aide du portail Azure.

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.

Dans le portail Azure, accédez à la chaîne de connexion ODBC de votre instance Azure SQL Database en cliquant sur Afficher les chaînes de connexion de la base de données dans la section Vue d’ensemble de votre base de données :

Chaîne de connexion ODBC

Propriétés de la chaîne de connexion ODBC

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

Accédez à la section du pare-feu de votre serveur et ajoutez l’adresse IP de votre client au pare-feu à l’aide de ces étapes pour permettre l’établissement d’une connexion :

Fenêtre d’ajout de l’adresse IP

À ce stade, vous avez configuré votre instance Azure SQL Database et êtes prêt à vous connecter à partir de votre code C++.

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 des commandes SQL de base telles que create table pour valider la connectivité de votre base de données :

Commandes SQL

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 :

Création d’un fichier DSN

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.

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 -> Multiplateforme -> Gestionnaire de connexions, ajoutez une connexion à votre boîte Linux :

Outils > Options

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

Nouveau modèle de projet

Vous pouvez ensuite ajouter un nouveau fichier source C et le remplacer par ce contenu. À l’aide des API ODBC SQLAllocHandle, SQLSetConnectAttr et SQLDriverConnect, vous devriez pouvoir initialiser et établir une connexion à votre base de données. Comme pour l’exemple ODBC Windows, vous devez remplacer l’appel de SQLDriverConnect avec les détails des paramètres de la chaîne de connexion à votre 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=<"
                    "yourpassword>;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 :

Ajout d’ODBC en tant que bibliothèque d’entrée

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

Console Linux

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

Sortie de la fenêtre de la 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 solution GetStarted qui contient tous les exemples de cet article sur GitHub :