Condividi tramite


Modelli provider OLE DB (C++)

OLE DB è una parte importante della strategia di accesso ai dati universali di Microsoft. La progettazione OLE DB consente l'accesso ai dati ad alte prestazioni da qualsiasi origine dati. Tutti i dati tabulari possono essere visualizzati tramite OLE DB indipendentemente dal fatto che provenissero da un database. La flessibilità ti dà una grande quantità di potere.

Come illustrato in Provider e consumer OLE DB, OLE DB usa il concetto di consumer e provider. Il consumer effettua richieste di dati; il provider restituisce i dati in un formato tabulare al consumer. Dal punto di vista della programmazione, l'implicazione più importante di questo modello è che il provider deve implementare qualsiasi chiamata che il consumer può effettuare.

Che cos'è un provider?

Un provider OLE DB è un set di oggetti COM che gestiscono chiamate di interfaccia da un oggetto consumer, trasferendo i dati in un formato tabulare da un'origine durevole (denominata archivio dati) al consumer.

I provider possono essere semplici o complessi. Il provider può supportare una quantità minima di funzionalità o un provider di qualità di produzione completo implementando più interfacce. Un provider può restituire una tabella, consentire al client di determinare il formato di tale tabella ed eseguire operazioni su tali dati.

Ogni provider implementa un set standard di oggetti COM per gestire le richieste dal client, con il significato standard che qualsiasi consumer OLE DB può accedere ai dati da qualsiasi provider, indipendentemente dal linguaggio (ad esempio C++ e Basic).

Ogni oggetto COM contiene diverse interfacce, alcune delle quali sono obbligatorie e alcune delle quali sono facoltative. Implementando le interfacce obbligatorie, un provider garantisce un livello minimo di funzionalità (detto conformità) che qualsiasi client deve essere in grado di usare. Un provider può implementare interfacce facoltative per fornire funzionalità aggiuntive. L'architettura dei modelli di provider OLE DB descrive in dettaglio queste interfacce. Il client deve sempre chiamare QueryInterface per determinare se un provider supporta una determinata interfaccia.

Supporto del livello di specifica OLE DB

I modelli di provider OLE DB supportano la specifica OLE DB versione 2.7. Usando i modelli di provider OLE DB, è possibile implementare un provider conforme al livello 0. Nell'esempio Provider , ad esempio, vengono usati i modelli per implementare un server di comando non SQL (MS-DOS) che esegue il comando DIR DOS per eseguire query sul file system. L'esempio Provider restituisce le informazioni sulla directory in un set di righe, ovvero il meccanismo OLE DB standard per la restituzione di dati tabulari.

Il tipo più semplice di provider supportato dai modelli OLE DB è un provider di sola lettura senza comandi. Sono supportati anche i provider con comandi, in quanto sono funzionalità di segnalibro e lettura/scrittura. È possibile implementare un provider di lettura/scrittura scrivendo codice aggiuntivo. I set di righe dinamici e le transazioni non sono supportati dalla versione corrente, ma è possibile aggiungerli se necessario.

Quando è necessario creare un provider OLE DB?

Non è sempre necessario creare il proprio provider; Microsoft fornisce diversi provider standard preconfezionati nella finestra di dialogo Proprietà collegamento dati in Visual C++. Il motivo principale per creare un provider OLE DB è sfruttare la strategia di accesso ai dati universali. Ecco alcuni dei vantaggi di questa operazione:

  • Accesso ai dati tramite qualsiasi linguaggio, ad esempio C++, Basic e Visual Basic Scripting Edition. Consente ai diversi programmatori dell'organizzazione di accedere agli stessi dati nello stesso modo, indipendentemente dal linguaggio usato.

  • Aprire i dati in altre origini dati, ad esempio SQL Server, Excel e Access. Ciò può essere utile se si desidera trasferire i dati tra formati diversi.

  • Partecipazione a operazioni tra origini dati (eterogenee). Questo può essere un modo efficace di data warehousing. Usando i provider OLE DB, è possibile conservare i dati nel formato nativo ed essere comunque in grado di accedervi in un'operazione semplice.

  • Aggiunta di funzionalità aggiuntive ai dati, ad esempio l'elaborazione delle query.

  • Miglioramento delle prestazioni dell'accesso ai dati controllando il modo in cui vengono manipolati.

  • Aumento della robustezza. Se si dispone di un formato di dati proprietario a cui può accedere un solo programmatore, si è a rischio. Usando i provider OLE DB, è possibile aprire il formato proprietario a tutti i programmatori.

Provider aggiornabili e di sola lettura

I provider possono variare notevolmente in complessità e funzionalità. È utile classificare i provider in provider di sola lettura e provider aggiornabili:

  • Visual C++ 6.0 supporta solo provider di sola lettura. La creazione di un provider OLE DB illustra come creare un provider di sola lettura.
  • Visual C++ supporta provider aggiornabili, che possono aggiornare (scrivere in) l'archivio dati. Per informazioni sui provider aggiornabili, vedere Creazione di un provider aggiornabile. L'esempio UpdatePV è un esempio di provider aggiornabile.

Per altre informazioni, vedi:

Vedi anche

Accesso ai dati
Documentazione di OLE DB SDK
guida di riferimento per programmatori OLE DB