В приложении для пущей гибкости расчета цен было решено использовать формулы.
Хочется возможность использовать нечто вроде:
- Код: Выделить всё
ROUND(IF(A>B,C,D),2)
//где A,B,C,D - может быть значениями полей в запросе, числами, датами, фазами луны или выражениями.
Пока решил с помощью fpexprpars и создания в датасете вычисляемого поля. Все устраивает, за исключением.... сортировки. Что и логично - данного поля то на сервере нет.
В таблице строк может быть достаточно много (over 100k) и тянуть их все на клиента, а потом локально сортировать дело неблагодарное.
Вот и возник вопрос: А как вычислять пользовательские формулы на стороне сервера?
Может кто-то решал данную задачу - поделитесь, если не решением, то советом. Может есть решения на базе других БД.
p.s. Хотел было написать UDFку, но обнаружилось, что из UDF нет возможности доступа к БД. То есть придется каждый раз передавать параметром в UDF формулу, парсить ее и считать - боюсь за скорость всего этого...