Sdílet prostřednictvím


pole popisovače parametrů Table-Valued

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed InstanceAzure Synapse AnalyticsPlatform Platform System (PDW)

Podpora parametrů s hodnotou tabulky zahrnuje nová pole specifická pro SQL Server v popisovačích parametrů aplikace ODBC (APD) a popisovačích parametrů implementace (IPD).

Poznámky

Jméno Umístění Typ Popis
SQL_CA_SS_TYPE_NAME IPD SQLTCHAR* Název typu serveru parametru s hodnotou tabulky.

Pokud je název typu parametru s hodnotou tabulky zadán při volání SQLBindParameter, musí být vždy zadán jako hodnota Unicode, a to i v aplikacích vytvořených jako aplikace ANSI. Hodnota použitá pro parametr StrLen_or_IndPtr by měla být SQL_NTS nebo délka řetězce názvu vynásobené velikostí (WCHAR).

Pokud je název typu parametru s hodnotou tabulky zadán prostřednictvím SQLSetDescField, lze jej zadat pomocí literálu, který odpovídá způsobu sestavení aplikace. Správce ovladačů ODBC provede všechny požadované převody Unicode.
SQL_CA_SS_TYPE_CATALOG_NAME (jen pro čtení) IPD SQLTCHAR* Katalog, ve kterém je typ definován.
SQL_CA_SS_TYPE_SCHEMA_NAME IPD SQLTCHAR* Schéma, ve kterém je typ definován.

Aplikace nesmí nastavit SQL_CA_SS_TYPE_CATALOG_NAME pro parametry s hodnotou tabulky. Tím vrátíte SQL_ERROR a zapíšete diagnostický záznam pomocí funkce SQLSTATE = HY091 a zprávu "Neplatný identifikátor pole popisovače".

Následující atributy příkazů a pole záhlaví popisovače platí pro parametry s hodnotou tabulky, pokud je fokus parametru nastaven na parametr s hodnotou tabulky:

Jméno Umístění Typ Popis
SQL_ATTR_PARAMSET_SIZE

(To odpovídá SQL_DESC_ARRAY_SIZE v APD.)
APD SQLUINTEGER Velikost pole vyrovnávací paměti pro parametr s hodnotou tabulky. Toto je maximální počet řádků, které vyrovnávací paměti budou obsahovat nebo velikost vyrovnávací paměti v řádcích; Samotná hodnota parametru s hodnotou tabulky může obsahovat více nebo méně řádků, než mohou obsahovat vyrovnávací paměti. Výchozí hodnota je 1.

Poznámka: Pokud je SQL_SOPT_SS_PARAM_FOCUS nastavena na výchozí hodnotu 0, SQL_ATTR_PARAMSET_SIZE odkazuje na příkaz a určuje počet sad parametrů. Pokud je SQL_SOPT_SS_PARAM_FOCUS nastavena na řadový parametr s hodnotou tabulky, odkazuje na parametr s hodnotou tabulky a určuje počet řádků na parametr nastavený pro parametr s hodnotou tabulky.
SQL_ATTR_PARAM _BIND_TYPE APD SQLINTEGER Výchozí hodnota je SQL_PARAM_BIND_BY_COLUMN.

Chcete-li vybrat vazbu po řádku, je toto pole nastaveno na délku struktury nebo instance vyrovnávací paměti, která bude vázána na sadu řádků parametrů s hodnotou tabulky. Tato délka musí obsahovat mezeru pro všechny vázané sloupce a jakékoli odsazení struktury nebo vyrovnávací paměti. Tím se zajistí, že když se adresa vázaného sloupce zvýší o zadanou délku, bude výsledek odkazovat na začátek stejného sloupce v dalším řádku. Při použití sizeof operátor v ANSI C je toto chování zaručeno.
SQL_ATTR_PARAM_BIND_OFFSET_PTR APD SQLINTEGER* Výchozí hodnota je ukazatel null.

Pokud toto pole není null, ovladač ukazatel dereference přidá hodnotu dereferenced do každého odloženého pole v záznamu popisovače (SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR a SQL_DESC_OCTET_LENGTH_PTR) a použije nové hodnoty ukazatele pro přístup k datovým hodnotám.

Tato pole jsou platná pouze s parametry hodnot tabulky a jsou ignorována pro jiné datové typy.

SQL_CA_SS_TYPE_NAME je volitelné pro volání uložených procedur. Musí být zadán pro příkazy SQL, které nejsou volání procedur, aby server mohl určit typ parametru s hodnotou tabulky.

Je-li požadován název typu a typ tabulky parametru s hodnotou tabulky je definován v jiném schématu než uložená procedura, SQL_CA_SS_TYPE_SCHEMA_NAME musí být zadán v popisovači parametru implementace (IPD). Pokud ne, server nebude moct určit typ parametru s hodnotou tabulky. Výsledkem bude chyba při volání SQLExecute nebo SQLExecDirect. Chyba bude mít SQLSTATE= 07006 a zprávu "Omezené porušení atributu datového typu".

Sloupce parametrů hodnot tabulky můžou používat vazby s řádky nebo sloupci. Výchozí hodnota je vazba, která je moudrá pro sloupce. Vazby pro řádky je možné zadat nastavením SQL_ATTR_PARAM_BIND_TYPE a SQL_ATTR_ PARAM_BIND_OFFSET_PTR. To je podobné vazbě sloupců a parametrů, které jsou v řádcích.

SQL_CA_SS_TYPE_CATALOG_NAME a SQL_CA_SS_TYPE_SCHEMA_NAME lze také použít k načtení katalogu a schématu přidruženého k uživatelsky definovaným parametrům typu CLR. Jedná se o alternativy k atributům schématu specifického pro existující typ katalogu pro tyto typy.

Viz také

parametrů Table-Valued (ODBC)