SQLDescribeCol
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Für ausgeführte Anweisungen muss der SQL Server Native Client ODBC-Treiber den Server nicht abfragen, um Spalten in einem Resultset zu beschreiben. In diesem Fall verursacht SQLDescribeCol kein Server-Roundtrip. Wie SQLColAttribute und SQLNumResultCols generiert das Aufrufen von SQLDescribeCol für vorbereitete, aber nicht ausgeführte Anweisungen ein 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, in 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 im Datenbankmodul ab SQL Server 2012 (11.x) ermöglichen SQLDescribeCol, genauere Beschreibungen der erwarteten Ergebnisse zu erhalten. Diese genaueren Ergebnisse können sich von den von SQLDescribeCol in früheren Versionen von SQL Server zurückgegebenen Werten unterscheiden. 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:
Attribut | 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)".