Condividi tramite


Metadati aggiuntivi dei parametri con valori di tabella

Per recuperare metadati per un parametro con valori di tabella, viene chiamato SQLProcedureColumns. Per un parametro con valori di tabella, SQLProcedureColumns restituisce una sola riga. Due colonne aggiuntive specifiche di SQL Server, SS_TYPE_CATALOG_NAME e SS_TYPE_SCHEMA_NAME, sono state aggiunte per fornire informazioni sul catalogo e sullo schema per i tipi di tabella associati ai parametri con valori di tabella. In conformità con la specifica ODBC, SS_TYPE_CATALOG_NAME e SS_TYPE_SCHEMA_NAME vengono visualizzati prima di tutte le colonne specifiche del driver che sono state aggiunte nelle versioni precedenti di SQL Server e dopo tutte le colonne richieste da ODBC stesso.

Nella tabella seguente sono elencate le colonne significative per i parametri con valori di tabella.

Nome colonna

Tipo di dati

Valore/commenti

DATA_TYPE

Smallint non NULL

SQL_SS_TABLE

TYPE_NAME

WVarchar(128) non NULL

Nome del tipo del parametro con valori di tabella.

COLUMN_SIZE

Integer

NULL

BUFFER_LENGTH

Integer

0

DECIMAL_DIGITS

Smallint

NULL

NUM_PREC_RADIX

Smallint

NULL

NULLABLE

Smallint non NULL

SQL_NULLABLE

REMARKS

Varchar

NULL

COLUMN_DEF

WVarchar(4000)

NULL

SQL_DATA_TYPE

Smallint non NULL

SQL_SS_TABLE

SQL_DATETIME_SUB

Smallint

NULL

CHAR_OCTET_LENGTH

Integer

NULL

ORDINAL_POSITION

Integer non NULL

Posizione ordinale del parametro.

IS_NULLABLE

Varchar

"YES"

SS_TYPE_CATALOG_NAME

WVarchar(128) non NULL

Catalogo contenente la definizione di tipo per il tipo di tabella del parametro con valori di tabella.

SS_TYPE_SCHEMA_NAME

WVarchar(128) non NULL

Schema contenente la definizione di tipo per il tipo di tabella del parametro con valori di tabella.

Le colonne WVarchar sono definite come Varchar nella specifica di ODBC ma, di fatto, vengono restituite come WVarchar in tutti i driver ODBC di SQL Server recenti. Questa modifica è stata apportata quando il supporto Unicode è stato aggiunto alla specifica di ODBC 3.5 ma non è stato esplicitamente menzionato.

Per ottenere metadati aggiuntivi per i parametri con valori di tabella, vengono utilizzate le funzioni di catalogo SQLColumns e SQLPrimaryKeys. Prima che queste funzioni vengano chiamate per i parametri con valori di tabella, è necessario che l'attributo dell'istruzione SQL_SOPT_SS_NAME_SCOPE venga impostato su SQL_SS_NAME_SCOPE_TABLE_TYPE. Questo valore indica che l'applicazione richiede metadati per un tipo di tabella piuttosto che una tabella effettiva. L'applicazione passa quindi TYPE_NAME del parametro con valori di tabella come parametro TableName. SS_TYPE_CATALOG_NAME e SS_TYPE_SCHEMA_NAME vengono utilizzati rispettivamente con i parametri CatalogName e SchemaName per identificare il catalogo e lo schema per il parametro con valori di tabella. Quando un'applicazione ha completato il recupero dei metadati per i parametri con valori di tabella, deve impostare nuovamente SQL_SOPT_SS_NAME_SCOPE sul valore predefinito di SQL_SS_NAME_SCOPE_TABLE.

Quando SQL_SOPT_SS_NAME_SCOPE è impostato su SQL_SS_NAME_SCOPE_TABLE, le query ai server collegati non riescono. Le chiamate a SQLColumns o SQLPrimaryKeys con un catalogo che contiene un componente server non riescono.