Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können SQLColAttribute zum Abrufen eines Attributs aus einer Resultsetspalte für vorbereitete oder ausgeführte ODBC-Anweisungen verwenden. Wenn Sie SQLColAttribute für vorbereitete Anweisungen aufrufen, wird ein Roundtrip zu SQL Server erzeugt. Der SQL Server Native Client ODBC-Treiber erhält Resultset-Spaltendaten als Teil der Anweisungsausführung, deshalb wird beim Aufrufen von SQLColAttribute nach dem Beenden von SQLExecute oder SQLExecDirect kein Server-Roundtrip erzeugt.
Hinweis |
|---|
ODBC-Spaltenbezeichnerattribute sind nicht für alle SQL Server-Resultsets verfügbar. |
Feldbezeichner |
Beschreibung |
|---|---|
SQL_COLUMN_TABLE_NAME |
Verfügbar für Resultsets, die aus Anweisungen abgerufen wurden, die Servercursor erzeugen, oder für ausgeführte SELECT-Anweisungen, die eine FOR BROWSE-Klausel enthalten. |
SQL_DESC_BASE_COLUMN_NAME |
Verfügbar für Resultsets, die aus Anweisungen abgerufen wurden, die Servercursor erzeugen, oder für ausgeführte SELECT-Anweisungen, die eine FOR BROWSE-Klausel enthalten. |
SQL_DESC_BASE_TABLE_NAME |
Verfügbar für Resultsets, die aus Anweisungen abgerufen wurden, die Servercursor erzeugen, oder für ausgeführte SELECT-Anweisungen, die eine FOR BROWSE-Klausel enthalten. |
SQL_DESC_CATALOG_NAME |
Der Datenbankname. Verfügbar für Resultsets, die aus Anweisungen abgerufen wurden, die Servercursor erzeugen, oder für ausgeführte SELECT-Anweisungen, die eine FOR BROWSE-Klausel enthalten. |
SQL_DESC_LABEL |
Für alle Resultsets verfügbar. Der Wert ist mit dem Wert des SQL_DESC_NAME-Felds identisch. Das Feld hat nur dann die Länge Null, wenn die Spalte das Ergebnis eines Ausdrucks ist und der Ausdruck keine zugeordnete Bezeichnung hat. |
SQL_DESC_NAME |
Für alle Resultsets verfügbar. Der Wert ist mit dem Wert des SQL_DESC_LABEL-Felds identisch. Das Feld hat nur dann die Länge Null, wenn die Spalte das Ergebnis eines Ausdrucks ist und der Ausdruck keine zugeordnete Bezeichnung hat. |
SQL_DESC_SCHEMA_NAME |
Der Name des Besitzers. Verfügbar für Resultsets, die aus Anweisungen abgerufen wurden, die Servercursor erzeugen, oder für ausgeführte SELECT-Anweisungen, die eine FOR BROWSE-Klausel enthalten. Nur verfügbar, wenn der Besitzername für die Spalte in der SELECT-Anweisung angegeben wird. |
SQL_DESC_TABLE_NAME |
Verfügbar für Resultsets, die aus Anweisungen abgerufen wurden, die Servercursor erzeugen, oder für ausgeführte SELECT-Anweisungen, die eine FOR BROWSE-Klausel enthalten. |
SQL_DESC_UNNAMED |
SQL_NAMED für alle Spalten in einem Resultset, es sei denn, die Spalte ist das Ergebnis eines Ausdrucks, der keine zugeordnete Bezeichnung als Teil des Ausdrucks hat. Wenn SQL_DESC_UNNAMED SQL_UNNAMED zurückgibt, enthalten alle ODBC-Spaltenbezeichnerattribute leere Zeichenfolgen für die Spalte. |
Der SQL Server Native Client ODBC-Treiber verwendet die SET FMTONLY-Anweisung, um den Serveraufwand zu verringern, wenn SQLColAttribute für vorbereitete, aber noch nicht ausgeführte Anweisungen aufgerufen wird.
Für große Werttypen gibt SQLColAttribute die folgenden Werte zurück:
Feldbezeichner |
Beschreibung der Änderung |
|---|---|
SQL_DESC_DISPLAY_SIZE |
Die maximale Anzahl von Zeichen, die für das Anzeigen der Spaltendaten benötigt wird. Für große Werttypspalten ist der zurückgegebene Wert SQL_SS_LENGTH_UNLIMITED. |
SQL_DESC_LENGTH |
Gibt die tatsächliche Länge der Spalte im Resultset zurück. Für große Werttypspalten ist der zurückgegebene Wert SQL_SS_LENGTH_UNLIMITED. |
SQL_DESC_OCTET_LENGTH |
Gibt die maximal mögliche Länge für große Werttypspalten zurück. SQL_SS_LENGTH_UNLIMITED wird verwendet, um unbegrenzte Größe anzugeben. |
SQL_DESC_PRECISION |
Gibt den Wert SQL_SS_LENGTH_UNLIMITED für große Werttypspalten zurück. |
SQL_DESC_TYPE |
Gibt SQL_VARCHAR, SQL_WVARCHAR und SQL_VARBINARY für große Werttypen zurück. |
SQL_DESC_TYPE_NAME |
Gibt "varchar", "varbinary" und "nvarchar" für große Werttypen zurück. |
Für alle Versionen werden Spaltenattribute nur für das erste Resultset gemeldet, wenn durch einen vorbereiteten Stapel von SQL-Anweisungen mehrere Resultsets erzeugt werden.
Die folgenden Spaltenattribute sind Erweiterungen, die vom SQL Server Native Client ODBC-Treiber verfügbar gemacht werden. Der SQL Server Native Client ODBC-Treiber gibt alle Werte im NumericAttrPtr-Parameter zurück. Die Werte werden als SDWORD (lang mit Vorzeichen) zurückgegeben, außer SQL_CA_SS_COMPUTE_BYLIST, bei dem es sich um einen Zeiger auf ein WORD-Array handelt.
Feldbezeichner |
Rückgabewert |
|---|---|
SQL_CA_SS_COLUMN_HIDDEN* |
TRUE, falls die referenzierte Spalte Teil eines verborgenen Primärschlüssels ist, der zur Unterstützung einer Transact-SQL SELECT-Anweisung erstellt wurde, die FOR BROWSE enthält. |
SQL_CA_SS_COLUMN_ID |
Ordnungsposition einer COMPUTE-Klausel-Ergebnisspalte innerhalb der aktuellen Transact-SQL SELECT-Anweisung. |
SQL_CA_SS_COLUMN_KEY* |
TRUE, falls die referenzierte Spalte Teil eines Primärschlüssels für die Zeile ist und die Transact-SQL SELECT-Anweisung FOR BROWSE enthält. |
SQL_CA_SS_COLUMN_OP |
Ganze Zahl, die den Aggregatoperator angibt, der für den Wert in einer COMPUTE-Klauselspalte verantwortlich ist. Die ganzzahligen Werte sind in sqlncli.h definiert. |
SQL_CA_SS_COLUMN_ORDER |
Ordnungsposition der Spalte innerhalb der ORDER BY-Klausel einer ODBC- oder Transact-SQL SELECT-Anweisung. |
SQL_CA_SS_COLUMN_SIZE |
Maximale Länge in Byte, die zum Binden eines aus der Spalte abgerufenen Datenwerts an eine SQL_C_BINARY-Variable erforderlich ist. |
SQL_CA_SS_COLUMN_SSTYPE |
Systemeigener Datentyp der Daten, die in der SQL Server-Spalte gespeichert sind. Die Typwerte sind in sqlncli.h definiert. |
SQL_CA_SS_COLUMN_UTYPE |
Basisdatentyp des benutzerdefinierten Datentyps der SQL Server-Spalte. Die Typwerte sind in sqlncli.h definiert. |
SQL_CA_SS_COLUMN_VARYLEN |
TRUE, wenn sich die Länge der Spaltendaten ändern kann, andernfalls FALSE. |
SQL_CA_SS_COMPUTE_BYLIST |
Zeiger auf ein WORD-Array (kurz ohne Vorzeichen) zur Angabe der Spalten, die im BY-Ausdruck einer COMPUTE-Klausel verwendet werden. Wenn die COMPUTE-Klausel keinen BY-Ausdruck angibt, wird ein NULL-Zeiger zurückgegeben. Das erste Element des Arrays enthält die Anzahl der BY-Listenspalten. Zusätzliche Elemente sind die Spaltenordinalzahlen. |
SQL_CA_SS_COMPUTE_ID |
computeid einer Zeile, die das Ergebnis einer COMPUTE-Klausel in der aktuellen Transact-SQL SELECT-Anweisung ist. |
SQL_CA_SS_NUM_COMPUTES |
Anzahl von COMPUTE-Klauseln, die in der aktuellen Transact-SQL SELECT-Anweisung angegeben ist. |
SQL_CA_SS_NUM_ORDERS |
Anzahl von Spalten, die in der ORDER BY-Klausel einer ODBC- oder Transact-SQL SELECT-Anweisung angegeben ist. |
* Verfügbar, wenn Anweisungsattribut SQL_SOPT_SS_HIDDEN_COLUMNS auf SQL_HC_ON festgelegt ist.
In SQL Server 2005 wurden treiberspezifische Deskriptorfelder eingeführt, um zusätzliche Informationen zur Bezeichnung der XML-Schemaauflistung, des Schemanamens und des Katalognamens bereitzustellen. Diese Eigenschaften erfordern keine Anführungszeichen oder ein Escapezeichen, wenn sie nicht-alphanumerische Zeichen enthalten. In der folgenden Tabelle sind diese neuen Deskriptorfelder aufgelistet:
Spaltenname |
Typ |
Beschreibung |
|---|---|---|
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME |
CharacterAttributePtr |
Der Name des Katalogs, in dem eine XML-Schemaauflistung definiert ist. Wenn der Katalogname nicht gefunden werden kann, enthält diese Variable eine leere Zeichenfolge. Diese Informationen werden vom SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME-Datensatzfeld vom IRD zurückgegeben, das ein Lese-/Schreibfeld ist. |
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E |
CharacterAttributePtr |
Der Name des Schemas, in dem eine XML-Schemaauflistung definiert ist. Wenn der Schemaname nicht gefunden werden kann, enthält diese Variable eine leere Zeichenfolge. Diese Informationen werden vom SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME-Datensatzfeld vom IRD zurückgegeben, das ein Lese-/Schreibfeld ist. |
SQL_CA_SS_XML_SCHEMACOLLECTION_NAME |
CharacterAttributePtr |
Name der XML-Schemaauflistung. Wenn der Name nicht gefunden werden kann, enthält diese Variable eine leere Zeichenfolge. Diese Informationen werden vom SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME-Datensatzfeld vom IRD zurückgegeben, das ein Lese-/Schreibfeld ist. |
Außerdem wurden in SQL Server 2005 neue treiberspezifische Deskriptorfelder eingeführt, um zusätzliche Informationen für entweder einen benutzerdefinierten Spaltentyp (UDT) eines Resultsets oder für einen UDT-Parameter einer gespeicherten Prozedur oder einer parametrisierten Abfrage bereitzustellen. Diese Eigenschaften erfordern keine Anführungszeichen oder ein Escapezeichen, wenn sie nicht-alphanumerische Zeichen enthalten. In der folgenden Tabelle sind diese neuen Deskriptorfelder aufgelistet:
Spaltenname |
Typ |
Beschreibung |
|---|---|---|
SQL_CA_SS_UDT_CATALOG_NAME |
CharacterAttributePtr |
Der Name des Katalogs, der den UDT enthält. |
SQL_CA_SS_UDT_SCHEMA_NAME |
CharacterAttributePtr |
Der Name des Schemas, das den UDT enthält. |
SQL_CA_SS_UDT_TYPE_NAME |
CharacterAttributePtr |
Der Name des UDT. |
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME |
CharacterAttributePtr |
Der qualifizierte Name der UDT-Assembly. |
Der vorhandene Deskriptorfeldbezeichner SQL_DESC_TYPE_NAME wird verwendet, um den Namen des UDTs anzugeben. Das SQL_DESC_TYPE-Feld für eine UDT-Typspalte ist SQL_SS_UDT.
SQLColAttribute-Unterstützung für erweiterte Funktionen zu Datum und Uhrzeit
Informationen zu den für Datums-/Zeittypen zurückgegebenen Werten finden Sie im Abschnitt "In IRD-Feldern zurückgegebene Informationen" in Parameter- und Ergebnismetadaten.
Weitere Informationen finden Sie unter Datums-/Uhrzeitverbesserungen (ODBC).
SQLColAttribute-Unterstützung für große CLR-UDTs
SQLColAttribute unterstützt große benutzerdefinierte CLR-Typen (UDTs). Weitere Informationen finden Sie unter Große benutzerdefinierte CLR-Typen (ODBC).
SQLColAttribute-Unterstützung für Spalten mit geringer Dichte
SQLColAttribute fragt das neue IRD-Feld (Implementierungszeilendeskriptor) SQL_CA_SS_IS_COLUMN_SET ab, um zu bestimmen, ob eine Spalte eine column_set-Spalte ist.
Weitere Informationen finden Sie unter Unterstützung für Spalten mit geringer Dichte (ODBC).
Siehe auch
Konzepte
ODBC-API-Implementierungsdetails
Hinweis