Programando o conjunto de propriedades SQLPROPSET_OPTHINTS
Provedores OLE DB individuais podem oferecer suporte a alguma funcionalidade do SQL além da definida em DBPROPVAL_SQL_SUBMINIMUM, mas não toda a funcionalidade em DBPROPVAL_SQL_ODBC_CORE ou DBPROPVAL_SQL_ANSI92_ENTRY. O otimizador de consulta do SQL Server pode usar algumas das funcionalidades que têm suporte desses drivers para melhorar o desempenho de consultas distribuídas. Esses provedores podem usar o conjunto de propriedades SQLPROPSET_OPTHINTS para informar ao SQL Server sobre os recursos para os quais dão suporte que podem acelerar consultas distribuídas.
Embora o conjunto de propriedades SQLPROPSET_OPTHINTS esteja definido na documentação do SQL Server, desenvolvedores de provedor OLE DB devem codificar suporte para a propriedade em seus provedores. Depois que o suporte a esse conjunto de propriedades está codificado no provedor, o SQL Server o usa para otimizar o desempenho de consultas distribuídas.
Provedores OLE DB individuais podem oferecer suporte a alguma funcionalidade do SQL além da definida em DBPROPVAL_SQL_SUBMINIMUM, mas não toda a funcionalidade em DBPROPVAL_SQL_ODBC_CORE ou DBPROPVAL_SQL_ANSI92_ENTRY. Esses provedores devem oferecer suporte a toda a funcionalidade coberta pelo conjunto de propriedades SQLPROPSET_OPTHINTS (exceto a SQLPROP_DATELITERALS) para se qualificarem para suporte a DBPROPVAL_SQL_ANSI92_ENTRY ou DBPROPVAL_SQL_ODBC_CORE.
A tabela a seguir lista as propriedades relatadas por meio de SQLPROPSET_OPTHINTS.
Propriedade |
Descrição |
---|---|
SQLPROP_ANSILIKE |
Especifica que a cláusula LIKE tem suporte conforme definido no Nível de Entrada ISO, com os caracteres curinga % e _. |
SQLPROP_DATELITERALS |
Especifica que o provedor oferece suporte a constantes ou literais de datetime, de acordo com a sintaxe Transact-SQL. |
SQLPROP_DYNAMICSQL |
Especifica que o provedor oferece suporte à sintaxe do marcador de parâmetro ODBC usando pontos de interrogação ( ? ). |
SQLPROP_INNERJOIN |
Especifica que o provedor oferece suporte a referências a várias tabelas na cláusula WHERE, desde que elas não sejam referências a junções externas. |
SQLPROP_GROUPBY |
Especifica que o provedor oferece suporte às cláusulas GROUP BY e HAVING em uma instrução SELECT. A propriedade também especifica que o provedor oferece suporte às funções de agregação AVG, COUNT, MIN, MAX e SUM, desde que DISTINCT não seja especificado como um argumento de agregação. |
SQLPROP_NESTEDQUERIES |
Especifica que o provedor oferece suporte a instruções SELECT aninhadas na cláusula FROM. |
SQLPROP_SQLLIKE |
Indica que o provedor oferece suporte à sintaxe LIKE do SQL Server. Quando SQLPROP_SQLLIKE está ativado, o otimizador pode enviar uma consulta que contém um predicado LIKE do SQL Server para o servidor remoto, se isso for justificado pelo plano da consulta. Se SQLPROP_SQLLIKE estiver desativado, um predicado LIKE do SQL Server sempre será avaliado localmente. |
SQLPROP_SUBQUERIES |
Especifica que o provedor oferece suporte a subconsultas conforme definido no Nível de Entrada ISO. |
As seguintes constantes são usadas para definir o conjunto de propriedades SQLPROPSET_OPTHINTS no código de provedores OLE DB.
Extern const GUID SQLPROPSET_OPTHINTS =
{ 0x2344480c, 0x33a7, 0x11d1,
{ 0x9b, 0x1a, 0x0, 0x60, 0x8, 0x26, 0x8b, 0x9e }
};
enum SQLPROPERTIES
{
SQLPROP_NESTEDQUERIES = 0x4,
SQLPROP_DYNAMICSQL = 0x5,
SQLPROP_GROUPBY = 0x6,
SQLPROP_DATELITERALS = 0x7,
SQLPROP_ANSILIKE = 0x8,
SQLPROP_INNERJOIN = 0x9,
SQLPROP_SUBQUERIES = 0x10,
SQLPROP_SQLLIKE = 0x15
}