powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / функции аггрегирования в языке запросов к ICM
5 сообщений из 5, страница 1 из 1
функции аггрегирования в языке запросов к ICM
    #33651515
ibmbatman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет все.

Вопрос: Можно ли делать аггрегирование в языке запросов к ICM наподобие того, как в SQL это делается функциями sum, count и т.д.

Например, у меня есть объекты типа MyDocument, которые являются папками для объектов типа MyImage. Чтобы выбрать документ, в который вложены картинки я пишу так:

/MyDocument/OUTBOUNDLINK[@LINKTYPE = \"DKFolder\"]/@TARGETITEMREF => MyImage

А как мне написать запрос, чтобы выбрать документы, у которых больше сотни картинок?

Читал, что язык запросов к ICM построен на базе XPath, в котором в принципе есть такая функция, как count(), но прикрутить ее как-либо к моему запросу не получилось - ругается по-разному.
Примера использования подобного рода не встречал.
...
Рейтинг: 0 / 0
функции аггрегирования в языке запросов к ICM
    #33651568
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Это не про Content Manager случайно?
...
Рейтинг: 0 / 0
функции аггрегирования в языке запросов к ICM
    #33651664
ibmbatman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, про ibm content manager.

а по сабжу?
...
Рейтинг: 0 / 0
функции аггрегирования в языке запросов к ICM
    #33652927
asok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет там аггрегатных функций.
Там вообще почти нет функций - только несколько специфичных для CM.

Это все-таки не реализация спецификации от W3C, а внутренний язык, использующий XPath-синтаксис дабы не изобретать велосипед и не заставлять разработчиков разбираться с очередным набором конструкций.

По поводу конкретной задачи выбора папок, содержащих определенное количество документов - есть метод executeCount(), который возвращает оценку размера результирующего набора. Оценку не в том смысле, что от балды, а в том смысле, что на нее не влияют большинство параметров запроса (например, DK_CM_PARM_MAX_RESULTS). Кроме того, это количество может измениться перед выполнением уже непосредственно поискового запроса, т.к. executeQuery() не блокирует записи и они могут быть удалены/изменены/добавлены.

Соответственно, Вам необходимо выполнить запрос на получение папок, после чего для каждой папки формировать запрос на получение вложенных документов и выполнять для него executeCount().

Подробности в information center (http://publib.boulder.ibm.com/infocenter/cmgmt/v8r3m0/index.jsp).
Правда, их там немного.
...
Рейтинг: 0 / 0
функции аггрегирования в языке запросов к ICM
    #33653051
ibmbatman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 asok,

спасибо, этого я и опасался.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / функции аггрегирования в языке запросов к ICM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]