SQLColAttribute

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytický platformní systém (PDW)

Můžete použít SQLColAttribute k získání atributu sloupce výsledkové sady pro připravené nebo provedené ODBC příkazy. Volání SQLColAttribute na připravených příkazech způsobí okružní cestu do SQL Server. Nativní klientský ODBC ovladač SQL Server přijímá data sloupců výsledkové sady jako součást vykonávání příkazu, takže volání SQLColAttribute po dokončení SQLExecute nebo SQLExecDirect neznamená serverovou cestu tam a zpět.

Note

Atributy identifikátorů sloupců ODBC nejsou dostupné ve všech sadách výsledků SQL Server.

Identifikátor pole Description
SQL_COLUMN_TABLE_NAME Dostupné na sadách výsledků získaných z příkazů generujících serverové kurzory nebo na vykonaných příkazech SELECT obsahujících klauzuli FOR BROSVIEW.
SQL_DESC_BASE_COLUMN_NAME Dostupné na sadách výsledků získaných z příkazů generujících serverové kurzory nebo na vykonaných příkazech SELECT obsahujících klauzuli FOR BROSVIEW.
SQL_DESC_BASE_TABLE_NAME Dostupné na sadách výsledků získaných z příkazů generujících serverové kurzory nebo na vykonaných příkazech SELECT obsahujících klauzuli FOR BROSVIEW.
SQL_DESC_CATALOG_NAME Název databáze. Dostupné na sadách výsledků získaných z příkazů generujících serverové kurzory nebo na vykonaných příkazech SELECT obsahujících klauzuli FOR BROSVIEW.
SQL_DESC_LABEL Dostupné na všech sadách výsledků. Hodnota je totožná s hodnotou SQL_DESC_NAME pole.

Pole má nulovou délku pouze tehdy, pokud je sloupec výsledkem výrazu a výraz neobsahuje přiřazení štítků.
SQL_DESC_NAME Dostupné na všech sadách výsledků. Hodnota je totožná s hodnotou SQL_DESC_LABEL pole.

Pole má nulovou délku pouze tehdy, pokud je sloupec výsledkem výrazu a výraz neobsahuje přiřazení štítků.
SQL_DESC_SCHEMA_NAME Jméno majitele. Dostupné na sadách výsledků získaných z příkazů generujících serverové kurzory nebo na vykonaných příkazech SELECT obsahujících klauzuli FOR BROSVIEW.

Dostupné pouze tehdy, pokud je v příkazu SELECT uvedeno jméno vlastníka pro sloupec.
SQL_DESC_NÁZEV_TABULKY Dostupné na sadách výsledků získaných z příkazů generujících serverové kurzory nebo na vykonaných příkazech SELECT obsahujících klauzuli FOR BROSVIEW.
SQL_DESC_UNNAMED SQL_NAMED pro všechny sloupce ve výsledné množině, pokud sloupec není výsledkem výrazu, který neobsahuje přiřazení štítků jako součást výrazu. Když SQL_DESC_UNNAMED vrátí SQL_UNNAMED, všechny atributy identifikátorů sloupců ODBC obsahují řetězce nulové délky pro daný sloupec.

Nativní klientský ODBC ovladač pro SQL Server používá tento SET FMTONLY příkaz ke snížení režijní režie serveru, když je SQLColAttribute vyvolán pro připravené, ale neprovedené příkazy.

Pro velké typy hodnot SQLColAttribute vrátí následující hodnoty:

Identifikátor pole Popis změny
SQL_DESC_DISPLAY_SIZE Jedná se o maximální počet znaků potřebných k zobrazení dat ze sloupce. Pro sloupce typu s velkou hodnotou je vrácená hodnota SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_LENGTH Vrátí skutečnou délku sloupce ve výsledné množině. Pro sloupce typu s velkou hodnotou je vrácená hodnota SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_OCTET_LENGTH Vrátí maximální délku sloupce typu s velkou hodnotou. SQL_SS_LENGTH_UNLIMITED se používá k označení neomezené velikosti.
SQL_DESC_PRECISION Vrací hodnotu SQL_SS_LENGTH_UNLIMITED pro sloupce s velkou hodnotou.
SQL_DESC_TYPE Výnosy SQL_VARCHAR, SQL_WVARCHAR a SQL_VARBINARY pro typy s velkou hodnotou.
SQL_DESC_TYPE_NAME Vrací "varchar", "varbinary", "nvarchar" pro typy s velkou hodnotou.

Ve všech verzích jsou sloupcové atributy reportovány pouze pro první sadu výsledků, když je více sad výsledků generováno připravenou sadou SQL příkazů.

Následující sloupcové atributy jsou rozšíření zpřístupněná nativním klientským ODBC ovladačem SQL Server. Nativní klientský ODBC ovladač SQL Server vrací všechny hodnoty v parametru NumericAttrPtr. Hodnoty se vracejí jako SDWORD (signed long) kromě SQL_CA_SS_COMPUTE_BYLIST, což je ukazatel na pole WORD.

Identifikátor pole Vrácená hodnota
SQL_CA_SS_COLUMN_HIDDEN* PRAVDA, pokud je sloupec na který odkazováno součástí skrytého primárního klíče vytvořeného pro podporu příkazu Transact-SQL SELECT obsahujícího FOR BROWSE.
SQL_CA_SS_COLUMN_ID Ordinální pozice sloupce výsledků klauzule COMPUTE v aktuálním příkazu SELECT Transact-SQL.
SQL_CA_SS_COLUMN_KEY* PRAVDA, pokud je sloupec, na který odkazujeme, součástí primárního klíče pro daný řádek a příkaz SELECT Transact-SQL obsahuje FOR BROWSE.
SQL_CA_SS_COLUMN_OP Celé číslo specifikující agregátní operátor odpovědný za hodnotu ve sloupci COMPUTE klauzule. Definice celočíselných hodnot jsou v sqlncli.h.
SQL_CA_SS_COLUMN_ORDER Ordinální pozice sloupce v rámci ODBC nebo Transact-SQL příkazu SELECT ORDER BY.
SQL_CA_SS_COLUMN_SIZE Maximální délka v bajtech je potřebná k navázání hodnoty dat získané ze sloupce na SQL_C_BINARY proměnnou.
SQL_CA_SS_COLUMN_SSTYPE Nativní datový typ uložený ve sloupci SQL Server. Definice typů jsou v sqlncli.h.
SQL_CA_SS_COLUMN_UTYPE Základní datový typ uživatelsky definovaného datového typu sloupce SQL Server. Definice typů jsou v sqlncli.h.
SQL_CA_SS_COLUMN_VARYLEN PRAVDA, pokud se délka dat sloupce může lišit, jinak NEPRAVDIVO.
SQL_CA_SS_COMPUTE_BYLIST Ukazatel na pole WORD (neoznačené short), které specifikuje sloupce použité ve frázi BY klauzule COMPUTE. Pokud klauzule COMPUTE nespecifikuje frázi BY, vrátí se ukazatel NULL.

První prvek pole obsahuje počet sloupců seznamu BY. Dalšími prvky jsou sloupcové ordinály.
SQL_CA_SS_COMPUTE_ID computeid řádku, který je výsledkem COMPUTE klauzule v aktuálním příkazu SELECT Transact-SQL.
SQL_CA_SS_NUM_COMPUTES Počet COMPUTE klauzel specifikovaných v aktuálním příkazu SELECT Transact-SQL.
SQL_CA_SS_NUM_ORDERS Počet sloupců specifikovaných v ODBC nebo Transact-SQL klauzuli ORDER BY v příkazu SELECT.

* Dostupné, pokud je attribute SQL_SOPT_SS_HIDDEN_COLUMNS příkazu nastaven na SQL_HC_ON.

SQL Server 2005 (9.x) zavedl specifická deskriptorová pole pro ovladače, která poskytovala další informace pro označení názvu kolekce XML schématu, názvu schématu a názvu katalogu. Tyto vlastnosti nevyžadují uvozovky ani únikový znak, pokud obsahují nealfanumerické znaky. Následující tabulka uvádí tato nová deskriptorová pole:

Název sloupce Typ Description
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME CharacterAttributePtr Název katalogu, kde je definován název kolekce XML schématu. Pokud nelze najít název katalogu, pak tato proměnná obsahuje prázdný řetězec.

Tyto informace jsou vráceny z pole SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME záznamu IRD, což je pole pro čtení a zápis.
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E CharacterAttributePtr Název schématu, kde je definován název kolekce XML schématu. Pokud nelze název schématu najít, pak tato proměnná obsahuje prázdný řetězec.

Tyto informace jsou vráceny z pole SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME záznamu IRD, což je pole pro čtení a zápis.
SQL_CA_SS_XML_SCHEMACOLLECTION_NAME CharacterAttributePtr Název kolekce XML schémat. Pokud jméno nelze najít, pak tato proměnná obsahuje prázdný řetězec.

Tyto informace jsou vráceny z pole SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME záznamu IRD, což je pole pro čtení a zápis.

Také SQL Server 2005 (9.x) zavedl nová specifická deskriptorová pole pro ovladače, která poskytují další informace buď pro uživatelsky definovaný typ (UDT) sloupce výsledné sady, nebo pro parametr UDT uložené procedury či parametrizovaného dotazu. Tyto vlastnosti nevyžadují uvozovky ani únikový znak, pokud obsahují nealfanumerické znaky. Následující tabulka uvádí tato nová deskriptorová pole:

Název sloupce Typ Description
SQL_CA_SS_UDT_CATALOG_NAME CharacterAttributePtr Název katalogu obsahujícího UDT.
SQL_CA_SS_UDT_SCHEMA_NAME CharacterAttributePtr Název schématu obsahujícího UDT.
SQL_CA_SS_UDT_TYPE_NAME CharacterAttributePtr Název UDT.
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME CharacterAttributePtr Sněmovna byla kvalifikovaným názvem UDT.

Stávající identifikátor pole descriptor SQL_DESC_TYPE_NAME se používá k označení názvu UDT. SQL_DESC_TYPE pole pro sloupec typu UDT je SQL_SS_UDT.

Podpora SQLColAttribute pro vylepšené funkce data a času

Pro hodnoty vrácené pro typy dat/času viz sekce "Informace vrácené v IRD polích" v metadatech parametrů a výsledků.

Pro více informací viz Vylepšení dat a času (ODBC).

Podpora SQLColAttribute pro velké CLR UDT

SQLColAttribute podporuje velké uživatelsky definované typy CLR (UDT). Pro více informací viz Large CLR User-Defined Types (ODBC).

Podpora SQLColAttribute pro řídké sloupce

SQLColAttribute dotazuje nové pole implementačního řádku descriptor (IRD), SQL_CA_SS_IS_COLUMN_SET, aby zjistil, zda je sloupec column_set .

Pro více informací viz Sparse Columns Support (ODBC).

Viz také

Funkce SQLColAttribute
Podrobnosti implementace rozhraní ODBC API
SQLSetStmtAttr