Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'esecuzione di un comando che contiene parametri con valori di tabella richiede due fasi:
Specificare i tipi di parametro.
Associare i dati dei parametri.
Specifica del parametro Table-Valued
Il consumer può specificare il tipo del parametro con valori di tabella. Queste informazioni includono il nome del tipo di parametro con valori di tabella. Include anche il nome dello schema, se il tipo di tabella definito dall'utente per il parametro con valori di tabella non è nello schema predefinito corrente per la connessione. A seconda del supporto del server, il consumer può anche specificare informazioni facoltative sui metadati, ad esempio l'ordinamento delle colonne e può specificare che tutte le righe per colonne specifiche abbiano i valori predefiniti.
Per specificare un parametro con valori di tabella, il consumer chiama ISSCommandWithParameter::SetParameterInfo e, facoltativamente, chiama ISSCommandWithParameters::SetParameterProperties. Per un parametro con valori di tabella, il campo pwszDataSourceType nella struttura DBPARAMBINDINFO ha un valore di DBTYPE_TABLE. Il campo ulParamSize è impostato su ~0 per indicare che la lunghezza è sconosciuta. È possibile impostare proprietà specifiche per i parametri con valori di tabella, ad esempio il nome dello schema, il nome del tipo, l'ordine di colonna e le colonne predefinite, tramite ISSCommandWithParameters::SetParameterProperties.
associazione di parametri Table-Valued
Un parametro con valori di tabella può essere qualsiasi oggetto set di righe. Il provider legge da questo oggetto durante l'invio di parametri con valori di tabella al server durante l'esecuzione.
Per associare il parametro con valori di tabella, il consumer chiama IAccessor::CreateAccessor. Il campo wType della struttura DBBINDING per il parametro con valori di tabella è impostato su DBTYPE_TABLE. Il membro pObject della struttura DBBINDING non è NULL e il membro iid di pObject è impostato su IID_IRowset o su qualsiasi altra interfaccia dell'oggetto set di righe del parametro con valori di tabella. I campi rimanenti nella struttura DBBINDING devono essere impostati allo stesso modo in cui vengono impostati per i BLOB trasmessi.
Nelle associazioni per il parametro con valori di tabella e l'oggetto set di righe associato a un parametro con valori di tabella vengono applicate le restrizioni seguenti:
Gli unici valori di stato consentiti per i dati della colonna del set di righe dei parametri con valori di tabella sono DBSTATUS_S_ISNULL e DBSTATUS_S_OK. DBSTATUS_S_DEFAULT genererà un errore e il valore dello stato associato verrà impostato su DBSTATUS_E_BADSTATUS.
Un parametro con valori di tabella può essere contrassegnato con lo stato DBSTATUS_S_DEFAULT. Gli unici valori validi sono DBSTATUS_S_DEFAULT e DBSTATUS_S_OK. Quando lo stato è impostato su DBSTATUS_S_DEFAULT, il valore del parametro con valori di tabella corrisponde a una tabella vuota.
Le colonne di sola lettura nei parametri con valori di tabella (colonne identity o calcolate) devono essere contrassegnate come predefinite usando la proprietà SSPROP_PARAM_TABLE_DEFAULT_COLUMNS. Anche le colonne con un valore predefinito devono essere contrassegnate come predefinite tramite SSPROP_PARAM_TABLE_DEFAULT_COLUMNS proprietà per consentire l'utilizzo del valore predefinito per i valori di dati della colonna per un determinato parametro con valori di tabella. Il provider ignorerà i valori di dati associati per le colonne contrassegnate come predefinite.
I dati verranno inviati al server per le colonne con DBPROP_COL_AUTOINCREMENT o SSPROP_COL_COMPUTED, a meno che non sia impostato anche SSPROP_PARAM_TABLE_DEFAULT.
Vedere anche
ParametriTable-Valued (OLE DB)
Usare parametri con valori di tabella (OLE DB)