Notes Error: Query Is Not Understandable

dimat

Lotus team
31.07.2008
516
0
#1
Всем привет!
Данная ошибка выскакивает при попытке ft поиска по NotesDocumentcollection:

Код:
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$+{"}

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

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

nvyush

Lotus team
22.04.2009
2 317
0
#4
Если изначально поле создавалось с другим типом (например, числовое, дата), то в БД оно всё равно считается с исходным типом, даже если во всех документах оно текстовое. ЕМНИП, помогает только удаление поля из всех документов с последующим компактом и созданием поля заново.
Попробуйте создать агентом в документах новое поле нужного типа.
 

RAJ

Well-known member
17.01.2007
440
0
#6
а такой запрос проходит?
Код:
ftquery$={FIELD FieldName="2011"}
 

nvyush

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

dimat

Lotus team
31.07.2008
516
0
#10
Решил не мучаться так как сделать нужно срочно.
не стал включать в строку поиска год, складываю результаты в папку, а там notesView.GetAllDocumentsByKey ищу документы нужного мне года
 

nvyush

Lotus team
22.04.2009
2 317
0
#11
а разве в фт-поиске отработает @? Тогда уже просто Search надо.
С собаками я, конечно, погорячился :) . А что касается ошибки, то предлагаю простой эксперимент: набрать в строке поиска представления "Все документы" почтовой базы 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
 

dimat

Lotus team
31.07.2008
516
0
#12
nvy
Набрал в строке поиска представления, где отображаются все доки:
FIELD PostedDate = "2011" - ошибка Query is not understandable
FIELD PostedDate = 2011 - не найдено совпадений
 

nvyush

Lotus team
22.04.2009
2 317
0
#14
nvy
Набрал в строке поиска представления, где отображаются все доки:
FIELD PostedDate = "2011" - ошибка Query is not understandable
FIELD PostedDate = 2011 - не найдено совпадений
О чём я и говорил выше — при попытке поиска текста в нетекстовом поле выводится ошибка "Query is not understandable", хотя сам запрос ошибок не содержит.
 

dimat

Lotus team
31.07.2008
516
0
#15
О чём я и говорил выше — при попытке поиска текста в нетекстовом поле выводится ошибка "Query is not understandable", хотя сам запрос ошибок не содержит.
nvy
Вы правы, оно типа дата числовое.
Как мне его переделать на текстовое?
 

nvyush

Lotus team
22.04.2009
2 317
0
#16
Как мне его переделать на текстовое?
Ну так ведь ещё в первом своем сообщении писал:
http://codeby.net/ipb.html?s=&sh...st&p=214457
Создайте в форме вычисляемое текстовое поле с нужным значением, допишите его агентом во все документы и используйте в ft-поиске.