SQLDescribeCol

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

En el caso de las instrucciones ejecutadas, el controlador ODBC de SQL Server Native Client no necesita consultar el servidor para describir las columnas de un conjunto de resultados. En este caso, SQLDescribeCol no provoca un recorrido de ida y vuelta de servidor. Al igual que SQLColAttribute y SQLNumResultCols, llamar a SQLDescribeCol en instrucciones preparadas pero no ejecutadas genera un recorrido de ida y vuelta de servidor.

Cuando un lote de instrucción o instrucción Transact-SQL devuelve varios conjuntos de filas de resultados, es posible que una columna, a la que hace referencia ordinal, se origine en una tabla independiente o haga referencia a una columna completamente diferente en el conjunto de resultados. Se debe llamar a SQLDescribeCol para cada conjunto. Cuando el conjunto de resultados cambie, la aplicación debe volver a enlazar los valores de datos antes de capturar los resultados de la fila. Para obtener más información sobre cómo administrar la devolución de varios conjuntos de resultados, vea SQLMoreResults.

Los atributos de columna solo se notifican para el primer conjunto de resultados cuando un lote preparado de instrucciones SQL genera varios conjuntos de resultados.

Para los tipos de datos de valores grandes, el valor devuelto en DataTypePtr es SQL_VARCHAR, SQL_VARBINARY o SQL_NVARCHAR. Un valor de SQL_SS_LENGTH_UNLIMITED en ColumnSizePtr indica que el tamaño es "ilimitado".

Las mejoras en el motor de base de datos a partir de SQL Server 2012 (11.x) permiten a SQLDescribeCol obtener descripciones más precisas de los resultados esperados. Estos resultados más precisos pueden diferir de los valores devueltos por SQLDescribeCol en versiones anteriores de SQL Server. Para obtener más información, vea Detección de metadatos.

SQLDescribeCol admite las características mejoradas de fecha y hora

Los valores devueltos para los tipos de fecha y hora son los siguientes:

Attribute DataTypePtr ColumnSizePtr DecimalDigitsPtr
datetime SQL_TYPE_TIMESTAMP 23 3
smalldatetime SQL_TYPE_TIMESTAMP 16 0
date SQL_TYPE_DATE 10 0
time SQL_SS_TIME2 8, 10..16 0..7
datetime2 SQL_TYPE_TIMESTAMP 19, 21..27 0..7
datetimeoffset SQL_SS_TIMESTAMPOFFSET 26, 28..34 0..7

Para obtener más información, vea Mejoras de fecha y hora (ODBC).

SQLDescribeCol admite tipos definidos por el usuario de CLR grandes

SQLDescribeCol admite tipos definidos por el usuario (UDT) clR grandes. Para obtener más información, vea Tipos definidos por el usuario (ODBC) clR grandes.

Consulte también

Función SQLDescribeCol
Detalles de implementación de la API de ODBC