Содержит функцию в Windows, поисковый запрос не работает - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь выполнить следующий запрос на подключенном диске

"SELECT System.ItemName, System.ItemUrl, System.Search.AutoSummary, System.Search.Contents FROM JulioCompartido.SystemIndex WHERE scope ='file://JulioCompartido/Comp' and CONTAINS('"a*"')"

эта команда возвращает "Got OleDbException, код ошибки 0x80004005L (Unspecified error)"

Запрос работает правильно, если я не добавляю предложение содержимого

"SELECT System.ItemName, System.ItemUrl, System.Search.AutoSummary, System.Search.Contents FROM JulioCompartido.SystemIndex WHERE scope ='file://JulioCompartido/Comp'"

Я украл разные способы вызова функции, содержащей

  • СОДЕРЖИТ ( ' "а *"')
  • СОДЕРЖИТ ( '\ "а \" *')
  • СОДЕРЖИТ ( 'а *')
  • СОДЕРЖИТ ( 'A')

Также добавляем имя столбца в качестве первого параметра, с кавычками и без

  • СОДЕРЖИТ (System.Search.Contents, '\ "a * \"')
  • СОДЕРЖИТ ("System.Search.Contents", '\ "a * \"')

Я попробовал объединить все предыдущие варианты

1 Ответ

0 голосов
/ 12 июня 2019

Contains не является допустимым вызовом в WMI, вам нужно использовать «like» .. например, поле вроде «% a%»

Как вы обнаружили, у вас также не может быть двух предложений where.Вы хотели и их вместе ... так что вы получили

WHERE scope ='file://JulioCompartido/Comp' AND System.Search.Contents LIKE '%a%'", который работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...