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

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

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

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

Поиск документов

  • Автор темы KLif
  • Дата начала
K

KLif

Всем привет.

Возникла проблема с поиском, попробую описать ситуацию

1. есть список баз, строка поиска ...

Сначало в коллекцию попадают доки опр формы, потом по коллекции идёт поиск уже по введённой строке
Код:
Dim Db As New NotesDatabase("server", "db")
s_form = "@Contains(Form;""FormName"")"
s_search = "string"
Set coll = Db.Search(s_form,Nothing,0)
Call coll.FTSearch(s_search,0)
(код агента)

Этот код работает для всего списка баз и в конце coll что то содержит ...

2. тот же список баз, только работа уже в вебе
Для некоторых баз всё отлично, и в конце есть какой то результат, для остальных агент прекращает работу на строчке Call coll.FTSearch(s_search,0), причём до этого он делает нормально выбор документов по форме + ко всему, поиск по тойже базе но не в вебе даёт нормальный результат и coll содержит несколько документов

Что может быть не так?
 
K

Kee_Keekkenen

если имя формы FormName, то нужно писатьc одними кавычками
Код:
s_form = {@Contains(Form;"FormName")}
 
O

Omh

А с какой ошибкой вываливается?
Или молча?
 
K

KLif

С правами как дела?

Полный доступ ... если агента запускать не в вебе, то для каждой бд из списка он сработает и в конечном итоге coll.Count я получу какое то значение ...
в вебе он не доходит то строчки Print str(coll.Count)

А с какой ошибкой вываливается?
Или молча?

Агент запускается в скртый фрейм, в нём написано Agent done ... больше ничего
 
O

Omh

KLif
А гиде эта строчка в вышеприведённом примере?
Сразу следующая за процитированым куском?

А базы ft-приндексированы?
Я ft поиск вообще не юзаю, но может в вебе он отваливаеться от отсутсвия ft-индекса?
 
K

KLif

KLif
А гиде эта строчка в вышеприведённом примере?
Сразу следующая за процитированым куском?

Код:
Call coll.FTSearch(s_search,0)
Print str(coll.Count)
если её запихать выше FTSearch, то принт всегда сработает и выдаст колличество доков которые найдены по форме...

Я не уверен в индексации каждой БД, но если действительно в вебе из за этого может падать, то шас погляжу ...
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
странно ... у меня ни одна база не проиндексированна, и при этом на некоторых работает ftsearch ... или я как то не правильно думаю ...
Индексы создаются налету. Наверное, свободной памяти везде разное количество.
 
K

KLif

А можно создать поиск такого вида : (форма = имя) и (где в доке встречается "строка"), не используя FTSearch?
 
S

Sandr

А можно создать поиск такого вида : (форма = имя) и (где в доке встречается "строка"), не используя FTSearch?

Если строка не в поле, то нет.
Альтернатива FTSearchу - notesDatabase.Search - иногда лучше его использовать... особенно если в строке поиска используются спецсимволы - FTSearch с ними очень плохо дружит...
 
O

Omh

Imho, db.Search - для чёткого поиска
А FTSearch - пойди туда, не знаю куда, найди то, не знаю что.
Юзерориентированая штука...
 
K

KLif

Вот мне как раз и надо найти доки по введённой строке и она может быть в любом поле ... Search не решение ... да уж, как то туго всё
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Поставь ограничение. Например, 500 документов.
 
Мы в соцсетях:

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