SQLDescribeCol
Bei ausgeführten Anweisungen muss der SQL Server Native Client ODBC-Treiber keine Serverabfrage durchführen, um die Anzahl der Spalten in einem Resultset zu beschreiben. In diesem Fall führt SQLDescribeCol keinen Server-Roundtrip herbei. Wie bei SQLColAttribute und SQLNumResultCols wird beim Aufrufen von SQLDescribeCol für vorbereitete, aber noch nicht ausgeführte Anweisungen ein Server-Roundtrip erstellt.
Wenn eine Transact-SQL-Anweisung oder ein Anweisungsstapel mehrere Resultsets für Zeilen zurückgibt, kann eine Spalte, auf die mit einer Ordnungszahl verwiesen wird, ihren Ursprung in einer separaten Tabelle haben oder auf eine vollständig andere Spalte im Resultset verweisen. SQLDescribeCol sollte für jeden Set aufgerufen werden. Wenn sich das Resultset ändert, sollte die Anwendung Datenwerte vor dem Abrufen von Zeilenergebnissen erneut binden. Weitere Informationen zum Arbeiten mit mehreren Resultsetergebnissen finden Sie unter SQLMoreResults.
Spaltenattribute werden nur für das erste Resultset gemeldet, wenn durch einen vorbereiteten Stapel von SQL-Anweisungen mehrere Resultsets erzeugt werden.
Für Datentypen mit umfangreichen Werten ist der in DataTypePtr zurückgegebene Wert SQL_VARCHAR, SQL_VARBINARY oder SQL_NVARCHAR. Ein Wert von SQL_SS_LENGTH_UNLIMITED in ColumnSizePtr gibt an, dass die Größe "unbegrenzt" ist.
Verbesserungen am Datenbankmodul ab SQL Server 2012 ermöglichen das Abrufen genauerer Beschreibungen der erwarteten Ergebnisse durch SQLDescribeCol. Diese genaueren Ergebnisse unterscheiden sich möglicherweise von den Werten, die in früheren Versionen von SQL Server von SQLDescribeCol zurückgegeben wurden. Weitere Informationen finden Sie unter Metadatenermittlung.
SQLDescribeCol-Unterstützung für erweiterte Funktionen für Datum und Uhrzeit
Die für Datums-/Uhrzeittypen zurückgegebenen Werte lauten wie folgt:
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 |
Weitere Informationen finden Sie unter Datums-/Uhrzeitverbesserungen (ODBC).
SQLDescribeCol-Unterstützung für große CLR-UDTs
SQLDescribeCol unterstützt große benutzerdefinierte CLR-Typen (UDTs). Weitere Informationen finden Sie unter Große benutzerdefinierte CLR-Typen (ODBC).
Siehe auch
Konzepte
ODBC-API-Implementierungsdetails