Boltik Evgeny пишет:

но если бы сервер умел слегка формировать селект сам то было бы огромное
счестье вем
тобишь можно было бы написать так
for select ... from T1
where ...
casefromwhere :X
 when 1 then TX, TX.F1 = :F1 and T1.Fx = TX.Fx
 when 2 then TX, TX.F1 = :F1 and not T1.Fx = TX.Fx
end
casefromwhere :Y
 when 1 then TY, TY.F1 = :F1 and T1.Fy = TX.Fy
 when 2 then TY, TY.F1 = :F1 and not T1.Fy = TX.Fy
end

Это был бы механизмище, конечно. Нужно ли вот только - это вопрос? Сейчас такое получается вытворять, в частности, FIBPlus'ом с евойными макросами (они сильно жизнь упрощают), но только, разумеется, на клиентской стороне. Логически включаешь/отключаешь целые куски SQL-кода одним махом. Удобно, одним словом.

А так можно было б, конечно, и на сервере разруливать, и не привязываться к инструментарию разработки, упрощающему формирование запросов в run-time.

Не понятно только про "получил прирост в производительности более 10 раз". Это что, только за счет переноса логики формирования динамического SQL с клиента в EXECUTE STATEMENT на сервер?

--
Regards,
Ovchinnikov Vasily
ova at tkvc ru

Ответить