Utilizar funciones de catálogo

Todas las bases de datos tienen una estructura que contiene los datos almacenados en la base de datos. Una definición de esta estructura, junto con otra información como permisos, está almacenada en un catálogo (se implementa como un conjunto de tablas del sistema), también conocido como diccionario de datos.

El controlador ODBC de SQL Server Native Client permite que una aplicación determine la estructura de base de datos a través de llamadas a funciones de catálogo de ODBC. Las funciones de catálogo devuelven información en conjuntos de resultados y se implementan utilizando procedimientos almacenados de catálogo para consultar las tablas del sistema en el catálogo. Por ejemplo, una aplicación puede solicitar un conjunto de resultados que contenga información sobre todas las tablas del sistema o todas las columnas de una tabla determinada. Las funciones de catálogo estándar de ODBC se utilizan para obtener información de catálogo del servidor SQL Server al que está conectada la aplicación.

SQL Server admite consultas distribuidas en las que se tiene acceso a datos de varios orígenes de datos OLE DB heterogéneos en una única consulta. Uno de los métodos para tener acceso a un origen de datos OLE DB remoto consiste en definir el origen de datos como un servidor vinculado. Esto se puede hacer utilizando sp_addlinkedserver. Una vez definido el servidor vinculado, se puede hacer referencia a los objetos de ese servidor en instrucciones Transact-SQL utilizando un nombre con cuatro partes:

nombre_servidor_vinculado.catálogo.esquema.nombre_objeto.

El controlador ODBC de SQL Server Native Client admite dos funciones específicas del controlador que ayudan a obtener información de catálogo de los servidores vinculados:

  • SQLLinkedServers

    Devuelve una lista de los servidores vinculados definidos para el servidor local.

  • SQLLinkedCatalogs

    Devuelve una lista de los catálogos incluidos en un servidor vinculado.

Cuando ya tenga un nombre de servidor vinculado y un nombre de catálogo, el controlador ODBC de SQL Server Native Client ODBC permite obtener información del catálogo usando el nombre de dos partes nombre_servidor_vinculado**.**catálogo para CatalogName en las siguientes funciones de catálogo de ODBC:

  • SQLColumnPrivileges

  • SQLColumns

  • SQLPrimaryKeys

  • SQLStatistics

  • SQLTablePrivileges

  • SQLTables

El nombre de dos partes nombre_servidor_vinculado**.**catálogo también es válido para FKCatalogName y PKCatalogName en SQLForeignKeys.

Para utilizar SQLLinkedServers y SQLLinkedCatalogs hacen falta los siguientes archivos:

  • sqlncli.h

    Incluye prototipos de función y definiciones de constante para las funciones de catálogo del servidor vinculado. Se debe haber incluido sqlncli.h en la aplicación ODBC y ha de estar en la ruta de inclusión cuando se compile la aplicación.

  • sqlncli10.lib

    Debe estar en la ruta de acceso de la biblioteca del vinculador y estar especificado como un archivo que se va a vincular. sqlncli10.lib se distribuye con el controlador ODBC de SQL Server Native Client.

  • sqlncli10.dll

    Debe estar presente en el momento de la ejecución. sqlncli10.dll se distribuye con el controlador ODBC de SQL Server Native Client.