Ошибка Relational Operators Are Not Supported In Text Fields

Тема в разделе "Lotus - Программирование", создана пользователем oleg7, 11 дек 2009.

  1. oleg7

    oleg7 Гость

    Делаю печать по указанным критериям. При :
    Код (Text):
                If (Doc.Data1(0)<>"") And (Doc.Data2(0)<>"") And (Doc.Problema(0)="") Then             
    Query = {[Date11]>=} & Doc.Data1( 0 ) & { AND } & {[Date12]<=} & Doc.Data2( 0 )
    End If
    Ищет нормально. При:

    Код (Text):
                If (Doc.Data1(0)="") And (Doc.Data2(0)="") And (Doc.Problema(0)<>"") Then              
    Query = {[Problem]=} & Doc.Problema(0)
    End If
    Ищет нормально.
    а при:
    Код (Text):
    If (Doc.Data1(0)<>"") And (Doc.Data2(0)<>"") And (Doc.Problema(0)<>"") Then            
    Query = {[Data11]>=} & Doc.Data1( 0 ) & { AND } & {[Date12]<=} & DialogDoc.Data2( 0 ) & { AND } & {[Problem]=} & Doc.Problema(0)
    End If
    выдает ошибку "relational operators are not supported in text fields "
    в
    Код (Text):
    If CurrentDb.IsFTIndexed Then
    Set ndc = CurrentDb.FTSearch(Query, 0 )
    If ndc.Count=0 Then
    из-за чего это может быть.
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ничего не забыл?
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Query = {[Date11]>=} & Doc.Data1( 0 ) & { AND } & {[Date12]<=} & DialogDoc.Data2( 0 ) & { AND } & {[Problem]=} & Doc.Problema(0)
     
  4. oleg7

    oleg7 Гость

    да {[Date11]>=} есть просто неудачно скопировалось
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    DialogDoc - правильно?
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Месседжбоксни получившийся Query и покажи сюда плз.

    Тоже верно!
    Не увидел
     
  7. oleg7

    oleg7 Гость

    "[Date11]>=04.12.2009 AND [Date12]<=11.12.2009 AND [Problem]=Программное"
    да поля написаны правильно, я просто уже и переименовывать пытался и ... короче с ума начал сходить

    Добавлено: извеняюсь, вопрос снят. Пересоздал базу, заново ее индексировал. Запустил поиск и О ЧУДО ЗАРАБОТАЛО
     
  8. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    /Программное/ должно быть в кавычках, кмк
     
  9. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ребята, вы упустили суть самой проблемы. такая ошибка указывает на то, что итемы Date11 и Date12 - не дата, а текст.
     
  10. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Это чудо до поры до времени. Дело в том, что в БД хранится таблица полей и их тип. Значения этой таблицы вы видите в дизайнере слева в панели со списком полей или при формировании FT-запроса во вьюшке по кнопке "Fields...".

    Поле в эту таблицу добавляется при первом сохранении документа. При выполнении FT-запроса Нотес проверяет типы данных по таблице. Если в таблице сказано, что поле текстовое, значит операции сравнения в FT-запросе не разрешены. У новой БД без документов таблица полей пуста (или определяется по формам, точно не помню)

    Ваше поле с датой очень просто может попасть в таблицу как текст. Достаточно при сохранении первого документа не заполнить поле с датой. Защититься можно только если самому явно в новой БД сохранить документ со всеми не текстовыми полями, участвующими в FT-запросах.
     
  11. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а мне казалось, что запись соответствия происходит при сохранении формы в дизайнере... если сохранить форму с типом поля ТЕКСТ, а потом сменить его на ДАТА, то в таблице будет все-равно ТЕКСТ и фт-поиск не будет работать с датой.
    правда, я не пытался разобраться, посему это лишь предположение было...
    интересно, есть ли где это описано нормально?..

    к стати, а что будет, если создавать программно доки, а соотв формы с полями нет. будет искать?
     
  12. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Тоже думаю, что при СОХРАНЕНИИ формы поля в таблицу помещаются. Главное, что проблема точно есть для новой БД.
     
  13. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    интересно...
    Но в данном случае, имхо, это не причина ошибки, так как иначе не работал бы 1й пример - имена полей ведь те же.
    имхо, здесь может влиять только невнимательность или то, что в документах, подпадающих под 2й поиск, поля дат - текстовые. Это уже обсуждалось на форуме, поищите, кому надо.

    Добавлено: ...или вообще отсутствуют :ph34r:
     
  14. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Думаю и в в том и в этом. В первом случае исп. поле "Date11", а во втором "Data11".
    Во втором случае поле как раз текстовое
     
  15. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    противеречит [post="155404"]этому[/post] и [post="155408"]этому[/post] сообщению автора.
     
  16. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ты код живой видела? может он со страницы форума это все копипатил
    в первом посте видно ясно эту разницу :ph34r: я и не обратил внимания
     
  17. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Вот зануда. :) Думаю, что всё объясняется человеческим фактором. Тем более, что после второго поста (где выражение верно) ошибка исчезла. И ещё уверен, что топикстартер не был в курсе описыванных мной нюансов и моя инфа ему пригодится.
     
  18. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    TIA, откуда вы все знаете?=)
    интересно в общем, вот на этот вопрос подробней: Inside Notes? опыт? или надо найти в хелпе очередное мааааленькое Note, на которое не обращаешь внимание, пока на грабли не наступишь?


    Добавлено: да, я зануда )
     
  19. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    А есть возмодность как-нибудь узнать (дизайнером/администратором/кодом) с каким типом сохранилось поле в этой таблице?


    Нашёл один способ - в расширенном поиске текстовое поле может искаться по принципу "Contains/Not contains", а поле с датой - "Before/After/..."
     
Загрузка...
Похожие Темы - Ошибка Relational Operators
  1. ildareshka
    Ответов:
    0
    Просмотров:
    6
  2. Ruska132
    Ответов:
    1
    Просмотров:
    67
  3. Lamerman
    Ответов:
    0
    Просмотров:
    46
  4. Enima
    Ответов:
    0
    Просмотров:
    63
  5. Baindt
    Ответов:
    1
    Просмотров:
    89

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