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.
Enumera una tabella di origine dati di diametro.
IDiaTable : IEnumUnknown
Metodi nell'ordine di Vtable
Nella tabella seguente sono elencati i metodi di IDiaTable.
Metodo |
Descrizione |
|---|---|
recupera interfaccia di IEnumVARIANT versione di questo enumeratore. |
|
Recupera il nome della tabella. |
|
Recupera il numero di elementi della tabella. |
|
Recupera un riferimento a un particolare indice della voce. |
Note
questa interfaccia implementa IEnumUnknown metodi di enumerazione nello spazio dei nomi Microsoft.VisualStudio.OLE.Interop.IEnumUnknown l'interfaccia di enumerazione è molto più efficiente per la ripetizione sul contenuto della tabella che IDiaTable::get_Count e IDiaTable::Item metodi.
L'interpretazione di IUnknown interfaccia restituito dall'una o l'altra IDiaTable::Item metodo o Next il metodo (nello spazio dei nomi Microsoft.VisualStudio.OLE.Interop) dipende dal tipo di tabella.Ad esempio, se IDiaTable l'interfaccia rappresenta un elenco di database di origine inseriti, IUnknown l'interfaccia deve essere eseguire una query per IDiaInjectedSource interfaccia.
Note per i chiamanti
Leggi questa interfaccia chiamando IDiaEnumTables::Item o IDiaEnumTables::Next metodi.
Le seguenti interfacce implementate con IDiaTable interfaccia (ovvero è possibile eseguire una query IDiaTable interfaccia per una delle interfacce):
Esempio
la prima funzione, ShowTableNames, visualizza i nomi di tutte le tabelle nella sessione.la seconda funzione, GetTable, esamina tutte le tabelle per una tabella che implementa un'interfaccia specificata.la terza funzione, UseTable, viene illustrato come utilizzare GetTable funzione.
[!NOTA]
CDiaBSTR è una classe che esegue il wrapping di un oggetto BSTR e posizionano gli handle che liberano la stringa durante la creazione di istanze esce dall'ambito.
void ShowTableNames(IDiaSession *pSession)
{
CComPtr<IDiaEnumTables> pTables;
if ( FAILED( psession->getEnumTables( &pTables ) ) )
{
Fatal( "getEnumTables" );
}
CComPtr< IDiaTable > pTable;
while ( SUCCEEDED( hr = pTables->Next( 1, &pTable, &celt ) )
&& celt == 1 )
{
CDiaBSTR bstrTableName;
if ( pTable->get_name( &bstrTableName ) != 0 )
{
Fatal( "get_name" );
}
printf( "Found table: %ws\n", bstrTableName );
}
// Searches the list of all tables for a table that supports
// the specified interface. Use this function to obtain an
// enumeration interface.
HRESULT GetTable(IDiaSession* pSession,
REFIID iid,
void** ppUnk)
{
CComPtr<IDiaEnumTables> pEnumTables;
HRESULT hResult;
if (FAILED(pSession->getEnumTables(&pEnumTables)))
Fatal("getEnumTables");
CComPtr<IDiaTable> pTable;
ULONG celt = 0;
while (SUCCEEDED(hResult = pEnumTables->Next(1, &pTable, &celt)) &&
celt == 1)
{
if (pTable->QueryInterface(iid, (void**)ppUnk) == S_OK)
{
return S_OK;
}
pTable = NULL;
}
if (FAILED(hResult))
Fatal("EnumTables->Next");
return E_FAIL;
}
// This function shows how to use the GetTable function.
void UseTable(IDiaSession *pSession)
{
CComPtr<IDiaEnumSegments> pEnumSegments;
if (SUCCEEDED(GetTable(pSession, __uuidof(IDiaEnumSegments), &pEnumSegments)))
{
// Do something with pEnumSegments.
}
}
Requisiti
intestazione: Dia2.h
raccolta: diaguids.lib
DLL: msdia80.dll