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.