Dodatkowe metadane parametrów Table-Valued
Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
Aby pobrać metadane dla parametru wartości tabeli, aplikacja wywołuje metodę SQLProcedureColumns. W przypadku parametru o wartości tabeli funkcja SQLProcedureColumns zwraca pojedynczy wiersz. Dodano dwie dodatkowe kolumny specyficzne dla programu SQL Server, SS_TYPE_CATALOG_NAME i SS_TYPE_SCHEMA_NAME, aby zapewnić informacje o schemacie i wykazie typów tabel skojarzonych z parametrami wartości tabeli. Zgodnie ze specyfikacją ODBC SS_TYPE_CATALOG_NAME i SS_TYPE_SCHEMA_NAME są wyświetlane przed wszystkimi kolumnami specyficznymi dla sterowników dodanymi we wcześniejszych wersjach programu SQL Server i po wszystkich kolumnach upoważnionych przez samą funkcję ODBC.
W poniższej tabeli wymieniono kolumny istotne dla parametrów wartości tabeli.
Nazwa kolumny | Typ danych | Wartość/komentarze |
---|---|---|
DATA_TYPE | Parametr Smallint nie ma wartości NULL | SQL_SS_TABLE |
TYPE_NAME | WVarchar(128) nie ma wartości NULL | Nazwa typu parametru wartości tabeli. |
COLUMN_SIZE | Liczba całkowita | ZERO |
BUFFER_LENGTH | Liczba całkowita | 0 |
DECIMAL_DIGITS | Smallint | ZERO |
NUM_PREC_RADIX | Smallint | ZERO |
NULLABLE | Parametr Smallint nie ma wartości NULL | SQL_NULLABLE |
UWAGI | Varchar | ZERO |
COLUMN_DEF | WVarchar(4000) | ZERO |
SQL_DATA_TYPE | Parametr Smallint nie ma wartości NULL | SQL_SS_TABLE |
SQL_DATETIME_SUB | Smallint | ZERO |
CHAR_OCTET_LENGTH | Liczba całkowita | ZERO |
ORDINAL_POSITION | Liczba całkowita nie ma wartości NULL | Położenie porządkowe parametru. |
IS_NULLABLE | Varchar | "TAK" |
SS_TYPE_CATALOG_NAME | WVarchar(128) nie ma wartości NULL | Wykaz zawierający definicję typu dla typu tabeli parametru wartości tabeli. |
SS_TYPE_SCHEMA_NAME | WVarchar(128) nie ma wartości NULL | Schemat zawierający definicję typu dla typu tabeli parametru wartości tabeli. |
Kolumny WVarchar są definiowane jako Varchar w specyfikacji ODBC, ale są rzeczywiście zwracane jako WVarchar we wszystkich ostatnich sterownikach ODBC programu SQL Server. Ta zmiana została wprowadzona, gdy obsługa Unicode została dodana do specyfikacji ODBC 3.5, ale nie została jawnie wywołana.
Aby uzyskać dodatkowe metadane dla parametrów wartości tabeli, aplikacja używa funkcji katalogu SQLColumns i SQLPrimaryKeys. Zanim te funkcje będą wywoływane dla parametrów wartości tabeli, aplikacja musi ustawić atrybut instrukcji SQL_SOPT_SS_NAME_SCOPE na SQL_SS_NAME_SCOPE_TABLE_TYPE. Ta wartość wskazuje, że aplikacja wymaga metadanych dla typu tabeli, a nie rzeczywistej tabeli. Następnie aplikacja przekazuje TYPE_NAME parametru o wartości tabeli jako parametr TableName. SS_TYPE_CATALOG_NAME i SS_TYPE_SCHEMA_NAME są używane z parametrami
Gdy SQL_SOPT_SS_NAME_SCOPE jest ustawiona na SQL_SS_NAME_SCOPE_TABLE, zapytania do połączonych serwerów kończą się niepowodzeniem. Wywołania funkcji SQLColumns lub SQLPrimaryKeys z wykazem zawierającym składnik serwera zakończy się niepowodzeniem.
Zobacz też
parametrów