Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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