Перейти к содержимому
Участник сообщества #50
Участник сообщества #50
5 февр. 2025 г., 10:02(изменён)
0
0

Возврат нескольких каталогов в XQuery

Из чата сообщества

Коллеги, никто ранее в xquery не возвращал несколько каталогов, или же поля разных каталогов? (return $e/id, $a/id - не работает) Но если один каталог, то работает

Участник сообщества
Участник сообщества5 февр. 2025 г., 10:16(изменён)

Вячеслав, нужно назвать каждый id через пробел $e/id e_id, $a/id a_id

Участник сообщества
Участник сообщества5 февр. 2025 г., 11:14(изменён)

А так может пройдет? arr = ArrayOptFirstElem(XQuery("for $c in collaborators, $p in positions where $c/position_id = $p/id and $c/id = 7158013120741408573 return $c/Fields(id c_id) , $p/Fields(id p_id)"));

alert(arr.c_id + " - " + arr.p_id )

Участник сообщества
Участник сообщества5 февр. 2025 г., 11:29(изменён)

Не не в этом. А как запрос выглядит?

Участник сообщества
Участник сообщества5 февр. 2025 г., 11:34(изменён)

for $c in collaborators, $l in learnings, $al in active_learnings where $l/course_id = $al/course_id and $l/person_id = $c/id and $al/person_id = $c/id

если что-то одно вызывать работает

если вызывать так: return ($c, $l, $al) то выдает, массив с и l и al но не объедененный

Участник сообщества
Участник сообщества5 февр. 2025 г., 11:47(изменён)

А так ?

XQuery("for $c in collaborators, $l in learnings, $al in active_learnings where $l/course_id = $al/course_id and $l/person_id = $c/id and $al/person_id = $c/id return $c/id c_id, $l/id l_id, $al/id al_id")
Участник сообщества
Участник сообщества5 февр. 2025 г., 11:50(изменён)

У вас в выводе есть одинаковые названия у полей. И это очень сложный запрос без конкретного id сотрудника. А так?


var arr = ArrayOptFirstElem(XQuery("for $c in collaborators, $l in learnings, $al in active_learnings where $l/course_id = $al/course_id and $l/person_id = $c/id and $al/person_id = $c/id return $c/id c_id, $l/id l_id, $al/id al_id"));

alert(tools.object_to_text(arr, "json"))
Участник сообщества
Участник сообщества5 февр. 2025 г., 12:09(изменён)

У меня как минимум вопрос, у нас тут какая версия XQuery? Она слишком старая или обрезанная? Там много интересного есть в написании на XQuery 3.0

Участник сообщества
Участник сообщества5 февр. 2025 г., 12:14(изменён)

ну у нас должен заметить одинаковые запросы на SQL и XQuery работают с огромной разнице во времени 1098ms VS 48ms где меньшее XQuery

если я отключу БД то XQuery все еще будет работать, даже без указании в конфиге отсуствия БД

запрос пойдет по структуре xml сбора (если интересно могу потом написать как именно). У нас xquery ровно по ней и работает еслии нет твердово указателя на sql

Участник сообщества
Участник сообщества5 февр. 2025 г., 12:25(изменён)

Тут очень интересно, что имеете в виду и куда пойдет запрос?

Участник сообщества
Участник сообщества5 февр. 2025 г., 13:18(изменён)

запрос пойдет по структуре xml сбора (если интересно могу потом написать как именно). У нас xquery ровно по ней и работает еслии нет твердово указателя на sql

Участник сообщества
Участник сообщества5 февр. 2025 г., 14:15(изменён)

Странно это. Либо нет прав для выполнения на клиенте таких запросов. Или по таймеру отлитает запрос.

Участник сообщества
Участник сообщества5 февр. 2025 г., 14:15(изменён)

Права есть

Там в каталоге 4 записи

Потом покопаюсь на свежую голову, меня больше удивляет, что у нас результаты отличаются, потом посмотрю при разных обстоятельствах как работает

Участник сообщества
Участник сообщества5 февр. 2025 г., 14:21(изменён)

Это условно, там два завершенных, один активный и один сотрудник

Участник сообщества
Участник сообщества5 февр. 2025 г., 14:28(изменён)

А в логе spxml_unibridge_*.log какая запись есть?

Участник сообщества
Участник сообщества5 февр. 2025 г., 14:28(изменён)

Не торопись жечь и ломать. Нет такого... Дьявол скрывается в нюансах слов "отключить БД" и "пойдет по структуре xml"...

Участник сообщества
Участник сообщества5 февр. 2025 г., 15:25(изменён)

Может вы как раз расскажите какая версия XQuery стоит в WS?)

Участник сообщества
Участник сообщества5 февр. 2025 г., 17:33(изменён)

А я вопрос не сразу понял... Какая версия стандарта? Ответ, как и про JS - никакая. Это свой язык, просто по синтаксису похож на стандарт.

Участник сообщества
Участник сообщества5 февр. 2025 г., 17:33(изменён)

А я вопрос не сразу понял... Какая версия стандарта? Ответ, как и про JS - никакая. Это свой язык, просто по синтаксису похож на стандарт.

Участник сообщества
Участник сообщества5 февр. 2025 г., 19:43(изменён)

очень сложно определить, особенно если учесть, что третья редакция, как я подсмотрел, была одобрена в декабре 1999, и платформа SPXML - примерно в это же время.

Участник сообщества
Участник сообщества5 февр. 2025 г., 19:47(изменён)

я намекаю на то, что похожесть синтаксиса ни на что не намекает 😊

Участник сообщества
Участник сообщества5 февр. 2025 г., 19:52(изменён)

Не, смотри, тут есть вся структура что в ES3, а Trim уже выполнен отдельной функцией, так как он появился только с ES5 (ну и не только он) а значит, очевидно, что оно младше ES5, но старше ES2, так как в 2ке небыло try catch или того же while...

Чтобы ответить, необходимо войти в систему