Compartilhar via


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
}