Condividi tramite


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

Altre risorse

Funzione SQLColumns