Compartir vía


Crear una aplicación de controlador

Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)

Importante

SQL Server Native Client (SNAC) no se incluye con:

  • SQL Server 2022 (16.x) y posterior
  • SQL Server Management Studio 19 y versiones posteriores

No se recomienda SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft heredado para SQL Server (SQLOLEDB) para el desarrollo de nuevas aplicaciones.

En el caso de los proyectos nuevos, use uno de los siguientes controladores:

Para SQLNCLI que se incluye como componente de motor de base de datos de SQL Server (versiones 2012 a 2019), consulte esta excepción de ciclo de vida de soporte técnico.

La arquitectura de ODBC tiene cuatro componentes que se encargan de realizar las funciones siguientes.

Componente Función
Application Llama a las funciones ODBC para comunicarse con un origen de datos ODBC, envía instrucciones SQL y procesa los conjuntos de resultados.
Administrador de controladores Administra la comunicación entre una aplicación y todos los controladores ODBC usados por la aplicación.
Controlador Procesa todas las llamadas de función ODBC desde la aplicación, se conecta a un origen de datos, pasa instrucciones SQL de la aplicación al origen de datos y devuelve resultados a la aplicación. Si es necesario, el controlador traduce el SQL de ODBC de la aplicación al SQL nativo usado por el origen de datos.
Origen de datos Contiene toda la información que un controlador necesita para obtener acceso a una determinada instancia de datos en un DBMS.

Una aplicación que usa el controlador ODBC de SQL Server Native Client para comunicarse con una instancia de SQL Server realiza las siguientes tareas:

  • Se conecta con un origen de datos.

  • Envía instrucciones SQL al origen de datos.

  • Procesa los resultados de las instrucciones desde el origen de datos.

  • Procesa errores y mensajes.

  • Termina la conexión con el origen de datos.

Una aplicación más compleja escrita para el controlador ODBC de SQL Server Native Client también puede realizar las siguientes tareas:

  • Usar cursores para controlar la ubicación en un conjunto de resultados.

  • Solicitar operaciones de confirmación o reversión para el control de transacciones.

  • Realizar transacciones distribuidas que impliquen dos o más servidores.

  • Ejecutar procedimientos almacenados en el servidor remoto.

  • Llamar a funciones de catálogo para realizar consultas sobre los atributos de un conjunto de resultados.

  • Realizar operaciones de copia masiva.

  • Administración de operaciones de datos grandes (varchar(max), nvarchar(max)y varbinary(max)

  • Usar la lógica de reconexión para facilitar la conmutación por error al configurar la creación de reflejo de la base de datos.

  • Registrar datos de rendimiento y consultas de ejecución prolongada.

Para realizar llamadas a funciones ODBC, una aplicación C o C++ debe incluir los archivos de encabezado sql.h, sqlext.h y sqltypes.h. Para realizar llamadas a las funciones API del instalador ODBC, una aplicación debe incluir el archivo de encabezado odbcinst.h. Una aplicación ODBC Unicode debe incluir el archivo de encabezado sqlucode.h. Las aplicaciones ODBC deben estar vinculadas al archivo odbc32.lib. Las aplicaciones ODBC que llaman a las funciones API del instalador ODBC deben estar vinculadas al archivo odbccp32.lib. Estos archivos se incluyen en Windows Platform SDK.

Muchos controladores ODBC, incluido el controlador ODBC de SQL Server Native Client, ofrecen extensiones ODBC específicas del controlador. Para aprovechar las extensiones específicas del controlador ODBC de SQL Server Native Client, una aplicación debe incluir el archivo de encabezado sqlncli.h. Este archivo de encabezado incluye:

  • Atributos de conexión específicos del controlador ODBC de SQL Server Native Client.

  • Atributos de instrucción específicos del controlador ODBC de SQL Server Native Client.

  • Atributos de columna específicos del controlador ODBC de SQL Server Native Client.

  • Tipos de datos específicos de SQL Server.

  • Tipos de datos definidos por el usuario específicos de SQL Server.

  • Tipos SQLGetInfo específicos del controlador ODBC de SQL Server Native Client.

  • Campos de diagnóstico del controlador ODBC de SQL Server Native Client.

  • Códigos de función dinámica de diagnóstico específicos de SQL Server.

  • Definiciones de tipos de C/C++ para tipos de datos de C nativos específicos de SQL Server (devueltos cuando las columnas enlazadas al tipo de datos de C SQL_C_BINARY).

  • Definición de tipo para la estructura de datos SQLPERF.

  • Prototipos y macros de copia masiva para admitir el uso de la API de copia masiva a través de una conexión ODBC.

  • Llame a las funciones API de metadatos de consulta distribuida para obtener listas de servidores vinculados y sus catálogos.

Cualquier aplicación ODBC de C o C++ que use la característica de copia masiva del controlador ODBC de SQL Server Native Client debe estar vinculada con el archivo sqlncli11.lib. Las aplicaciones que llaman a las funciones API de metadatos de consulta distribuida también deben vincularse a sqlncli11.lib. Los archivos sqlncli.h y sqlncli11.lib se distribuyen como parte de las herramientas del desarrollador de SQL Server. Los directorios Include y Lib de SQL Server deben estar en las rutas de acceso INCLUDE y LIB del compilador, como se muestra a continuación:

LIB=c:\Program Files\Microsoft Data Access SDK 2.8\Libs\x86\lib;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Lib;  
INCLUDE=c:\Program Files\Microsoft Data Access SDK 2.8\inc;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Include;  

Una decisión de diseño que se realiza al principio del proceso de generación de una aplicación es si la aplicación necesita tener varias llamadas ODBC pendientes al mismo tiempo. Hay dos métodos para admitir varias llamadas ODBC simultáneas, que se describen en los temas restantes en esta sección. Para obtener más información, consulte la Referencia del programador ODBC.

En esta sección

Consulte también

SQL Server Native Client (ODBC)