Compartir a través de


SQLDescribeCol

En el caso de las instrucciones ejecutadas, el controlador ODBC de SQL Server Native Client no necesita consultar al servidor para describir las columnas de un conjunto de resultados. En este caso, SQLDescribeCol no causa un recorrido de ida y vuelta del servidor. Al igual que SQLColAttribute, llamar a SQLDescribeCol instrucciones preparadas pero no ejecutadas genera un recorrido de ida y vuelta del 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. SQLDescribeCol se debe llamar a 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 gran valor, 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 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:

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 CLR definidos por el usuario (UDT) grandes. Para obtener más información, vea Tipos de User-Defined CLR grandes (ODBC).

Consulte también

SQLDescribeCol (función)
ODBC API Implementation Details