• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Вопрос по Db.serch

  • Автор темы allex
  • Дата начала
A

allex

Есть формула
Код:
SELECT ((form="sp_main" & year ="2010" & type_jilfond="текст") | (form="sp_main_sub" & year ="2010" & type_jilfond="текст") | (form="sp_main_sub_itog" & year ="2010" & type_jilfond="текст"))
По ней выдается результат как положено - 21 док

Делаю скриптом

Код:
sf={((Form = "sp_main" & year ="}+ sel_y + {" & type_jilfond="}+Cstr(c)+{") | (Form = "sp_main_sub" & year =" } + sel_y + {" & type_jilfond="}+Cstr(c)+{") | (Form = "sp_main_sub_itog" & year = "}+ sel_y +{" & type_jilfond="}+Cstr(c)+{"))}
Set collection = sprdb.Search(sf, Nothing,0)

Результат - 6 документов

Закономерность в том, что 6 - это число главных документов (без респонсов)
Респонсы отбираются по форме sp_main_sub

Где копать ?
 
A

amigolinx

в формуле используется "|" (OR), а в скрипте в запросе использован "&" (AND) :whoareyou?:
 
N

nvyush

Может так надо:
sf={((Form = "sp_main" & year ="}+ sel_y + {" & type_jilfond="}+Cstr©+{") | (Form = "sp_main_sub" & year ="} + sel_y + {" & type_jilfond="}+Cstr©+{") | (Form = "sp_main_sub_itog" & year = "}+ sel_y +{" & type_jilfond="}+Cstr©+{"))}
По крайней мере в выделенных местах видны несоответствия в формулах

З.Ы. не видно, где выделял. Похоже жирный с курсивом смешивать здесь нельзя. С "И" и "ИЛИ" разобрались, здесь year =" } + sel_y + {" либшний пробел
 
A

amigolinx

вот в этом куске (Form = "sp_main_sub" & year =" } лишний пробел вставляется перед годом
 
Мы в соцсетях:

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