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).