Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Хранимая процедура   Найти похожие ветки 

 
Противник войны   (2003-03-27 09:50) [0]

хочу сделать что то подобное, но в хранимой процедуре сервера это не предусмотренно

for select z.kodl from zp z1, zu z2, nя n1
where z1.kod=z2.kod and
z2.kodn=n1.kodn and
n1.n in (:i_n)

делать временную таблицу с перебором делать не желательно
может кто нито подскажет как орагнизовать диапазон значений в выборке?<


 
Соловьев ©   (2003-03-27 09:55) [1]

=????


 
Соловьев ©   (2003-03-27 09:58) [2]

или так:
<= and >=


 
Противник войны   (2003-03-27 10:02) [3]

нет
в переменной :i_n формируеться строковое значение (там может быть и 1 вхождение "А" а может быть и N вхождений "А, В, С, Д, Е, Ж")

(и еще прежде чем довать совет посмотрите как работает опретор IN)


 
Соловьев ©   (2003-03-27 10:05) [4]


> (и еще прежде чем довать совет посмотрите как работает опретор
> IN)

нужно давать полное описание своей процедуры. Форум телепатов сейчас перенесли.

> в переменной :i_n формируеться строковое значение (там
> может быть и 1 вхождение "А" а может быть и N вхождений
> "А, В, С,

like


 
Сторонник мира   (2003-03-27 10:05) [5]

>>но в хранимой процедуре сервера это не предусмотренно

Макроподстановки вообще не предусмотрены !


 
Противник войны   (2003-03-27 10:10) [6]

create procedure VSATISTICAPLATPONAZN (
i_god integer,
i_vidar integer,
i_n varchar(3000))
returns (
r_nach numeric(15,2),
r_opl numeric (15,2))
as
declare variable p_kodzempol integer;
begin

for select z.kodl from zp z1, zu z2, nя n1
where z1.kod=z2.kod and
z2.kodn=n1.kodn and
n1.n in (:i_n))
into :p_kodzempol
do
begin
....
end
end

вот по этому и прощу совета как это наиболее рационально организовать
Строить циклический вызов процедуры из приложения с накоплением результата это самоубийство ресурсов сети


 
Fiend ©   (2003-03-27 10:11) [7]

ну если в хранимой процедуре то на мой взгляд тока временная таблица впоне приемлемый метод, и в случаеи ИБ наверное единственный.
Хотя я не исключаю что можно сделать внутри процедуры динамический запрос, предварительно ею же и сформируленный. Однако сам такого в ИБ не делал, потому не берусь утверждать что так в нём можно.

Ну и ка кбы последжний вариант, если конечно можно обойтись без ХП, то может просто сформировать из клиента запрос (как строку) и выполнить его?


 
Противник войны   (2003-03-27 10:14) [8]

по поводу выполения на клиенте да так и работало
но теперь вся логика и все запросы вынесены на сервер

а исключения - это плохое правило, и пребегать к нему не хочеться


 
Sergey13 ©   (2003-03-27 10:20) [9]

2Противник войны (27.03.03 10:14)
А что за данные в этом IN? Если это данные из реальных таблиц, то можно подзапрос вставить. Если это произвольные значения, то только временная таблица, ИМХО, и опять же подзапрос из нее.


 
Противник войны   (2003-03-27 10:24) [10]

>Sergey13 ©
это строковое занечение, формируемое по желанию пользователя (ему предлягаеться список в chekbox и он выбирает то что ему необходимо для построения отчета)
временных таблиц тоже кучу не разведеш (если всем понадобиться одновременно этот отчет!!)


 
Соловьев ©   (2003-03-27 10:34) [11]

написать UDF, которая будет разбивать строку на составляющие и в цыкле проганять...


 
Противник войны   (2003-03-27 10:37) [12]

да спасибо
с udf - это красиво


 
Fiend ©   (2003-03-28 13:21) [13]

То Противник войны:
а временных таблиц и н надо на каждого юзера, для этого есть User который даёт логин пользователя.
Я надеюсь они все не под одним логином ходят?


 
zacho ©   (2003-03-28 21:00) [14]

Можешь посмотреть в сторону FB 1.5 - там есть SELECT FROM STATEMENT, EXECUTE STATEMENT (или EXECUTE VARCHAR ? Уже не помню, в общем посмотри сам)


 
Sergey Masloff   (2003-03-28 22:15) [15]

Fiend © (27.03.03 10:11)
>ну если в хранимой процедуре то на мой взгляд тока временная >таблица впоне приемлемый метод, и в случаеи ИБ наверное >единственный.
Использование временных таблиц в IB (и в любой СУБД версионного типа) чревато огромными неприятностями при интенсивной многопользовательской работе.

zacho ©
>Можешь посмотреть в сторону FB 1.5 - там есть SELECT FROM >STATEMENT
Есть execute varchar но селект из него делать нельзя.


 
zacho ©   (2003-03-28 22:31) [16]


> Sergey Masloff (28.03.03 22:15)

Может быть, я FB 1.5 еще не щупал, просто вспомнилось, что где-то читал про SELECT FROM STATEMENT, может просто приглючилось :-), а может это было в планах разработчиков или вишах юзеров, не помню :-) В общем, пусть автор исходного поста сам посмотрит, что там есть, если, конечно, ему это надо :) А с тобой полностью согласен - нефиг делать "временные таблицы", наверняка задачу можно решить другим способом.



Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
14-54794
ai
2003-04-02 13:55
2003.04.17
Сколько стоит написать OPC-клиента?


14-54795
Ал
2003-04-02 13:52
2003.04.17
Какая версия Win имеется в виду в справке по Win API - Win32s?


14-54791
Дмитрий Баранов
2003-03-31 13:16
2003.04.17
Консольный вывод


3-54406
Apachi
2003-04-01 08:39
2003.04.17
Потоки


14-54880
Карелин Артем
2003-04-02 09:01
2003.04.17
Что за инфа в отклике сервера?