SQLColAttribute

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

È possibile usare SQLColAttribute per recuperare un attributo di una colonna del set di risultati per istruzioni ODBC preparate o eseguite. La chiamata a SQLColAttribute nelle istruzioni preparate causa un round trip in SQL Server. Il driver ODBC di SQL Server Native Client riceve i dati della colonna del set di risultati come parte dell'esecuzione dell'istruzione, quindi la chiamata a SQLColAttribute dopo il completamento di SQLExecute o SQLExecDirect non comporta un round trip del server.

Nota

Gli attributi dell'identificatore 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 usa l'istruzione EDIZIONE STANDARD T FMTONLY per ridurre il sovraccarico del server quando SQLColAttribute viene chiamato per istruzioni preparate ma non elaborate.

Per i tipi valore 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 risultante da una clausola COMPUTE nell'istruzione Transact-SQL edizione Standard LECT 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.

* L'attributo di istruzione if disponibile SQL_SOPT_SS_HIDDEN_COLUMNS è impostato su SQL_HC_ON.

SQL Server 2005 (9.x) ha introdotto campi descrittori specifici del driver per fornire informazioni aggiuntive per indicare rispettivamente il nome della raccolta di XML Schema, 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 XML Schema. 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 XML Schema. 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 XML Schema. 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.

Inoltre, SQL Server 2005 (9.x) ha introdotto nuovi campi descrittori specifici del driver per fornire informazioni aggiuntive per una colonna tipo definito dall'utente (UDT) di un set di risultati o un parametro 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 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 caratteristiche avanzate di data e ora

Per i valori restituiti per i tipi di data/ora, vedere la sezione "Information Returned in IRD Fields" in Parameter and Result Metadata (Metadati dei parametri e dei risultati).

Per altre informazioni, vedere Miglioramenti di data e ora (ODBC).

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

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

Supporto di SQLColAttribute per colonne di tipo sparse

SQLColAttribute esegue una query sul nuovo campo descrittore di riga di implementazione (IRD), SQL_CA_SS_IS_COLUMN_edizione Standard T, per determinare se una colonna è una colonna column_set.

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

Vedi anche

Funzione SQLColAttribute
Dettagli di implementazione dell'API ODBC
SQLSetStmtAttr