SQLColAttribute

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Du kan använda SQLColAttribute för att hämta ett attribut i en resultatuppsättningskolumn för antingen förberedda eller exekverade ODBC-satser. Att anropa SQLColAttribute på förberedda satser orsakar en rundresa till SQL Server. SQL Server Native Client ODBC-drivrutinen tar emot resultatuppsättningskolumndata som en del av satsexekveringen, så att anropa SQLColAttribute efter att SQLExecute eller SQLExecDirect slutförts innebär inte en serverrunda.

Note

ODBC:s kolumnidentifierarattribut finns inte tillgängliga på alla SQL Server-resultatuppsättningar.

Fältidentifierare Description
SQL_COLUMN_TABLE_NAME Tillgänglig på resultatuppsättningar hämtade från satser som genererar servermarkörer eller på exekverade SELECT-satser som innehåller en FOR BROWSE-klausul.
SQL_DESC_BASE_COLUMN_NAME Tillgänglig på resultatuppsättningar hämtade från satser som genererar servermarkörer eller på exekverade SELECT-satser som innehåller en FOR BROWSE-klausul.
SQL_DESC_BASE_TABLE_NAME Tillgänglig på resultatuppsättningar hämtade från satser som genererar servermarkörer eller på exekverade SELECT-satser som innehåller en FOR BROWSE-klausul.
SQL_DESC_CATALOG_NAME Databasnamn. Tillgänglig på resultatuppsättningar hämtade från satser som genererar servermarkörer eller på exekverade SELECT-satser som innehåller en FOR BROWSE-klausul.
SQL_DESC_LABEL Tillgänglig på alla resultatuppsättningar. Värdet är identiskt med värdet på SQL_DESC_NAME fältet.

Fältet är noll längd endast om en kolumn är resultatet av ett uttryck och uttrycket inte innehåller någon etiketttilldelning.
SQL_DESC_NAME Tillgänglig på alla resultatuppsättningar. Värdet är identiskt med värdet på SQL_DESC_LABEL fältet.

Fältet är noll längd endast om en kolumn är resultatet av ett uttryck och uttrycket inte innehåller någon etiketttilldelning.
SQL_DESC_SCHEMA_NAME Ägarens namn. Tillgänglig på resultatuppsättningar hämtade från satser som genererar servermarkörer eller på exekverade SELECT-satser som innehåller en FOR BROWSE-klausul.

Tillgänglig endast om ägarnamnet anges för kolumnen i SELECT-satsen.
SQL_DESC_TABLE_NAME Tillgänglig på resultatuppsättningar hämtade från satser som genererar servermarkörer eller på exekverade SELECT-satser som innehåller en FOR BROWSE-klausul.
SQL_DESC_UNNAMED SQL_NAMED för alla kolumner i en resultatmängd om inte en kolumn är resultatet av ett uttryck som inte innehåller en etiketttilldelning som en del av uttrycket. När SQL_DESC_UNNAMED returnerar SQL_UNNAMED innehåller alla ODBC-kolumnidentifierarattribut strängar med nolllängd för kolumnen.

SQL Server Native Client ODBC-drivrutin använder satsen SET FMTONLY för att minska serveröverhead när SQLColAttribute anropas för förberedda men oexekverade satser.

För stora värdetyper kommer SQLColAttribute att returnera följande värden:

Fältidentifierare Beskrivning av ändring
SQL_DESC_DISPLAY_SIZE Detta är det maximala antalet tecken som krävs för att visa data från kolumnen. För kolumner med stora värdetyper är det returnerade värdet SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_LENGTH Returnerar den faktiska längden på kolumnen i resultatmängden. För kolumner med stora värdetyper är det returnerade värdet SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_OCTET_LENGTH Returnerar maximal längd på en kolumn av stor värdetyp. SQL_SS_LENGTH_UNLIMITED används för att ange obegränsad storlek.
SQL_DESC_PRECISION Returnerar värdet SQL_SS_LENGTH_UNLIMITED för kolumner med stora värdetyper.
SQL_DESC_TYPE Avkastning SQL_VARCHAR, SQL_WVARCHAR och SQL_VARBINARY för stora värdetyper.
SQL_DESC_TYPE_NAME Returnerar "varchar", "varbinary", "nvarchar" för de stora värdetyperna.

För alla versioner rapporteras kolumnattribut endast för den första resultatuppsättningen när flera resultatuppsättningar genereras av en förberedd batch av SQL-satser.

Följande kolumnattribut är tillägg som exponeras av SQL Server Native Client ODBC-drivrutinen. SQL Server Native Client ODBC-drivrutinen returnerar alla värden i parametern NumericAttrPtr. Värdena returneras som SDWORD (signerad lång) utom SQL_CA_SS_COMPUTE_BYLIST, som är en pekare till en WORD-array.

Fältidentifierare Returnerat värde
SQL_CA_SS_COLUMN_HIDDEN* SANT om kolumnen som refereras till är en del av en dold primärnyckel skapad för att stödja ett Transact-SQL SELECT-uttalande som innehåller FOR BROWSE.
SQL_CA_SS_COLUMN_ID Ordinal position för en COMPUTE-klausulresultatkolumn inom den aktuella Transact-SQL SELECT-satsen.
SQL_CA_SS_COLUMN_KEY* TRUE om kolumnen som refereras till är en del av en primärnyckel för raden och Transact-SQL SELECT-satsen innehåller FOR BROWSE.
SQL_CA_SS_COLUMN_OP Heltal som specificerar den aggregerade operatorn som ansvarar för värdet i en COMPUTE-klausulkolumn. Definitioner av heltalsvärdena finns i sqlncli.h.
SQL_CA_SS_COLUMN_ORDER Ordinala positionen för kolumnen inom en ODBC- eller Transact-SQL SELECT-satsens ORDER BY-sats.
SQL_CA_SS_COLUMN_SIZE Maximal längd, i byte, krävs för att binda ett datavärde hämtat från kolumnen till en SQL_C_BINARY variabel.
SQL_CA_SS_COLUMN_SSTYPE Inbyggd datatyp lagrad i kolumnen SQL Server. Definitioner av typvärdena finns i sqlncli.h.
SQL_CA_SS_COLUMN_UTYPE Basdatatypen för SQL Server-kolumnens användardefinierade datatyp. Definitioner av typvärdena finns i sqlncli.h.
SQL_CA_SS_COLUMN_VARYLEN SANT om kolumnens data kan variera i längd, FALSKT annars.
SQL_CA_SS_COMPUTE_BYLIST Peka på en array av WORD (osignerad kort) som specificerar kolumnerna som används i BY-frasen i en COMPUTE-klausul. Om COMPUTE-klausulen inte specificerar en BY-fras returneras en NULL-pekare.

Det första elementet i matrisen innehåller antalet BY-listkolumner. Ytterligare element är kolumnordningstal.
SQL_CA_SS_COMPUTE_ID computeid av en rad som är resultatet av en COMPUTE-klausul i den aktuella Transact-SQL SELECT-satsen.
SQL_CA_SS_NUM_COMPUTES Antal COMPUTE-klausuler specificerade i det aktuella Transact-SQL SELECT-satsen.
SQL_CA_SS_NUM_ORDERS Antal kolumner specificerade i en ODBC- eller Transact-SQL SELECT-satsens ORDER BY-klausul.

* Tillgänglig om satsattributet SQL_SOPT_SS_HIDDEN_COLUMNS är satt till SQL_HC_ON.

SQL Server 2005 (9.x) introducerade drivrutinsspecifika deskriptorfält för att tillhandahålla ytterligare information för att ange XML-schemasamlingens namn, schemanamnet respektive katalognamnet. Dessa egenskaper kräver inga citattecken eller ett escape-tecken om de innehåller icke-alfanumeriska tecken. Följande tabell listar dessa nya beskrivarfält:

Kolumnnamn Type Description
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME CharacterAttributePtr Namnet på katalogen där namnet på en XML-schemasamling definieras. Om katalognamnet inte kan hittas innehåller denna variabel en tom sträng.

Denna information returneras från IRD:ns SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME postfält, vilket är ett läs-skrivfält.
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E CharacterAttributePtr Namnet på schemat där namnet på en XML-schemasamling definieras. Om schemanamnet inte kan hittas innehåller denna variabel en tom sträng.

Denna information returneras från IRD:ns SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME postfält, som är ett läs-skrivfält.
SQL_CA_SS_XML_SCHEMACOLLECTION_NAME CharacterAttributePtr Namnet på en XML-schemasamling. Om namnet inte kan hittas innehåller denna variabel en tom sträng.

Denna information returneras från IRD:ns SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME postfält, som är ett läs-skrivfält.

Dessutom introducerade SQL Server 2005 (9.x) nya drivrutinsspecifika deskriptorfält för att tillhandahålla ytterligare information för antingen en användardefinierad typkolumn (UDT) i en resultatmängd eller en UDT-parameter för en lagrad prozedur eller parameteriserad fråga. Dessa egenskaper kräver inga citattecken eller ett escape-tecken om de innehåller icke-alfanumeriska tecken. Följande tabell listar dessa nya beskrivarfält:

Kolumnnamn Type Description
SQL_CA_SS_UDT_CATALOG_NAME CharacterAttributePtr Namnet på katalogen som innehåller UDT.
SQL_CA_SS_UDT_SCHEMA_NAME CharacterAttributePtr Namnet på schemat som innehåller UDT.
SQL_CA_SS_UDT_TYPE_NAME CharacterAttributePtr Namnet på UDT.
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME CharacterAttributePtr Församlingens namn på UDT.

Den befintliga beskrivande fältidentifieraren SQL_DESC_TYPE_NAME används för att ange namnet på UDT. Det SQL_DESC_TYPE fältet för en kolumn av UDT-typ är SQL_SS_UDT.

SQLColAttribut-stöd för förbättrade datum- och tidfunktioner

För de värden som returneras för datum-/tidstyper, se avsnittet "Information returnerad i IRD-fält" i Parameter and Result Metadata.

För mer information, se Datum och Tid Förbättringar (ODBC).

SQLColAttribut-stöd för stora CLR UDT:er

SQLColAttribute stöder stora CLR-användardefinierade typer (UDT). För mer information, se Large CLR User-Defined Types (ODBC).

SQLColAttribut-stöd för glesa kolumner

SQLColAttribute frågar det nya fältet för implementation row descriptor (IRD), SQL_CA_SS_IS_COLUMN_SET, för att avgöra om en kolumn är en column_set kolumn.

För mer information, se Sparse Columns Support (ODBC).

Se även

SQLColAttribut-funktionen
Implementeringsinformation för ODBC API
SQLSetStmtAttr