SQLDescribeCol
Bei ausgeführten Anweisungen muss der SQL Server Native Client ODBC-Treiber den Server nicht abfragen, um Spalten in einem Resultset zu beschreiben. In diesem Fall SQLDescribeCol
verursacht kein Server roundtrip. Wie SQLColAttribute generiert das Aufrufen SQLDescribeCol
von vorbereiteten, aber nicht ausgeführten Anweisungen einen Server-Roundtrip.
Wenn eine Transact-SQL-Anweisung oder ein Anweisungsbatch mehrere Ergebniszeilensätze zurückgibt, ist es möglich, dass eine Spalte, auf die von ordinal verwiesen wird, aus einer separaten Tabelle stammt oder auf eine völlig andere Spalte im Resultset verweist. SQLDescribeCol
sollte für jeden Satz aufgerufen werden. Wenn sich das Resultset ändert, sollte die Anwendung Datenwerte vor dem Abrufen von Zeilenergebnissen erneut binden. Weitere Informationen zum Behandeln mehrerer Resultset-Rückgaben 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.
Bei Datentypen mit großen 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 in der Datenbank-Engine ab SQL Server 2012 ermöglichen ES SQLDescribeCol, genauere Beschreibungen der erwarteten Ergebnisse zu erhalten. Diese genaueren Ergebnisse können sich von den Werten unterscheiden, die von SQLDescribeCol in früheren Versionen von SQL Server 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- und 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 Large CLR User-Defined Types (ODBC).