Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
Противник войны   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.009 c
1-54581
Last
2003-04-07 08:10
2003.04.17
Дополнение строки пробелами


7-54904
Gero-man
2003-02-23 12:17
2003.04.17
Отлов обращений к файлу


4-54952
Anar
2003-02-18 22:43
2003.04.17
Проблемы с CreateProcess


14-54859
Seb_kost
2003-04-01 11:08
2003.04.17
Программирование приборов ч/з RS-232


6-54777
Bosh
2003-02-21 04:36
2003.04.17
RAS





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский