Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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 el portal de Azure, vaya a las cadenas de conexión de Azure SQL Database usando la opción Mostrar cadenas de conexión de base de datos que se encuentra como parte de la sección Visión general de su base de datos:
Seleccione la pestaña ODBC .
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 al servidor lógico de Azure SQL Database. Seleccione el vínculo Nombre del servidor en la página Información general de la base de datos SQL o vaya a ella a través de la búsqueda de Azure Portal.
- En Seguridad, seleccione Redes.
- En la pestaña Acceso público , seleccione Redes seleccionadas si aún no.
- Agregue la dirección IP del cliente al firewall mediante estos pasos para asegurarse de que podemos establecer una conexión correcta. Seleccione Agregar la dirección IPv4 de cliente o agregue una regla de firewall.
En este momento, ha configurado su base de datos SQL de Azure y está listo para conectarse desde su código de C++ ejecutado en la estación de trabajo.
Sugerencia
Agregar la dirección IP de la estación de trabajo del cliente al firewall de red pública es aceptable para una configuración temporal de laboratorio o aprendizaje, pero para una solución empresarial o un proyecto de larga duración, siga estos procedimientos recomendados de seguridad:
- Establezca Permitir que los servicios y recursos de Azure accedan a este servidor en DESACTIVADO en el nivel de servidor.
- Utilice puntos de conexión de servicio de red virtual y reglas de firewall de red virtual.
- Usar vínculo privado.
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 SQL básicos 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 tiene una disponible, puede configurarla rápidamente mediante máquinas virtuales linux de Azure y una variedad de métodos de implementación.
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 -> ->Administrador de conexiones multiplataforma>, agregue una conexión al cuadro 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 la API ODBC SQLAllocHandle
, SQLSetConnectAttr
y SQLDriverConnect
, puede inicializar y establecer una conexión con su base de datos.
Al igual que con el ejemplo de ODBC de Windows, debe reemplazar la llamada a SQLDriverConnect
por los detalles de los parámetros de cadena de conexión de la base de datos copiados anteriormente de 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);
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 GetStarted
solución 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.