SQLDescribeCol
Para instruções executadas, o SQL Server Native Client driver ODBC não precisa consultar o servidor para descrever colunas em um conjunto de resultados. Nesse caso, SQLDescribeCol
não causa uma viagem de ida e volta do servidor. Assim como SQLColAttribute, chamar SQLDescribeCol
instruções preparadas, mas não executadas, gera uma ida e volta do servidor.
Quando uma instrução Transact-SQL ou um lote de instrução retorna vários conjuntos de linhas de resultado, é possível que uma coluna, referenciada por ordinal, se origine em uma tabela separada ou se refira a uma coluna totalmente diferente no conjunto de resultados. SQLDescribeCol
deve ser chamado para cada conjunto. Quando o conjunto de resultados for alterado, o aplicativo deverá associar novamente os valores de dados antes de buscar os resultados da linha. Para obter mais informações sobre como manipular vários retornos de conjunto de resultados, consulte SQLMoreResults.
Os atributos de coluna são informados somente para o primeiro conjunto de resultados quando vários conjuntos são gerados por um lote preparado de instruções SQL.
Para tipos de dados de valor grande, o valor retornado em DataTypePtr é SQL_VARCHAR, SQL_VARBINARY ou SQL_NVARCHAR. Um valor de SQL_SS_LENGTH_UNLIMITED em ColumnSizePtr indica que o tamanho é "ilimitado".
Melhorias no mecanismo de banco de dados começando com SQL Server 2012 permitem que SQLDescribeCol obtenha descrições mais precisas dos resultados esperados. Esses resultados mais precisos podem ser diferentes dos valores retornados por SQLDescribeCol em versões anteriores do SQL Server. Para obter mais informações, veja Descoberta de metadados.
Suporte de SQLDescribeCol a recursos aprimorados de data e hora
Os valores retornados para tipos de data/hora são os seguintes:
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 obter mais informações, consulte Melhorias de data e hora (ODBC).
Suporte de SQLDescribeCol para CLR UDTs grandes
SQLDescribeCol
dá suporte a UDTs grandes do CLR. Para obter mais informações, consulte Tipos de User-Defined clr grandes (ODBC).