Oggetti OLE DB utilizzati dalle query distribuite
Nella tabella seguente vengono illustrati gli oggetti e le interfacce OLE DB utilizzati dalle query distribuite Transact-SQL. Per poter essere utilizzato nelle query distribuite Transact-SQL, un provider OLE DB deve supportare un gruppo minimo di oggetti e interfacce. Tali oggetti e interfacce sono contrassegnati con Sì nella colonna Necessario della tabella. Gli oggetti e le interfacce contrassegnati con No nella colonna Necessario sono necessari solo per il supporto delle funzionalità avanzate delle query distribuite. Se l'interfaccia non è supportata dal provider, non è supportata nemmeno la relativa funzionalità Transact-SQL. Ad esempio, se le interfacce IRowsetLocate e IRowsetChange non sono supportate, le istruzioni UPDATE e DELETE non funzionano correttamente nelle tabelle remote.
Oggetto |
Interfaccia |
Necessario |
Descrizione |
---|---|---|---|
Data Source |
IDBInitialize |
Sì |
Inizializza e imposta il contesto dei dati e di protezione. |
|
IDBCreateSession |
Sì |
Crea un oggetto DB Session. |
|
IDBProperties |
Sì |
Ottiene informazioni sulle funzionalità del provider e imposta le proprietà di inizializzazione. |
|
IDBInfo |
No |
Ottiene informazioni sulla sintassi SQL supportata dal provider. |
DB Session |
IDBSchemaRowset |
No |
Ottiene i metadati della tabella e delle colonne. I set di righe necessari sono TABLES e COLUMNS. Gli altri set di righe utilizzati, se disponibili, sono TABLES_INFO, CATALOGS, INDEXES, STATISTICS, TABLE_STATISTICS, VIEWS, PRIMARY_KEYS, TABLE_PRIVILEGES e COLUMN_PRIVILEGES. |
|
IOpenRowset |
Sì |
Apre un set di righe su una tabella, un indice o un istogramma. |
|
IGetDataSource |
Sì |
Torna all'oggetto origine dei dati da un oggetto DB Session. |
|
IDBCreateCommand |
No |
Crea un oggetto Command (query). |
|
ITransactionLocal |
No |
Avvia una transazione nel provider. |
|
ITransactionJoin |
No |
Viene utilizzata per il supporto di transazioni distribuite. Se questa interfaccia non è supportata, in una transazione utente non sono consentiti gli aggiornamenti su un provider remoto. |
Rowset (in una tabella) |
IRowset |
Sì |
Esegue la scansione delle righe. |
|
IAccessor |
Sì |
Esegue le associazioni alle colonne di un set di righe. |
|
IColumnsInfo |
Sì |
Ottiene informazioni sulle colonne di un set di righe. |
|
IRowsetInfo |
Sì |
Ottiene informazioni sulle proprietà di un set di righe. |
|
IRowsetLocate |
No |
Necessaria per operazioni UPDATE o DELETE e ricerche basate su indici. |
|
IRowsetChange |
No |
Necessaria per operazioni INSERT, UPDATE o DELETE in una tabella. Per il supporto delle istruzioni INSERT, UPDATE o DELETE, i set di righe per le tabelle di base devono supportare questa interfaccia. |
|
IConvertType |
Sì |
Verifica se un set di righe supporta le conversioni di tipi di dati specifici nelle relative colonne. |
Rowset (in un indice) |
IRowset |
Sì |
Esegue la scansione delle righe. |
|
IAccessor |
Sì |
Esegue le associazioni alle colonne di un set di righe. |
|
IColumnsInfo |
Sì |
Ottiene informazioni sulle colonne di un set di righe. |
|
IRowsetInfo |
Sì |
Ottiene informazioni sulle proprietà di un set di righe. |
|
IRowsetIndex |
Sì |
È necessaria per i set di righe in un indice. Viene utilizzata per la funzionalità di indicizzazione (impostazione di intervalli, ricerca). |
|
IConvertType |
Sì |
Verifica se un set di righe supporta le conversioni di tipi di dati specifici nelle relative colonne. |
Command (facoltativo) |
ICommand |
Sì |
Viene utilizzata per eseguire query. |
|
ICommandText |
Sì |
Viene utilizzata per la definizione del testo delle query. |
|
ICommandProperties |
Sì |
Specifica le proprietà necessarie per i set di righe restituiti dal comando. |
|
ICommandWithParameters |
No |
Viene utilizzata per l'esecuzione di query con parametri. |
|
ICommandPrepare |
No |
Viene utilizzata per preparare un comando per il recupero di metadati. |
Error (facoltativo) |
IErrorRecords |
Sì |
Ottiene un puntatore a un'interfaccia IErrorInfo per un record di errore. |
|
IErrorInfo |
Sì |
Ottiene una descrizione di un record di errore. |
Qualsiasi oggetto (facoltativo) |
ISupportErrorInfo |
No |
Determina se un'interfaccia specificata supporta gli oggetti errore. |