Ids

Материал из Eludia
Перейти к: навигация, поиск

Описание

Формирует для заданной выборки (ссылки на список хэшей, как правило, получаемой как результат sql_select_all или sql_select_all_cnt) список id, пригодный для подстановки в SQL-выражение 'IN ()', а также индекс: хэш, ключами которого являются те же значения id, а значениями — ссылки соответствующие на хэши, составляющие выборку. Такую комбинацию можно эффективно применять при вычислении статистических данных, относящихся к малому подмножеству большой таблицы. Типичная ситуация для применения данной функции: экран-реестр с постраничной нарезкой.

По умолчанию уникальным номером записи считается компонента с именем 'id', пустым списком id — скаляр '-1', а индекс набирается в пустой анонимный хэш. Всё это можно переопределить опциями id, empty и idx соответственно.

Синопсис (Perl5)

($item -> {records}, $item -> {cnt}) = sql_select_all_cnt ("SELECT ... LIMIT 0, 50");

my ($ids, $idx) = ids ($item -> {records});

sql_select_loop (
 "SELECT ... WHERE id IN ($ids)",
 sub {$idx -> {$i -> {id}} -> {sum} = $i -> {sum}},
);
my ($ids, $idx) = ids ($item -> {records}, {
 field => 'ord',
 empty => '0',
 idx   => $some_existing_hashref,
});
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты