Share via


Metadatos de parámetros con valores de tabla adicionales

Cuando las aplicaciones necesitan recuperar metadatos de parámetros con valores de tabla, llaman a SQLProcedureColumns. Para un parámetro con valores de tabla, SQLProcedureColumns devuelve una fila única. Se han agregado dos columnas específicas de SQL Server adicionales, SS_TYPE_CATALOG_NAME y SS_TYPE_SCHEMA_NAME, para proporcionar información de esquema y catálogo para los tipos de tabla asociados a parámetros con valores de tabla. De acuerdo con la especificación ODBC, SS_TYPE_CATALOG_NAME y SS_TYPE_SCHEMA_NAME aparecen antes de todas las columnas específicas del controlador agregadas en versiones anteriores de SQL Server y después de todas las columnas asignadas por el propio ODBC.

En la tabla siguiente se enumeran las columnas que son significativas para los parámetros con valores de tabla.

Nombre de la columna

Tipo de datos

Valor/comentarios

DATA_TYPE

Smallint no NULL

SQL_SS_TABLE

TYPE_NAME

WVarchar (128) no NULL

El nombre del tipo del parámetro con valores de tabla.

COLUMN_SIZE

Integer

NULL

BUFFER_LENGTH

Integer

0

DECIMAL_DIGITS

Smallint

NULL

NUM_PREC_RADIX

Smallint

NULL

NULLABLE

Smallint no NULL

SQL_NULLABLE

REMARKS

Varchar

NULL

COLUMN_DEF

WVarchar(4000)

NULL

SQL_DATA_TYPE

Smallint no NULL

SQL_SS_TABLE

SQL_DATETIME_SUB

Smallint

NULL

CHAR_OCTET_LENGTH

Integer

NULL

ORDINAL_POSITION

Integer no NULL

La posición ordinal del parámetro.

IS_NULLABLE

Varchar

"YES"

SS_TYPE_CATALOG_NAME

WVarchar (128) no NULL

El catálogo que contiene la definición del tipo de tabla del parámetro con valores de tabla.

SS_TYPE_SCHEMA_NAME

WVarchar (128) no NULL

El esquema que contiene la definición del tipo de tabla del parámetro con valores de tabla.

Las columnas WVarchar se definen como Varchar en la especificación de ODBC, pero realmente se devuelven como WVarchar en todos los controladores ODBC de SQL Server recientes. Este cambio se realizó cuando se agregó la compatibilidad con Unicode a la especificación de ODBC 3.5, pero no se declaró de forma explícita.

Para obtener metadatos adicionales para los parámetros con valores de tabla, la aplicación utiliza las funciones de catálogo SQLColumns y SQLPrimaryKeys. Antes de llamar a estas funciones para los parámetros con valores de tabla, la aplicación debe establecer el atributo SQL_SOPT_SS_NAME_SCOPE de la instrucción en SQL_SS_NAME_SCOPE_TABLE_TYPE. Este valor indica que la aplicación necesita metadatos para un tipo de tabla en lugar de una tabla real. A continuación, la aplicación pasa el TYPE_NAME del parámetro con valores de tabla como el parámetro TableName. SS_TYPE_CATALOG_NAME y SS_TYPE_SCHEMA_NAME se utilizan con los parámetros SchemaName y CatalogName respectivamente para identificar el catálogo y el esquema para el parámetro con valores de tabla. Cuando una aplicación ha terminado de recuperar los metadatos para los parámetros con valores de tabla, debe volver a establecer SQL_SOPT_SS_NAME_SCOPE en su valor predeterminado de SQL_SS_NAME_SCOPE_TABLE.

Si SQL_SOPT_SS_NAME_SCOPE está establecido en SQL_SS_NAME_SCOPE_TABLE, no es posible realizar las consultas a los servidores vinculados. Las llamadas a SQLColumns o SQLPrimaryKeys con un catálogo que contenga un componente del servidor no podrán realizarse.