Condividi tramite


Procedura: Enumerazione di origini dati OLE DB (OLE DB)

Per elencare le origini dati visibili all'enumeratore SQLOLEDB, il consumer chiama il metodo ISourcesRowset::GetSourcesRowset. Questo metodo restituisce un set di righe di informazioni sulle origini dati attualmente visibili.

A seconda della libreria di rete utilizzata, viene cercato il dominio appropriato per le origini dati. Per le named pipe, si tratta del dominio a cui è connesso il client. Per AppleTalk, si tratta dell'area predefinita. Per SPX/IPX, si tratta dell'elenco di installazioni di SQL Server individuate nel bindery. Per Banyan VINES, si tratta delle installazioni di SQL Server individuate nella rete locale. I socket multiprotocollo e TCP/IP non sono supportati.

Quando il server viene attivato o disattivato, può impiegare alcuni minuti per aggiornare le informazioni in tali domini.

Un codice di esempio completo è disponibile nel file ListDataSourcesWithEnumerator.cpp. È possibile scaricare un archivio contenente l'esempio dalla pagina SQL Server Downloads su MSDN.

L'esempio è stato sviluppato utilizzando Microsoft Visual C++ 2005.

Nota sulla sicurezzaNota sulla sicurezza

Se possibile, utilizzare l'autenticazione di Windows. Se non è disponibile, verrà richiesto agli utenti di immettere le credenziali in fase di esecuzione. Evitare di archiviare le credenziali in un file. Se è necessario rendere persistenti le credenziali, è consigliabile crittografarle utilizzando CryptoAPI Win32.

Per enumerare origini dati OLE DB

  1. Recuperare il set di righe di origine chiamando ISourceRowset::GetSourcesRowset.

  2. Individuare la descrizione del set di righe degli enumeratori chiamando GetColumnInfo::IColumnInfo.

  3. Creare le strutture di associazione dalle informazioni di colonna.

  4. Creare la funzione di accesso del set di righe chiamando IAccessor::CreateAccessor.

  5. Recuperare le righe chiamando IRowset::GetNextRows.

  6. Recuperare i dati dalla copia del set di righe della riga chiamando IRowset::GetData ed elaborarli.