SQLColumns
SQLColumns restituisce SQL_SUCCESS indipendentemente dall'esistenza di valori per i parametri CatalogName, TableName o ColumnName. SQLFetch restituisce SQL_NO_DATA quando in questi parametri vengono utilizzati valori non validi.
[!NOTA]
Per i tipi di valori di grandi dimensioni, tutti i parametri della lunghezza verranno restituiti con un valore di SQL_SS_LENGTH_UNLIMITED.
SQLColumns può essere eseguito su un cursore del server statico. Un tentativo di eseguire SQLColumns su un cursore aggiornabile (dinamico o keyset) restituirà SQL_SUCCESS_WITH_INFO, che indica che il tipo di cursore è stato modificato.
Il driver ODBC di SQL Server Native Client supporta la segnalazione di informazioni relative alle tabelle sui server collegati mediante l'accettazione di un nome in due parti per il parametro CatalogName: Linked_Server_Name.Catalog_Name.
Per le applicazioni ODBC 2.x che non utilizzano caratteri jolly in TableName, SQLColumns restituisce informazioni su qualsiasi tabella il cui nome corrisponde a TableName e che appartiene all'utente corrente. Se l'utente corrente non è proprietario di alcuna tabella il cui nome corrisponde al parametro TableName, SQLColumns restituisce informazioni su qualsiasi tabella appartenente ad altri utenti, se il nome della tabella corrisponde al parametro TableName. Per le applicazioni ODBC 2.x che utilizzano caratteri jolly, SQLColumns restituisce tutte le tabelle i cui nomi corrispondono a TableName. Per le applicazioni ODBC 3.x, SQLColumns restituisce tutte le tabelle i cui nomi corrispondono a TableName, indipendentemente dal proprietario o dall'uso di caratteri jolly.
Nella tabella seguente vengono elencate le colonne restituite dal set di risultati:
Nome colonna |
Descrizione |
---|---|
DATA_TYPE |
Restituisce SQL_VARCHAR, SQL_VARBINARY o SQL_WVARCHAR per i tipi di dati varchar(max). |
TYPE_NAME |
Restituisce "varchar", "varbinary" o "nvarchar" per i tipi di dati varchar(max), varbinary(max) e nvarchar(max). |
COLUMN_SIZE |
Restituisce SQL_SS_LENGTH_UNLIMITED per i tipi di dati varchar(max), che indica che la dimensione della colonna è illimitata. |
BUFFER_LENGTH |
Restituisce SQL_SS_LENGTH_UNLIMITED per tipi di dati varchar(max), che indica che la dimensione del buffer è illimitata. |
SQL_DATA_TYPE |
Restituisce SQL_VARCHAR, SQL_VARBINARY o SQL_WVARCHAR per i tipi di dati varchar(max). |
CHAR_OCTET_LENGTH |
Restituisce la lunghezza massima di una colonna di tipo carattere o binario. Restituisce 0 per indicare che la dimensione è illimitata. |
SS_XML_SCHEMACOLLECTION_CATALOG_NAME |
Restituisce il nome del catalogo nel quale è definito il nome di una raccolta di XML Schema. Se non è possibile trovare il nome del catalogo, questa variabile contiene una stringa vuota. |
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME |
Restituisce il nome dello schema nel quale è definito il nome di una raccolta di XML Schema. Se non è possibile trovare il nome dello schema, questa variabile contiene una stringa vuota. |
SS_XML_SCHEMACOLLECTION_NAME |
Restituisce il nome di una raccolta di XML Schema. Se non è possibile trovare il nome, questa variabile contiene una stringa vuota. |
SS_UDT_CATALOG_NAME |
Nome del catalogo contenente il tipo definito dall'utente. |
SS_UDT_SCHEMA_NAME |
Nome dello schema contenente il tipo definito dall'utente. |
SS_UDT_ASSEMBLY_TYPE_NAME |
Nome completo dell'assembly del tipo definito dall'utente. |
Per i tipi definiti dall'utente, viene utilizzata la colonna TYPE_NAME esistente per indicare il nome del tipo definito dall'utente, pertanto non è necessario aggiungere altre colonne al set di risultati di SQLColumns o SQLProcedureColumns. DATA_TYPE per un parametro o una colonna con tipo definito dall'utente è SQL_SS_UDT..
Per il tipo definito dall'utente dei parametri, è possibile utilizzare i nuovi descrittori specifici del driver definiti precedentemente per ottenere o impostare le proprietà di metadati aggiuntive di un tipo definito dall'utente, nel caso in cui il server restituisca o richieda queste informazioni.
Quando un client si connette a SQL Server e chiama SQLColumns, l'utilizzo dei valori dei caratteri jolly o NULL per il parametro di input del catalogo non restituirà informazioni provenienti dagli altri cataloghi. Verranno invece restituite solo informazioni relative al catalogo corrente. Il client può prima chiamare SQLTables per determinare in quale catalogo si trova la tabella desiderata. Il valore di catalogo potrà, quindi, essere utilizzato per il parametro di input del catalogo nella chiamata a SQLColumns per recuperare informazioni sulle colonne della tabella.
SQLColumns e parametri con valori di tabella
Il set di risultati restituito da SQLColumns dipende dall'impostazione di SQL_SOPT_SS_NAME_SCOPE. Per ulteriori informazioni, vedere SQLSetStmtAttr. Di seguito sono indicate le colonne che sono state aggiunte per i parametri con valori di tabella:
Nome colonna |
Tipo di dati |
Sommario |
---|---|---|
SS_IS_COMPUTED |
Smallint |
Per una colonna in TABLE_TYPE, SQL_TRUE se la colonna è una colonna calcolata. In caso contrario, SQL_FALSE. |
SS_IS_IDENTITY |
Smallint |
SQL_TRUE se la colonna è una colonna Identity. In caso contrario, SQL_FALSE. |
Per ulteriori informazioni sui parametri con valori di tabella, vedere Parametri con valori di tabella (ODBC).
Supporto di SQLColumns per le caratteristiche avanzate di data e ora
Per informazioni sui valori restituiti per i tipi data/ora, vedere Metadati del catalogo.
Per ulteriori informazioni, vedere Miglioramenti relativi a data e ora (ODBC).
Supporto di SQLColumns per tipi CLR definiti dall'utente di grandi dimensioni
SQLColumns 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 SQLColumns per colonne di tipo sparse
Due colonne specifiche di SQL Server sono state aggiunte al set di risultati per SQLColumns:
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
SS_IS_SPARSE |
Smallint |
SQL_TRUE se una colonna è di tipo sparse. In caso contrario, SQL_FALSE. |
SS_IS_COLUMN_SET |
Smallint |
SQL_TRUE se la colonna è column_set. In caso contrario, SQL_FALSE. |
In conformità con la specifica ODBC, SS_IS_SPARSE e SS_IS_COLUMN_SET vengono visualizzati prima di tutte le colonne specifiche del driver che sono state aggiunte alle versioni di SQL Server precedenti a SQL Server 2008 e dopo tutte le colonne richieste da ODBC stesso.
Il set di risultati restituito da SQLColumns dipende dall'impostazione di SQL_SOPT_SS_NAME_SCOPE. Per ulteriori informazioni, vedere SQLSetStmtAttr.
Per ulteriori informazioni sulle colonne di tipo sparse in ODBC, vedere Supporto per colonne di tipo sparse (ODBC).
Vedere anche
Concetti
Dettagli di implementazione di API ODBC