Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Para instruções executadas, o driver ODBC do SQL Server Native Client não precisa de consultar o servidor para descrever colunas num conjunto de resultados. Neste caso, o SQLDescribeCol não causa uma viagem de ida e volta do servidor. Tal como SQLColAttribute e SQLNumResultCols, chamar SQLDescribeCol em instruções preparadas mas não executadas gera uma viagem de ida e volta ao servidor.
Quando uma instrução Transact-SQL ou um lote de instruções retorna múltiplos conjuntos de linhas de resultados, é possível que uma coluna, referenciada por ordinal, se origine numa tabela separada ou se refira a uma coluna totalmente diferente no conjunto de resultados. Deve ser chamado SQLDescribeCol para cada conjunto. Quando o conjunto de resultados muda, a aplicação deve reassociar os valores dos dados antes de recolher os resultados da linha. Para mais informações sobre como lidar com múltiplos retornos de conjuntos de resultados, consulte SQLMoreResults.
Os atributos de coluna são reportados apenas para o primeiro conjunto de resultados quando múltiplos conjuntos de resultados são gerados por um lote preparado de instruções SQL.
Para tipos de dados de grande valor, o valor devolvido em DataTypePtr é SQL_VARCHAR, SQL_VARBINARY ou SQL_NVARCHAR. Um valor de SQL_SS_LENGTH_UNLIMITED em ColumnSizePtr indica que o tamanho é "ilimitado".
As melhorias no motor de base de dados a partir do SQL Server 2012 (11.x) permitem ao SQLDescribeCol obter descrições mais precisas dos resultados esperados. Estes resultados mais precisos podem diferir dos valores devolvidos pelo SQLDescribeCol em versões anteriores do SQL Server. Para mais informações, consulte Descoberta de Metadados.
Suporte SQLDescribeCol para funcionalidades melhoradas de data e hora
Os valores devolvidos para os tipos de data/hora são os seguintes:
| 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 obter mais informações, consulte Melhorias de data e hora (ODBC).
SQLDescribeCol Suporte para grandes CLR UDTs
O SQLDescribeCol suporta grandes tipos CLR definidos pelo utilizador (UDTs). Para obter mais informações, consulte Large CLR User-Defined Types (ODBC).