• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как Изменить Тип Поля С Текстового На Числовой?

  • Автор темы wk01
  • Дата начала
W

wk01

доброго времени суток!
вот такая получилась ситуация: была создана база, в которой по недальновидности (читай - рас*цензура*яйству) на форму было добавлено текстовое поле вместо числового; с базой взялись работать, наделали много документов; затем к базе потребовался веб-интерфейс с возможностью многокритериального поиска, в том числе и по вилке значений этого злополучного поля.
веб-интерфейс - на xpages, поиск - viewPanel с вычисляемым свойством search, в которое пихается строка полнотекстового запроса. при попытке такого поиска по тому самому полю сервер отвечает runtime error'ом:
Notes error: Relational operators are not supported in text fields

вопросы: как изменить тип поля?

что пробовал:
1) в форме у поля сменил тип text на number, агентом прописал во всех документах численное значение - в поиске ничего не изменилось, та же ошибка;
2) изменил тип поля в форме, прописал численные значения в документы, создал пустую базу и перекопировал в неё все элементы дизайна из первой базы (с уже изменённым типом поля), сделал из второй базы шаблон, обновил дизайн первой по нему - всё равно не ищет, продолжает ругаться и считать поле текстовым.

неужели тип поля сопоставляется с названием поля при первом сохранении формы и остаётся на всю жизнь?
если всё так печально, то для того, чтобы поиск заработал, видимо можно свежее числовое поле на форму бахнуть (которое лотус навсегда запомнит для себя числовым), агентом заполнить его числовыми значениями во всех документах, удалить старое текстовое поле из документов, перелопатить весь код и представления - чтоб обращения везде были к новому полю. но... может быть есть альтернатива?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
легче задать новое поле, труднее вычистить старое
это поле пишется фактически во все элементы дизайна вроде поле $Fields
с другой стороны полнотекстовый поиск для того чтобы что-то найти, он не для математических операций ;)
 
H

hosm

+1 проще создать новое поле. Если есть время, в качестве экспериментов можно удалить фт-индекс, сделать реплику и попробовать пересоздать базу из этой реплики (описано как решение тут ).
У нас как-то для дат обсуждалось в теме вот тут https://codeby.net/threads/33246.html?vi...st&p=155420 и ниже сообщение.
 
W

wk01

всем спасибо за ответы! ;)
эксперимент с созданием реплики удался - в новой реплике лотус признал наконец-то поле числовым, ftsearch заработал на отличненько!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!