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ů