Condividi tramite


Supporto del tipo di parametro con valori di tabella OLE DB

In questo argomento viene descritto il supporto del tipo OLE DB per i parametri con valori di tabella.

Oggetto set di righe di parametri con valori di tabella

È possibile creare un oggetto set di righe specifico per i parametri con valori di tabella. Per creare l'oggetto set di righe di parametri con valori di tabella, utilizzare ITableDefinitionWithConstraints::CreateTableWithConstraints o IOpenRowset::OpenRowset. A questo scopo, impostare il membro eKind del parametro pTableID su DBKIND_GUID_NAME e specificare CLSID_ROWSET_INMEMORY come membro guid. Il nome del tipo di server per il parametro con valori di tabella deve essere specificato nel membro pwszName di pTableID in caso di utilizzo di IOpenRowset::OpenRowset. L'oggetto set di righe di parametri con valori di tabella si comporta come un normale oggetto del provider OLE DB di SQL Server Native Client.

const GUID CLSID_ROWSET_TVP = 
{0xc7ef28d5, 0x7bee, 0x443f, {0x86, 0xda, 0xe3, 0x98, 0x4f, 0xcd, 0x4d, 0xf9}};

CoType RowsetTVP
{
[mandatory] interface IAccessor;
[mandatory] interface IColumnsInfo;
[mandatory] interface IConvertType;
[mandatory] interface IRowset;
[mandatory] interface IRowsetInfo;
[optional]  interface IColumnsRowset;
[optional]  interface IRowsetChange;
[optional]  interface ISupportErrorInfo;
};

DBTYPE_TABLE

Un nuovo tipo, DBTYPE_TABLE, rappresenta un tipo di tabella. Tale tipo specifica i parametri con valori di tabella nelle varie interfacce OLE DB in cui è richiesto un oggetto DBTYPE.

#define DBTYPE_TABLE (143)

Il formato di DBTYPE_TABLE è identico a quello di DBTYPE_IUNKNOWN. Si tratta di un puntatore a un oggetto nel buffer di dati. Per una specifica completa nelle associazioni, il consumer inserisce dati nel buffer DBOBJECT, con iid impostato su una delle interfacce dell'oggetto set di righe (IID_IRowset). Se non viene specificato alcun oggetto DBOBJECT nelle associazioni, si presuppone che l'oggetto sia IID_IRowset.

Le conversioni da e verso DBTYPE_TABLE per qualsiasi altro tipo non sono supportate. IConvertType::CanConvert restituisce S_FALSE per la conversione non supportata per qualsiasi richiesta diversa dalla conversione da DBTYPE_TABLE a DBTYPE_TABLE. In questa situazione si presuppone l'uso di DBCONVERTFLAGS_PARAMETER sull'oggetto Command.

Metodi

Per informazioni sui metodi OLE DB che supportano i parametri con valori di tabella, vedere Supporto dei tipi di parametro con valori di tabella OLE DB (metodi).

Proprietà

Per informazioni sulle proprietà OLE DB che supportano i parametri con valori di tabella, vedere Supporto dei tipi di parametri con valori di tabella OLE DB (proprietà).