Condividi tramite


Supporto dei tipi di parametro con valori di tabella OLE DB (metodi)

I parametri con valori di tabella sono supportati dai seguenti metodi OLE DB standard:

Metodo

Supporto dei parametri con valori di tabella

ITableDefinitionWithConstraints::CreateTableWithConstraints

Utilizzato quando si conoscono le informazioni sul tipo di parametro con valori di tabella e si desidera creare un'istanza dell'oggetto set di righe di parametri con valori di tabella in base alle informazioni sul tipo.

Per ulteriori informazioni, vedere "Scenario statico" in Creazione di un set di righe di parametri con valori di tabella.

IOpenRowset::OpenRowset

Utilizzato quando non si conoscono le informazioni sul tipo di un parametro con valori di tabella e si desidera creare un'istanza dell'oggetto set di righe di parametri con valori di tabella in base alle informazioni sui metadati recuperate dal server.

Per ulteriori informazioni, vedere "Scenario dinamico" in Creazione di un set di righe di parametri con valori di tabella.

ISSCommandWithParameters::SetParameterInfo

Per specificare un parametro del comando con parametri con valori di tabella, il consumer specifica il tipo del parametro come "table" o "DBTYPE_TABLE" nel membro pwszName della struttura DBPARAMBINDINFO. ulParamSize viene impostato su ~0. Per ulteriori informazioni, vedere "Specifica dei parametri con valori di tabella" in Esecuzione di comandi contenenti parametri con valori di tabella.

ISSCommandWithParameters::SetParameterProperties

Imposta le proprietà specifiche per i parametri con valori di tabella, ad esempio nome dello schema, nome del tipo, ordine delle colonne e colonne predefinite.

Il consumer specifica il numero ordinale del parametro nel membro iOrdinal della struttura SSPARAMPROPS. Il set di proprietà richiesto è DBPROPSET_SQLSERVERPARAMETER.

ISSCommandWithParameters::GetParameterInfo

Ottiene i tipi di tutti i parametri per un comando specificato.

Per i parametri con valori di tabella, il tipo del campo wType nella struttura DBPARAMINFO sarà DBTYPE_TABLE. Il campo ulParamSize verrà impostato su ~0 per indicare che la lunghezza non è nota.

ISSCommandWithParameters::GetParameterProperties

Ottiene informazioni sul tipo aggiuntive per i parametri del tipo DBTYPE_TABLE.

Il consumer specifica il numero ordinale del parametro nel membro iOrdinal della struttura SSPARAMPROPS. Il consumer può richiedere qualsiasi proprietà presente nel set di proprietà DBPROPSET_SQLSERVERPARAMETER riportata in ISSCommandWithParameters::SetParameterProperties.

Poiché il consumer non conosce il tipo di parametro con valori di tabella, il provider deve impostare SSPROP_PARAM_TYPE_TYPENAME, SSPROP_PARAM_TYPE_SCHEMANAME e SSPROP_PARAM_TYPE_CATALOGNAME sui valori corretti. Le proprietà restanti, SSPROP_PARAM_TABLE_DEFAULT_COLUMNS e SSPROP_PARAM_TABLE_COLUMN_SORT_ORDER, utilizzeranno i valori predefiniti. Dopo che il consumer ha individuato il nome del tipo di parametro con valori di tabella, utilizza IOpenRowset::OpenRowset per creare un'istanza di questo parametro con valori di tabella, specificando il nome del tipo di parametro con valori di tabella. Per ulteriori informazioni, vedere Individuazione del tipo di parametro con valori di tabella.

IRowsetInfo::GetProperties

Ottiene le proprietà del set di righe di parametri con valori di tabella. Il consumer può utilizzare queste proprietà per configurare le associazioni in modo ottimale.

IColumnsRowset::GetColumnsRowset

Recupera le informazioni sui metadati relative a una tabella di SQL Server. Per i parametri con valori di tabella, questa stessa interfaccia fornisce informazioni dettagliate sui metadati relative a ogni colonna, ad esempio:

  • DBCOLUMN_FLAGS indica se i valori sono supportati tramite il bit DBCOLUMNFLAGS_ISNULLABLE.

  • DBCOLUMN_ISUNIQUE indica se la nuova colonna è una colonna Identity.

  • DBCOLUMN_COMPUTEMODE indica se la colonna viene calcolata.

IAccessor::CreateAccessor

Per associare un oggetto set di righe di parametri con valori di tabella a un parametro del comando, creare una funzione di accesso con il membro wType impostato su DBTYPE_TABLE. La struttura DBOBJECT conterrà l'interfaccia IID_IRowset o un'altra interfaccia valida dell'oggetto set di righe nel membro iid. Il resto dei campi viene gestito in modo analogo a DBTYPE_IUNKNOWN.