Requisiti relativi al sottolinguaggio SQL per i provider OLE DB

Il livello di supporto per il linguaggio SQL di un provider OLE DB determina il grado di efficienza con cui SQL Server delega a tale provider le operazioni relative alle query distribuite. Se un provider non supporta il linguaggio SQL, ma si limita ad aprire i set di righe, in SQL Server è necessario recuperare l'intero set di righe ed eseguire tutte le operazioni logiche, anche se per una query distribuita è sufficiente un subset di righe del set di righe di origine. Se un provider OLE DB supporta numerosi elementi della sintassi SQL, in SQL Server è possibile generare query più complesse che consentono al provider di origine di filtrare le righe non necessarie prima di restituire il set di righe a SQL Server.

La specifica OLE DB definisce una proprietà DBPROP_SQLSUPPORT che consente ai provider di segnalare il livello di supporto della sintassi SQL. Di seguito vengono indicati i livelli minimi di supporto della sintassi SQL necessari nelle diverse versioni di SQL Server per l'esecuzione delle query distribuite:

  • SQL Server 2005: DBPROPVAL_SQL_SUBMINIMUM

  • SQL Server 2000: DBPROPVAL_SQL_SUBMINIMUM

  • SQL Server 7.0: DBPROPVAL_SQL_ANSI92_ENTRY o DBPROPVAL_SQL_ODBC_CORE

SQL Server 2000 e versioni successive, oltre a supportare un livello inferiore della sintassi SQL per i provider OLE DB sottostanti, include il nuovo set di proprietà SQLPROPSET_OPTHINTS che consente ai provider di segnalare la disponibilità del supporto per singoli elementi della sintassi SQL oltre a quelli definiti per DBPROPVAL_SQL_SUBMINIMUM. Un provider che supporta qualche funzione per l'ottimizzazione delle query distribuite, ma non l'intera sintassi DBPROPVAL_SQL_ANSI92_ENTRY o DBPROPVAL_SQL_ODBC_CORE, può utilizzare le proprietà SQLPROPSET_OPTHINTS per segnalare a SQL Server le funzioni di ottimizzazione supportate.