select, where, from, to
Инструкция select возвращает массив записей (nid). Её можно сочетать с предложениями where, from и to.
Пример:
Следующий пример извлекает первые 10 имён из таблицы Customer, где имя содержит букву «s»:
(select Customer where 'First name' like "s" from 0 to 9).'first name'
Предложение where
Содержимое предложения where выполняется на сервере.
- Поэтому внутри
whereнельзя использовать некоторые функции, напримерalertилиdialog.
From и To
С from и to будут возвращены только записи с индексами от 0 до 9.
- Это удобно, чтобы получить первые x записей или разбить результат запроса на страницы.
Блок выполнения
Блок выполнения — это часть после точки в конце инструкции select. В примере выше блоком выполнения служит 'first name'.
Более сложный блок выполнения может содержать переменные и даже вложенные инструкции select. Как и в функциях, последняя инструкция блока определяет тип и значение получаемого массива.
Пример:
Следующий код даёт массив чисел — сумму продаж по каждому клиенту:
(select Customer where 'First name' like "s" from 0 to 9).
(
var a := id;
var i := select invoice where customer = a;
sum(i.TOTAL);
)
Предупреждение:
Блоки выполнения, обращающиеся к другим таблицам, могут работать с ошибками, если код выполняется на сервере.
- В таких случаях лучше воспользоваться циклом
for i in select.
