Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Możesz użyć SQLColAttribute do pobrania atrybutu kolumny zbioru wyników dla przygotowanych lub wykonanych instrukcji ODBC. Wywołanie SQLColAttribute w przygotowanych instrukcjach powoduje połączenie w obie strony do SQL Server. Sterownik ODBC natywnego klienta SQL Server otrzymuje dane kolumn zestawu wyników w ramach wykonywania instrukcji, więc wywołanie SQLColAttribute po zakończeniu SQLExecute lub SQLExecDirect nie wiąże się z obie strony serwera.
Uwaga / Notatka
Atrybuty identyfikatorów kolumn ODBC nie są dostępne we wszystkich zestawach wyników SQL Server.
| Identyfikator pola | Description |
|---|---|
| SQL_COLUMN_TABLE_NAME | Dostępne na zestawach wyników pobranych z instrukcji generujących kursory serwera lub na wykonywanych instrukcjach SELECT zawierających klauzulę FOR BROWSPO. |
| SQL_DESC_BASE_COLUMN_NAME | Dostępne na zestawach wyników pobranych z instrukcji generujących kursory serwera lub na wykonywanych instrukcjach SELECT zawierających klauzulę FOR BROWSPO. |
| SQL_DESC_BASE_TABLE_NAME | Dostępne na zestawach wyników pobranych z instrukcji generujących kursory serwera lub na wykonywanych instrukcjach SELECT zawierających klauzulę FOR BROWSPO. |
| SQL_DESC_CATALOG_NAME | Nazwa bazy danych. Dostępne na zestawach wyników pobranych z instrukcji generujących kursory serwera lub na wykonywanych instrukcjach SELECT zawierających klauzulę FOR BROWSPO. |
| SQL_DESC_LABEL | Dostępne we wszystkich zestawach wyników. Wartość ta jest identyczna z wartością pola SQL_DESC_NAME. Pole ma długość zerową tylko wtedy, gdy kolumna jest wynikiem wyrażenia, a wyrażenie nie zawiera przypisania etykiet. |
| SQL_DESC_NAME | Dostępne we wszystkich zestawach wyników. Wartość ta jest identyczna z wartością pola SQL_DESC_LABEL. Pole ma długość zerową tylko wtedy, gdy kolumna jest wynikiem wyrażenia, a wyrażenie nie zawiera przypisania etykiet. |
| SQL_DESC_SCHEMA_NAME | Nazwisko właściciela. Dostępne na zestawach wyników pobranych z instrukcji generujących kursory serwera lub na wykonywanych instrukcjach SELECT zawierających klauzulę FOR BROWSPO. Dostępne tylko wtedy, gdy nazwa właściciela jest podana dla kolumny w instrukcji SELECT. |
| SQL_DESC_TABLE_NAME | Dostępne na zestawach wyników pobranych z instrukcji generujących kursory serwera lub na wykonywanych instrukcjach SELECT zawierających klauzulę FOR BROWSPO. |
| SQL_DESC_UNNAMED | SQL_NAMED dla wszystkich kolumn w zbiorze wyników, chyba że kolumna jest wynikiem wyrażenia, które nie zawiera przypisania etykiet jako części wyrażenia. Gdy SQL_DESC_UNNAMED zwraca SQL_UNNAMED, wszystkie atrybuty identyfikatorów kolumn ODBC zawierają ciągi o zerowej długości dla kolumny. |
Sterownik ODBC dla natywnego klienta SQL Server wykorzystuje SET FMTONLY to zadanie do zmniejszenia narzutu serwera, gdy SQLColAttribute jest wywoływany dla przygotowanych, ale niewykonanych instrukcji.
Dla typów dużych wartości SQLColAttribute zwraca następujące wartości:
| Identyfikator pola | Opis zmiany |
|---|---|
| SQL_DESC_DISPLAY_SIZE | Jest to maksymalna liczba znaków potrzebna do wyświetlenia danych z kolumny. Dla kolumn typu dużych wartości zwracana wartość wynosi SQL_SS_LENGTH_UNLIMITED. |
| SQL_DESC_LENGTH | Zwraca rzeczywistą długość kolumny w zbiorze wyników. Dla kolumn typu dużych wartości zwracana wartość wynosi SQL_SS_LENGTH_UNLIMITED. |
| SQL_DESC_OCTET_LENGTH | Zwraca maksymalną długość kolumny typu o dużej wartości. SQL_SS_LENGTH_UNLIMITED służy do oznaczania nieograniczonego rozmiaru. |
| SQL_DESC_PRECISION | Zwraca wartość SQL_SS_LENGTH_UNLIMITED dla kolumn typu dużych wartości. |
| SQL_DESC_TYPE | Zwroty SQL_VARCHAR, SQL_WVARCHAR i SQL_VARBINARY dla typów o dużej wartości. |
| SQL_DESC_TYPE_NAME | Zwraca "varchar", "varbinary", "nvarchar" dla typów o dużych wartościach. |
We wszystkich wersjach atrybuty kolumn są raportowane tylko dla pierwszego zbioru wyników, gdy wiele zestawów wyników jest generowanych przez przygotowaną partię instrukcji SQL.
Poniższe atrybuty kolumn to rozszerzenia udostępniane przez sterownik ODBC dla natywnego klienta SQL Server. Sterownik ODBC dla natywnego klienta SQL Server zwraca wszystkie wartości w parametrze NumericAttrPtr. Wartości zwracane są jako SDWORD (signed long), z wyjątkiem SQL_CA_SS_COMPUTE_BYLIST, który jest wskaźnikiem do tablicy WORD.
| Identyfikator pola | Zwrócona wartość |
|---|---|
| SQL_CA_SS_COLUMN_HIDDEN* | TRUE, jeśli kolumna, do której się odwołujesz, jest częścią ukrytego klucza pierwotnego utworzonego do obsługi Transact-SQL SELECT zawierającego FOR BROWSE. |
| SQL_CA_SS_COLUMN_ID | Pozycja porządkowa kolumny wynik klauzuli COMPUTE w aktualnym Transact-SQL SELECT. |
| SQL_CA_SS_COLUMN_KEY* | TRUE, jeśli kolumna, do której się odwołuje, jest częścią klucza podstawowego dla wiersza, a instrukcja SELECT Transact-SQL zawiera FOR BROWSE. |
| SQL_CA_SS_COLUMN_OP | Liczba całkowita określająca operator agregatu odpowiedzialny za wartość w kolumnie klauzuli COMPUTE. Definicje wartości całkowitych znajdują się w sqlncli.h. |
| SQL_CA_SS_COLUMN_ORDER | Pozycja porządkowa kolumny w klauzuli ORDER BY Transact-SQL ODBC lub SELECT w instrukcji SELECT. |
| SQL_CA_SS_COLUMN_SIZE | Maksymalna długość w bajtach wymagana do powiązania wartości danych pobranej z kolumny z zmienną SQL_C_BINARY. |
| SQL_CA_SS_COLUMN_SSTYPE | Natywny typ danych przechowywany w kolumnie SQL Server. Definicje wartości typowych znajdują się w sqlncli.h. |
| SQL_CA_SS_COLUMN_UTYPE | Bazowy typ danych kolumny SQL Server zdefiniowanego przez użytkownika. Definicje wartości typowych znajdują się w sqlncli.h. |
| SQL_CA_SS_COLUMN_VARYLEN | PRAWDA, jeśli dane kolumny mogą się różnić długością, NIEPRAWDA w przeciwnym razie. |
| SQL_CA_SS_COMPUTE_BYLIST | Wskaźnik do tablicy WORD (nieznakomity) określającej kolumny używane w frazie BY w klauzuli COMPUTE. Jeśli klauzula COMPUTE nie określa frazy BY, zwracany jest wskaźnik NULL. Pierwszy element tablicy zawiera liczbę kolumn listy BY. Dodatkowymi elementami są kolumnowe liczby porządkowe. |
| SQL_CA_SS_COMPUTE_ID | computeid wiersza będącego wynikiem klauzuli COMPUTE w aktualnym Transact-SQL SELECT. |
| SQL_CA_SS_NUM_COMPUTES | Liczba klauzul COMPUTE określonych w aktualnym Transact-SQL SELECT. |
| SQL_CA_SS_NUM_ORDERS | Liczba kolumn określonych w ODBC lub Transact-SQL klauzuli ORDER BY w instrukcji SELECT. |
* Dostępne, jeśli atrybut SQL_SOPT_SS_HIDDEN_COLUMNS instrukcji jest ustawiony na SQL_HC_ON.
SQL Server 2005 (9.x) wprowadził specyficzne dla sterownika pola deskryptoru, które dostarczały dodatkowych informacji oznaczających odpowiednio nazwę kolekcji schematu XML, nazwę schematu oraz nazwę katalogu. Te właściwości nie wymagają cudzysłowu ani znaku ucieczki, jeśli zawierają znaki niealfanumeryczne. Poniższa tabela przedstawia te nowe pola deskryptoru:
| Nazwa kolumny | Typ | Description |
|---|---|---|
| SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME | CharacterAttributePtr | Nazwa katalogu, w którym zdefiniowana jest nazwa kolekcji schematu XML. Jeśli nazwy katalogu nie można znaleźć, to ta zmienna zawiera pusty ciąg danych. Informacje te są zwracane z pola rekordu SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME w IRD, które jest polem odczytu i zapisu. |
| SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E | CharacterAttributePtr | Nazwa schematu, w którym zdefiniowana jest nazwa kolekcji schematu XML. Jeśli nazwy schematu nie można znaleźć, to ta zmienna zawiera pusty ciąg znaków. Informacje te są zwracane z pola SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME rekordu IRD, które jest polem odczytu i zapisu. |
| SQL_CA_SS_XML_SCHEMACOLLECTION_NAME | CharacterAttributePtr | Nazwa kolekcji schematów XML. Jeśli nazwy nie można znaleźć, to ta zmienna zawiera pusty ciąg znaków. Informacje te są zwracane z pola rekordu SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME IRD, które jest polem odczytu i zapisu. |
Ponadto SQL Server 2005 (9.x) wprowadził nowe pola deskryptoryczne specyficzne dla sterowników, aby dostarczyć dodatkowych informacji dla kolumny typu zdefiniowanego przez użytkownika (UDT) zbioru wyników lub parametru UDT procedury przechowywanej lub parametryzowanego zapytania. Te właściwości nie wymagają cudzysłowu ani znaku ucieczki, jeśli zawierają znaki niealfanumeryczne. Poniższa tabela przedstawia te nowe pola deskryptoru:
| Nazwa kolumny | Typ | Description |
|---|---|---|
| SQL_CA_SS_UDT_CATALOG_NAME | CharacterAttributePtr | Nazwa katalogu zawierającego UDT. |
| SQL_CA_SS_UDT_SCHEMA_NAME | CharacterAttributePtr | Nazwa schematu zawierającego UDT. |
| SQL_CA_SS_UDT_TYPE_NAME | CharacterAttributePtr | Nazwa UDT. |
| SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME | CharacterAttributePtr | Nazwa kwalifikowana dla zgromadzenia UDT. |
Istniejący identyfikator pola deskryptorowego SQL_DESC_TYPE_NAME służy do wskazania nazwy UDT. Pole SQL_DESC_TYPE dla kolumny typu UDT to SQL_SS_UDT.
Wsparcie SQLColAttribute dla ulepszonych funkcji daty i godziny
Aby uzyskać wartości zwracane dla typów dat/godzin, zobacz sekcję "Informacje zwrócone w polach IRD" w sekcji Metadane parametrów i wyników.
Więcej informacji można znaleźć w artykule Ulepszenia daty i godziny (ODBC).
Obsługa SQLColAttribute dla dużych CLR UDT
SQLColAttribute obsługuje duże typy CLR zdefiniowane przez użytkownika (UDT). Więcej informacji można znaleźć w sekcji Duże typy CLR User-Defined (ODBC).
Obsługa SQLColAttribute dla rzadkich kolumn
SQLColAttribute zapytuje nowe pole deskryptoru wiersza implementacyjnego (IRD), SQL_CA_SS_IS_COLUMN_SET, aby ustalić, czy kolumna jest kolumną column_set .
Więcej informacji można znaleźć w artykule Sparse Columns Support (ODBC).
Zobacz też
Funkcja SQLColAttribute
Szczegóły implementacji interfejsu API ODBC
SQLSetStmtAttr