Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создает специальное выражение запроса для того, что в противном случае стало бы конечным выражением запроса.
Синтаксис
HRESULT GenerateForLeaf(
[in] IConditionFactory *pConditionFactory,
[in] LPCWSTR pszPropertyName,
[in] CONDITION_OPERATION cop,
[in] LPCWSTR pszValueType,
[in] LPCWSTR pszValue,
[in] LPCWSTR pszValue2,
[in] IRichChunk *pPropertyNameTerm,
[in] IRichChunk *pOperationTerm,
[in] IRichChunk *pValueTerm,
[in] BOOL automaticWildcard,
[out] BOOL *pNoStringQuery,
[out, retval] ICondition **ppQueryExpression
);
Параметры
[in] pConditionFactory
Тип: IConditionFactory*
Объект IConditionFactory , который можно использовать для создания необходимых узлов.
[in] pszPropertyName
Тип: LPCWSTR
Имя свойства или NULL , если имя свойства отсутствует.
[in] cop
Тип: CONDITION_OPERATION
CONDITION_OPERATION перечислимый тип, определяющий операцию.
[in] pszValueType
Тип: LPCWSTR
Семантический тип, описывающий значения в pszValue и pszValue2.
[in] pszValue
Тип: LPCWSTR
Строка, созданная методом IConditionGenerator::RecognizeNamedEntities , представляющая значение . Если значение pszValue2 не равно NULL, это означает начало диапазона значений.
[in] pszValue2
Тип: LPCWSTR
Если значение не равно NULL, строка, созданная IConditionGenerator::RecognizeNamedEntities , представляющая конец диапазона значения. Если значение РАВНО NULL, то pszValue представляет дискретное значение.
[in] pPropertyNameTerm
Тип: IRichChunk*
Указатель на объект IRichChunk , содержащий сведения о том, какая часть входной строки вызвала имя свойства.
[in] pOperationTerm
Тип: IRichChunk*
Указатель на объект IRichChunk , содержащий сведения о том, какая часть входной строки вызвала операцию.
[in] pValueTerm
Тип: IRichChunk*
Указатель на объект IRichChunk , содержащий сведения о том, какая часть входной строки вызвала значение.
[in] automaticWildcard
Тип: BOOL
Значение TRUE , если созданное условие должно возвращать результаты, начинающиеся с указанного значения, если оно имеет смысл. False , если созданное условие должно возвращать результаты, точно соответствующие указанному значению.
[out] pNoStringQuery
Тип: BOOL*
VARIANT_TRUE , если дерево условий в ppQueryExpression должно быть полным запросом, или VARIANT_FALSE , если полный запрос должен быть дизъюнкцией дерева условий в ppQueryExpression и дерева условий, которое использовалось бы, если бы этот метод вернул S_FALSE.
[out, retval] ppQueryExpression
Тип: ICondition**
Получает указатель на дерево условий ICondition .
Возвращаемое значение
Тип: HRESULT
Возвращает одно из следующих значений или значение ошибки в противном случае.
| Код возврата | Описание |
|---|---|
|
Условие успешно создано. |
|
Условие не было создано, и средство синтаксического анализа запросов должно создать его каким-то другим способом. |
Комментарии
Если этот метод возвращает S_FALSE, вызывающий синтаксический анализатор запроса должен создать конечный узел N с именем этого свойства, операцией и значением. Если этот метод возвращает S_FALSE и pNoStringQuery содержит VARIANT_FALSE, полный созданный запрос представляет собой деизъюнкцию (ИЛИ) с конечным узлом N и деревом условий в ppQueryExpression в качестве субусловий.
Если этот метод возвращает S_OK и pNoStringQuery содержит VARIANT_TRUE, дерево условий в ppQueryExpression является полным запросом.
Значение pszValue2 не равно NULL только для запроса диапазона, например date:1/2/2003..1/30/2006, где pszValue содержит значение для 02.01.2003, а pszValue2 — значение для 30.01.2006. Генератор условий может отказаться от диапазонов, всегда возвращая S_OK, если значение pszValue2 не равно NULL.
Генератор условий может спокойно игнорировать аргументы pPropertyNameTerm, pOperationTerm и pValueTerm. Однако они используются для создания конечного узла, который содержит правильные сведения об источниках в строке запроса имени свойства, оператора и значения, передав их в MakeLeaf.
Во многих случаях генератор условий может игнорировать аргумент automaticWildcard , так как он не применяется. Однако если созданное дерево условий выполняет поиск строк в той или иной форме, когда поиск префиксов (COP_VALUE_STARTSWITH из CONDITION_OPERATION) и поиск точной строки (COP_EQUAL из CONDITION_OPERATION) имеют смысл, то первый должен создаваться при VARIANT_TRUEautomaticWildcard, а второй , когда automaticWildcardVARIANT_FALSE.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows XP с пакетом обновления 2 (SP2), Windows Vista [только классические приложения] |
| Минимальная версия сервера | Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения] |
| Целевая платформа | Windows |
| Header | structuredquery.h |
См. также раздел
Справочные материалы