SQLDescribeCol
Para instruções executadas, o driver ODBC do SQL Server Native Client não precisa consultar o servidor para descrever colunas em um conjunto de resultados. Nesse caso, o SQLDescribeCol não causa uma viagem de ida e volta ao servidor. Como SQLColAttributeeSQLNumResultCols, chamar SQLDescribeCol em instruções preparadas mas não executadas gera uma viagem de ida e volta ao servidor.
Quando uma instrução ou um lote de instruções do Transact-SQL retorna vários conjuntos de linha de resultado, é possível para uma coluna referenciada por ordinal ser originada em uma tabela separada ou consultar uma coluna inteiramente 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 resultado, consulte SQLMoreResults.
O driver ODBC do SQL Server Native Client usa a instrução SET FMTONLY para reduzir a sobrecarga de servidor quando SQLDescribeCol é chamado para instruções preparadas porém não executadas. 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".
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 Aprimoramentos de data/hora (ODBC).
Suporte de SQLDescribeCol para CLR UDTs grandes
SQLDescribeCol dá suporte a tipos de dados CLR grandes definidos pelo usuário. Para obter mais informações, consulte Tipos de dados CLR grandes definidos pelo usuário (ODBC).
Consulte também