Страница 1 из 1

Сортировка в execute block

Добавлено: 23 фев 2009, 14:52
UNK
FB2.0
Данные для отчетов формирую в execute block(чтобы не плодить хранимые процедуры).
Необходимо сортировать выходные данные.
Это возможно?

Re: Сортировка в execute block

Добавлено: 23 фев 2009, 15:11
hvlad
UNK писал(а):FB2.0
Данные для отчетов формирую в execute block(чтобы не плодить хранимые процедуры).
И чем мешают процедуры ?
UNK писал(а):Необходимо сортировать выходные данные.
Это возможно?
На клиенте возможно всё

Re: Сортировка в execute block

Добавлено: 23 фев 2009, 18:03
UNK
С execute block гораздо гибче не надо менять метеданные. Отправил заказчику почтой отчет и все.

Re: Сортировка в execute block

Добавлено: 06 мар 2009, 15:58
zz 5
2UNK И как получилось реализовать аналог ХП с помощью EXECUTE BLOCK? Тоже стоит пока такая проблема. Не все отчеты можно реализовать с помощью чистого SQL, а собирать на клиенте - накладно. Надо будет поставить себе погонять двойку.

hvlad Вопрос разработчику можно? :roll: Насколько опасно для базы использовать в качестве вывода отчета создание, выполнение и удаление ХП? Допустим, отчет вызывается десяток раз на дню. Это порочная практика? На другом форуме спрашивал - все отговаривали, на чем, собственно, и остановился. Но аргументированных доводов до сих пор, увы, не услышал.

Re: Сортировка в execute block

Добавлено: 06 мар 2009, 17:01
Attid
zz 5 писал(а): Насколько опасно для базы использовать в качестве вывода отчета создание, выполнение и удаление ХП? Допустим, отчет вызывается десяток раз на дню. Это порочная практика? На другом форуме спрашивал - все отговаривали, на чем, собственно, и остановился. Но аргументированных доводов до сих пор, увы, не услышал.
для методанных есть счетчик который скидывается при бекап\ресторе если не изменяет склероз
то он smolinteger и может быть при таком варианте достигнут. и новые процеру обломятся.

Re: Сортировка в execute block

Добавлено: 06 мар 2009, 17:07
Attid
UNK писал(а):С execute block гораздо гибче не надо менять метеданные. Отправил заказчику почтой отчет и все.

Код: Выделить всё

execute block   . . .. . .
as
begin
   select ..
   from 
   /*order*/order by 2/*order_end*/

   select ..
   from 
   order by 1

   select ..
   from 
   /*order*/order by 9/*order_end*/
end
на клиенте через вырезаешь нужные ордера и заменяешь на свои.

Re: Сортировка в execute block

Добавлено: 06 мар 2009, 17:47
hvlad
zz 5 писал(а):hvlad Вопрос разработчику можно? :roll: Насколько опасно для базы использовать в качестве вывода отчета создание, выполнение и удаление ХП? Допустим, отчет вызывается десяток раз на дню. Это порочная практика? На другом форуме спрашивал - все отговаривали, на чем, собственно, и остановился. Но аргументированных доводов до сих пор, увы, не услышал.
Документация гласит, что все изменения метаданных нужно делать в монопольном соединении. Рекомендую прислушаться к этому. Иначе можно действительно напороться на несколько неожиданные эффекты.

Re: Сортировка в execute block

Добавлено: 07 мар 2009, 14:31
WildSery
hvlad писал(а):Документация гласит, что все изменения метаданных нужно делать в монопольном соединении. Рекомендую прислушаться к этому. Иначе можно действительно напороться на несколько неожиданные эффекты.
+1. Даже в монопольном режиме, если не применять голову, можно нарваться.
У меня разработчик не поставив меня в известность сбацал модуль, который (монопольно, замечу! т.е. в БД кроме него никого) в процессе своей работы выключал запрещающий сохранение триггер, и включал после этого самого сохранения.
Дык вот, примерно каждый десятый раз попытка выключения триггера натыкается на deadlock. Разбираться, почему, я не стал, а сделал правильно. Т.е. без изменений метаданных на ходу.