SQLColAttribute
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform 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 SET 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 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. |
* 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 IRD (Implementation Row DeScriptor) SQL_CA_SS_IS_COLUMN_SET 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