Crear una aplicación de controlador

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Importante

SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). 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. Cambie al nuevo controlador OLE DB de Microsoft (MSOLEDBSQL) para SQL Server o al controlador ODBC de Microsoft ODBC Driver for SQL Server más reciente de ahora en adelante. Para SQLNCLI que se incluye como componente de SQL Server motor de base de datos (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, incluidos el controlador ODBC SQL Server Native Client, ofrecen extensiones ODBC específicas del controlador. Para aprovechar SQL Server Native Client extensiones específicas del controlador ODBC, una aplicación debe incluir el archivo de encabezado sqlncli.h. Este archivo de encabezado incluye:

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

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

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

  • SQL Server tipos de datos específicos.

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

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

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

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

  • 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 del SQL Server deben estar en las rutas 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, vea referencia del programador de ODBC.

En esta sección

Consulte también

SQL Server Native Client (ODBC)