SQLDescribeCol

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Dla wykonanych instrukcji sterownik ODBC natywnego klienta SQL Server nie musi zapytywać serwera, aby opisać kolumny w zbiorze wyników. W tym przypadku SQLDescribeCol nie powoduje połączenia serwera w obie strony. Podobnie jak SQLColAttribute i SQLNumResultCols, wywołanie SQLDescribeCol na przygotowanych, ale niewykonanych instrukcjach generuje serwer w obie strony.

Gdy Transact-SQL polecenie lub partia instrukcji zwraca wiele zestawów wierszy wyników, możliwe jest, że kolumna, do której odwołano się za pomocą liczby porządkowej, pochodzi z osobnej tabeli lub odnosi się do zupełnie innej kolumny w zbiorze wyników. SQLDescribeCol powinien być wywołany dla każdego zestawu. Gdy zbiór wyników się zmienia, aplikacja powinna ponownie przypisać wartości danych przed pobraniem wyników wiersza. Więcej informacji o obsłudze wielu zwrotów zestawów wyników można znaleźć w SQLMoreResults.

Atrybuty kolumn są raportowane tylko dla pierwszego zbioru wyników, gdy wiele zestawów wyników jest generowanych przez przygotowaną partię instrukcji SQL.

Dla typów danych o dużej wartości wartość zwracana w DataTypePtr to SQL_VARCHAR, SQL_VARBINARY lub SQL_NVARCHAR. Wartość SQL_SS_LENGTH_UNLIMITED w ColumnSizePtr oznacza, że rozmiar jest "nieograniczony".

Ulepszenia silnika baz danych, począwszy od SQL Server 2012 (11.x), pozwalają SQLDescribeCol uzyskać dokładniejsze opisy oczekiwanych wyników. Te dokładniejsze wyniki mogą różnić się od wartości zwracanych przez SQLDescribeCol w poprzednich wersjach SQL Server. Więcej informacji można znaleźć w sekcji Metadata Discovery.

SQLDescribeCol Support for Enhanced Date and Time Features

Wartości zwracane dla typów dat/godzin są następujące:

Attribute DataTypePtr ColumnSizePtr DecimalDigitsPtr
data/godzina SQL_TYP_ZNACZNIKA_CZASU 23 3
smalldatetime SQL_TYP_ZNACZNIKA_CZASU 16 0
date SQL_TYPE_DATE 10 0
time SQL_SS_TIME2 8, 10..16 0..7
datetime2 SQL_TYP_ZNACZNIKA_CZASU 19, 21..27 0..7
datetimeoffset SQL_SS_TIMESTAMPOFFSET 26, 28..34 0..7

Aby uzyskać więcej informacji, zobacz ulepszenia daty i godziny (ODBC).

SQLDescribeCol Support for Large CLR UDT

SQLDescribeCol obsługuje duże typy CLR zdefiniowane przez użytkownika (UDT). Aby uzyskać więcej informacji, zobacz large CLR User-Defined Types (ODBC).