Conexión a SQL Database mediante C y C++
Se aplica a: Azure SQL Database
Este artículo ayuda a los desarrolladores de C y C++ a conectarse a Azure SQL Database.
Requisitos previos
Necesita lo siguiente para completar los pasos de esta guía:
- Una cuenta de Azure activa. Si no tiene una, puede registrarse para obtener una prueba gratuita de Azure.
- Visual Studio. Debe instalar los componentes del lenguaje C++ para compilar y ejecutar este ejemplo.
- Visual C++ for Linux Development (Visual C++ para el desarrollo de aplicaciones para Linux). Si está desarrollando en Linux, también debe instalar la extensión de Visual Studio para Linux.
Tecnologías de acceso a datos: ODBC y OLE DB
Actualmente hay dos formas de conectarse a las bases de datos de Azure SQL: ODBC (Open Database Connectivity) y OLE DB (Object Linking and Embedding database). En los últimos años, Microsoft se ha alineado con ODBC para el acceso a datos relacionales nativos. ODBC es mucho más rápido que OLE DB. El único inconveniente aquí es que ODBC utiliza una API de estilo C anterior.
Creación de su instancia de Azure SQL Database
Vea la página de introducción para aprender a crear una base de datos de ejemplo. Como alternativa, puede seguir los pasos de este breve vídeo de dos minutos para crear una instancia de Azure SQL Database mediante Azure Portal.
Obtención de la cadena de conexión
Después de aprovisionar la instancia de Azure SQL Database, debe seguir estos pasos para determinar la información de conexión y agregar la dirección IP de cliente para el acceso de firewall.
En Azure Portal, vaya a la cadena de conexión de ODBC de la instancia de Azure SQL Database mediante la opción Mostrar las cadenas de conexión de la base de datos que aparece como parte de la sección Información general de la base de datos:
Copie el contenido de la cadena ODBC (Incluye Node.js) [autenticación de SQL] . Esta cadena se usará más adelante para conectarse desde el intérprete de línea de comandos ODBC de C++. Esta cadena proporciona detalles como el controlador, el servidor y otros parámetros de conexión de base de datos.
Incorporación de la IP al firewall
Vaya a la sección del firewall del servidor y agregue la IP del cliente al firewall siguiendo estos pasos para asegurarse de que se puede establecer una conexión correcta:
Ya ha configurado Azure SQL Database y está listo para conectarse desde el código de C++.
Conexión desde una aplicación de C o C++ de Windows
Puede conectarse fácilmente a la instancia de Azure SQL Database mediante ODBC en Windows con este ejemplo que se compila con Visual Studio. El ejemplo implementa un intérprete de línea de comandos de ODBC que puede usarse para conectarse a Azure SQL Database. Este ejemplo toma un archivo de nombre de origen de datos (DSN) como argumento de línea de comandos o la cadena de conexión detallada que se copió anteriormente desde Azure Portal. Abra la página de propiedades para este proyecto y pegue la cadena de conexión como argumento de comando, tal como se muestra aquí:
Asegúrese de proporcionar los detalles de autenticación adecuados para la base de datos como parte de esa cadena de conexión de base de datos.
Inicie la aplicación para compilarla. Debería ver la siguiente ventana en la que se valida una conexión correcta. Incluso puede ejecutar algunos comandos básicos de SQL como create table para validar la conectividad de la base de datos:
Como alternativa, podría crear un archivo DSN mediante el asistente que se inicia cuando no se proporciona ningún argumento de comando. Se recomienda que lo intente también con esta opción. Puede usar este archivo DSN para la automatización y protección de la configuración de autenticación:
Felicidades. Ya se ha conectado correctamente a Azure SQL con C++ y ODBC en Windows. Puede seguir leyendo para hacer lo mismo en la plataforma Linux.
Conexión desde una aplicación de C o C++ de Linux
Puede desarrollar aplicaciones de C++ de Linux en Visual Studio. Para obtener más información, revise el blog siguiente: Visual C++ para el desarrollo de Linux.
Para la compilación para Linux, se necesitará un equipo remoto en el que se ejecute la distribución de Linux. Si no dispone de ninguno, puede configurar uno rápidamente mediante Azure Virtual Machines de Linux.
Para esta guía se supone que tiene configurada una distribución de Linux de Ubuntu 16.04. Los pasos indicados también se aplican a Ubuntu 15.10, Red Hat 6 y Red Hat 7.
Los pasos siguientes instalan las bibliotecas necesarias para SQL y ODBC para la distribución:
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*
Inicie Visual Studio. En Herramientas -> Opciones -> Multiplataforma -> Administrador de conexiones, agregue una conexión al cuadro de Linux:
Una vez establecida la conexión a través de SSH, cree una plantilla Empty project (Linux):
A continuación, puede agregar un nuevo archivo de código fuente C y reemplazarlo por este contenido. Con las API de ODBC SQLAllocHandle, SQLSetConnectAttr y SQLDriverConnect, debe poder inicializar y establecer una conexión con la base de datos. Al igual que con el ejemplo de ODBC de Windows, debe reemplazar la llamada SQLDriverConnect por los detalles de los parámetros de cadena de conexión de base de datos copiados anteriormente de 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);
Lo último que queda por hacer antes de la compilación es agregar odbc como dependencia de biblioteca:
Para iniciar la aplicación, abra Linux Console desde el menú Depurar:
Si la conexión se realizó correctamente, ahora debería ver el nombre de la base de datos actual en Linux Console:
Felicidades. Ha completado correctamente la guía y ya puede conectarse a Azure SQL Database desde C++ en plataformas Windows y Linux.
Obtención de la solución completa del tutorial de C o C++
Puede encontrar la solución GetStarted que contiene todos los ejemplos de este artículo en GitHub:
- Ejemplo de Windows de C++ de ODBC: descargue el ejemplo de ODBC de C++ de Windows para conectarse a Azure SQL.
- Ejemplo de Linux de C++ de ODBC: descargue el ejemplo de ODBC de C++ de Linux para conectarse a Azure SQL.
Contenido relacionado
- Consulte Información general de desarrollo de SQL Database
- Más información en ODBC API Reference (Referencia de la API de ODBC).
- Modelos de diseño para las aplicaciones SaaS multiinquilino con Azure SQL Database
- Descubra todas las funcionalidades de SQL Database