Notes Error: Query Is Not Understandable

Тема в разделе "Lotus - Программирование", создана пользователем dimat, 17 ноя 2011.

  1. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Всем привет!
    Данная ошибка выскакивает при попытке ft поиска по NotesDocumentcollection:

    Код (Text):
    y$="2011"
    ftquery$={FIELD FieldName="}+y$+{"}
    Call NotesDocumentCollection.FTSearch(ftquery$,0)
    Такая же ошибка была если ft поиск производился по NotesDatabase, если в составле формулы поиска присутсвовала
    {FIELD FieldName="}+y$+{"}.

    Например:

    ftquery$={FIELD Form="FormName"}
    ftquery$=ftquery$+{ & FIELD FieldName="}+y$+{"}
    ftquery$=ftquery$+{ & FIELD FieldName2="}+EmplName$+{"}

    и если ее убираю - все отрабатывает без проблем.

    в чем может быть проблема?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    поле числовое?
     
  3. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Текстовое.

    Забыл указать
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если изначально поле создавалось с другим типом (например, числовое, дата), то в БД оно всё равно считается с исходным типом, даже если во всех документах оно текстовое. ЕМНИП, помогает только удаление поля из всех документов с последующим компактом и созданием поля заново.
    Попробуйте создать агентом в документах новое поле нужного типа.
     
  5. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Поле было изначально текстовое.
    Да и если бы это было не так, мне кажется не привело бы к такой ошибке, такие документы не попали бы в результат
     
  6. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    а такой запрос проходит?
    Код (Text):
    ftquery$={FIELD FieldName="2011"}
     
  7. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    такая же ерунда
     
  8. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Судя по тому, что в поле хранится год, в форме для этого поля сначала мог быть задан числовой тип. Может было две формы с так названым полем, в одной числового типа, в другой — текстового. По крайней мере у меня в подобной ситуации выводилось именно такое сообщение об ошибке.
    Для проверки попробуйте такой код:
    ftquery$={FIELD FieldName=@TextToNumber("2011")}
     
  9. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а разве в фт-поиске отработает @? Тогда уже просто Search надо.
     
  10. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Решил не мучаться так как сделать нужно срочно.
    не стал включать в строку поиска год, складываю результаты в папку, а там notesView.GetAllDocumentsByKey ищу документы нужного мне года
     
  11. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    С собаками я, конечно, погорячился :) . А что касается ошибки, то предлагаю простой эксперимент: набрать в строке поиска представления "Все документы" почтовой базы FIELD PostedDate = "2011" и FIELD PostedDate = 2011 и сравнить результат.

    Кстати, гугл-поиск по форуму рулит: http://www.google.com/search?hl=ru&inl...mp;x=22&y=9

    Вот, например:
    http://codeby.net/index.php?showtopic=17864
     
  12. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    nvy
    Набрал в строке поиска представления, где отображаются все доки:
    FIELD PostedDate = "2011" - ошибка Query is not understandable
    FIELD PostedDate = 2011 - не найдено совпадений
     
  13. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    может єто вообще датовое поле?
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    О чём я и говорил выше — при попытке поиска текста в нетекстовом поле выводится ошибка "Query is not understandable", хотя сам запрос ошибок не содержит.
     
  15. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    nvy
    Вы правы, оно типа дата числовое.
    Как мне его переделать на текстовое?
     
  16. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Ну так ведь ещё в первом своем сообщении писал:
    http://codeby.net/ipb.html?s=&sh...st&p=214457
    Создайте в форме вычисляемое текстовое поле с нужным значением, допишите его агентом во все документы и используйте в ft-поиске.
     
Загрузка...

Поделиться этой страницей