Condividi tramite


SQLColAttribute

È possibile utilizzare SQLColAttribute per recuperare un attributo di una colonna del set di risultati per istruzioni ODBC preparate o eseguite. La chiamata di SQLColAttribute su istruzioni preparate provoca un round trip a SQL Server. Poiché il driver ODBC di SQL Server Native Client riceve i dati di colonna del set di risultati come parte dell'esecuzione dell'istruzione, la chiamata di SQLColAttribute al completamento di SQLExecute o SQLExecDirect non comporta un round trip al server.

[!NOTA]

Gli attributi di identificazione di colonna ODBC non sono disponibili in tutti i set di risultati di SQL Server.

Identificatore del campo

Descrizione

SQL_COLUMN_TABLE_NAME

Disponibile nei set di risultati recuperati da istruzioni che generano cursori server o in istruzioni SELECT eseguite contenenti una clausola FOR BROWSE.

SQL_DESC_BASE_COLUMN_NAME

Disponibile nei set di risultati recuperati da istruzioni che generano cursori server o in istruzioni SELECT eseguite contenenti una clausola FOR BROWSE.

SQL_DESC_BASE_TABLE_NAME

Disponibile nei set di risultati recuperati da istruzioni che generano cursori server o in istruzioni SELECT eseguite contenenti una clausola FOR BROWSE.

SQL_DESC_CATALOG_NAME

Nome del database. Disponibile nei set di risultati recuperati da istruzioni che generano cursori server o in istruzioni SELECT eseguite contenenti una clausola FOR BROWSE.

SQL_DESC_LABEL

Disponibile in tutti i set di risultati. Il valore è identico al valore del campo SQL_DESC_NAME.

Il campo è di lunghezza zero solo se una colonna è il risultato di un'espressione e l'espressione non contiene un'assegnazione di etichetta.

SQL_DESC_NAME

Disponibile in tutti i set di risultati. Il valore è identico al valore del campo SQL_DESC_LABEL.

Il campo è di lunghezza zero solo se una colonna è il risultato di un'espressione e l'espressione non contiene un'assegnazione di etichetta.

SQL_DESC_SCHEMA_NAME

Nome del proprietario. Disponibile nei set di risultati recuperati da istruzioni che generano cursori server o in istruzioni SELECT eseguite contenenti una clausola FOR BROWSE.

Disponibile solo se viene specificato il nome del proprietario per la colonna nell'istruzione SELECT.

SQL_DESC_TABLE_NAME

Disponibile nei set di risultati recuperati da istruzioni che generano cursori server o in istruzioni SELECT eseguite contenenti una clausola FOR BROWSE.

SQL_DESC_UNNAMED

SQL_NAMED per tutte le colonne in un set di risultati, a meno che una colonna non sia il risultato di un'espressione che non contiene un'assegnazione di etichetta come parte dell'espressione. Quando SQL_DESC_UNNAMED restituisce SQL_UNNAMED, tutti gli attributi di identificazione di colonna ODBC contengono stringhe di lunghezza zero per la colonna.

Il driver ODBC di SQL Server Native Client utilizza l'istruzione SET FMTONLY per ridurre l'overhead del server quando SQLColAttribute viene chiamato per istruzioni preparate ma non eseguite.

Per i tipi di dati per valori di grandi dimensioni, SQLColAttribute restituirà i valori seguenti:

Identificatore del campo

Descrizione della modifica

SQL_DESC_DISPLAY_SIZE

Si tratta del numero massimo di caratteri necessari per visualizzare dati dalla colonna. Per le colonne con tipo di dati per valori di grandi dimensioni, il valore restituito è SQL_SS_LENGTH_UNLIMITED.

SQL_DESC_LENGTH

Restituisce la lunghezza effettiva della colonna nel set di risultati. Per le colonne con tipo di dati per valori di grandi dimensioni, il valore restituito è SQL_SS_LENGTH_UNLIMITED.

SQL_DESC_OCTET_LENGTH

Restituisce la lunghezza massima di una colonna con tipo di dati per valori di grandi dimensioni. SQL_SS_LENGTH_UNLIMITED viene utilizzato per indicare dimensioni illimitate.

SQL_DESC_PRECISION

Restituisce il valore SQL_SS_LENGTH_UNLIMITED per colonne con tipo di dati per valori di grandi dimensioni.

SQL_DESC_TYPE

Restituisce SQL_VARCHAR, SQL_WVARCHAR e SQL_VARBINARY per tipi di dati per valori di grandi dimensioni.

SQL_DESC_TYPE_NAME

Restituisce "varchar", "varbinary" e "nvarchar" per tipi di dati per valori di grandi dimensioni.

Per tutte le versioni, gli attributi di colonna vengono indicati solo per il primo set di risultati quando più set di risultati vengono generati da un batch preparato di istruzioni SQL.

Gli attributi di colonna seguenti sono estensioni esposte dal driver ODBC di SQL Server Native Client. Il driver ODBC di SQL Server Native Client restituisce tutti i valori nel parametro NumericAttrPtr. I valori vengono restituiti come SDWORD (signed long) ad eccezione di SQL_CA_SS_COMPUTE_BYLIST, che è un puntatore a una matrice di WORD.

Identificatore del campo

Valore restituito

SQL_CA_SS_COLUMN_HIDDEN*

TRUE se la colonna a cui si fa riferimento fa parte di una chiave primaria nascosta creata per supportare un'istruzione Transact-SQL SELECT che contiene la clausola FOR BROWSE.

SQL_CA_SS_COLUMN_ID

Posizione ordinale di una colonna di risultati della clausola COMPUTE all'interno dell'istruzione Transact-SQL SELECT corrente.

SQL_CA_SS_COLUMN_KEY*

TRUE se la colonna a cui si fa riferimento è parte di una chiave primaria per la riga e se l'istruzione Transact-SQL SELECT contiene la clausola FOR BROWSE.

SQL_CA_SS_COLUMN_OP

Numero intero che specifica l'operatore di aggregazione responsabile del valore in una colonna della clausola COMPUTE. Le definizioni dei valori integer sono incluse in sqlncli.h.

SQL_CA_SS_COLUMN_ORDER

Posizione ordinale della colonna all'interno di una clausola ORDER BY di un'istruzione ODBC o Transact-SQL SELECT.

SQL_CA_SS_COLUMN_SIZE

Lunghezza massima, in byte, necessaria per associare un valore di dati recuperato dalla colonna a una variabile SQL_C_BINARY.

SQL_CA_SS_COLUMN_SSTYPE

Tipo di dati nativo dei dati archiviati nella colonna di SQL Server. Le definizioni dei valori dei tipi sono incluse in sqlncli.h.

SQL_CA_SS_COLUMN_UTYPE

Tipo di dati di base del tipo di dati definito dall'utente della colonna di SQL Server. Le definizioni dei valori dei tipi sono incluse in sqlncli.h.

SQL_CA_SS_COLUMN_VARYLEN

TRUE se i dati della colonna possono variare in lunghezza; in caso contrario, FALSE.

SQL_CA_SS_COMPUTE_BYLIST

Puntatore a una matrice di WORD (unsigned short) che specifica le colonne utilizzate nella frase BY di una clausola COMPUTE. Se la clausola COMPUTE non specifica una frase BY, viene restituito un puntatore NULL.

Il primo elemento della matrice contiene il conteggio di colonne dell'elenco BY. I numeri ordinali di colonna sono elementi aggiuntivi.

SQL_CA_SS_COMPUTE_ID

computeid di una riga che è il risultato di una clausola COMPUTE nell'istruzione Transact-SQL SELECT corrente.

SQL_CA_SS_NUM_COMPUTES

Numero di clausole COMPUTE specificate nell'istruzione Transact-SQL SELECT corrente.

SQL_CA_SS_NUM_ORDERS

Numero di colonne specificate in una clausola ORDER BY di un'istruzione ODBC o Transact-SQL SELECT.

*   Disponibile se l'attributo dell'istruzione SQL_SOPT_SS_HIDDEN_COLUMNS è impostato su SQL_HC_ON.

In SQL Server 2005 sono stati introdotti campi di descrizione specifici del driver per fornire informazioni aggiuntive utili per identificare rispettivamente il nome della raccolta di schemi XML, il nome dello schema e il nome del catalogo. Tali proprietà non richiedono virgolette o un carattere di escape se contengono caratteri non alfanumerici. Nella tabella seguente sono inclusi i nuovi campi di descrizione:

Nome colonna

Tipo

Descrizione

SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME

CharacterAttributePtr

Nome del catalogo in cui viene definito il nome di una raccolta di schemi XML. Se non è possibile trovare il nome del catalogo, questa variabile contiene una stringa vuota.

Queste informazioni vengono restituite dal campo del record SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME del descrittore delle righe di implementazione, che è un campo di lettura/scrittura.

SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME

CharacterAttributePtr

Nome dello schema in cui viene definito il nome di una raccolta di schemi XML. Se non è possibile trovare il nome dello schema, questa variabile contiene una stringa vuota.

Queste informazioni vengono restituite dal campo del record SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME del descrittore delle righe di implementazione, che è un campo di lettura/scrittura.

SQL_CA_SS_XML_SCHEMACOLLECTION_NAME

CharacterAttributePtr

Nome di una raccolta di schemi XML. Se non è possibile trovare il nome, questa variabile contiene una stringa vuota.

Queste informazioni vengono restituite dal campo del record SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME del descrittore delle righe di implementazione, che è un campo di lettura/scrittura.

In SQL Server 2005 sono stati inoltre introdotti nuovi campi di descrizione specifici del driver per fornire informazioni aggiuntive per una colonna con tipo definito dall'utente di un set di risultati o un parametro con tipo definito dall'utente di una stored procedure o di una query con parametri. Tali proprietà non richiedono virgolette o un carattere di escape se contengono caratteri non alfanumerici. Nella tabella seguente sono inclusi i nuovi campi di descrizione:

Nome della colonna

Tipo

Descrizione

SQL_CA_SS_UDT_CATALOG_NAME

CharacterAttributePtr

Nome del catalogo contenente il tipo definito dall'utente.

SQL_CA_SS_UDT_SCHEMA_NAME

CharacterAttributePtr

Nome dello schema contenente il tipo definito dall'utente.

SQL_CA_SS_UDT_TYPE_NAME

CharacterAttributePtr

Nome del tipo definito dall'utente.

SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME

CharacterAttributePtr

Nome completo dell'assembly del tipo definito dall'utente.

L'identificatore SQL_DESC_TYPE_NAME del campo di descrizione esistente viene utilizzato per indicare il nome del tipo definito dall'utente. Il campo SQL_DESC_TYPE per una colonna con tipo definito dall'utente è SQL_SS_UDT.

Supporto di SQLColAttribute per le funzionalità avanzate di data e ora

Per informazioni sui valori restituiti per i tipi di data/ora, vedere la sezione "Informazioni restituite nei campi IRD" in Metadati per parametri e risultati.

Per ulteriori informazioni, vedere Miglioramenti relativi a data e ora (ODBC).

Supporto di SQLColAttribute per tipi CLR definiti dall'utente di grandi dimensioni

SQLColAttribute supporta i tipi CLR definiti dall'utente di grandi dimensioni. Per ulteriori informazioni, vedere Tipi CLR definiti dall'utente di grandi dimensioni (ODBC).

Supporto di SQLColAttribute per colonne di tipo sparse

SQLColAttribute esegue query sul nuovo campo IRD (descrittore delle righe di implementazione), SQL_CA_SS_IS_COLUMN_SET, per determinare se una colonna è una colonna column_set.

Per ulteriori informazioni, vedere Supporto per colonne di tipo sparse (ODBC).