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

Вниз

Обработка информации по типу удаленных процедур   Найти похожие ветки 

 
sunrider   (2003-05-28 00:04) [0]

Привет всем. Мастера поделитесь мнением : Есть необходимость
использовать процедуру на сервере с конструкцией типа
for select ....
where <параметры выбора>
into :<переменные>
do begin
insert into table_name(...) values(...)
end
Вся проблема в том, что число параметров для where величина переменная. Как все это реализовать на стороне клиента понятно,
но не интересно :-) и конечно медленее, чем на сервере.
Не охота так же создавать процедуру на ходу, а потом ее удалять.
Может есть у кого идеи? Заранее благодарю


 
Zacho ©   (2003-05-28 00:17) [1]

1. А сделать запрос типа INSERT INTO ... SELECT ... WHERE ... вместо хранимой процедуры и динамически формировать его не клиенте никак ?

> и конечно медленее, чем на сервере

А проверь :-) Сомневаюсь, что сильно медленнее.
2. Смотри в сторону FB 1.5 и EXECUTE STATEMENT


 
sunrider   (2003-05-28 10:42) [2]

У меня база на dialect 1 не совсем желательно переходить на диалект 3. Про то что ты написал - думал конечно, но есть пару значений первичного ключа, которые нужно задавать. По этому
придеться использовать именно - insert into table_name(...) values(...). Или UDF писать, что ли.


 
Sandman25 ©   (2003-05-28 11:01) [3]

>но есть пару значений первичного ключа, которые нужно задавать.

Можно написать INSERT INTO table1 SELECT para_znacenii1, para_znacenii2, table2.field1, table2.field2 FROM table2


 
AlexSerp ©   (2003-05-28 11:24) [4]

Определи в процедуре максимум нужных тебе параметров.
И делай в ней разбор на заполненность параметров.

if PARAM1 is not null then begin
for select ...
do suspend;
end
if PARAM2 is not null then begin
for select ...
do suspend;
end
if PARAM3 is not null then begin
for select ...
do suspend;
end


 
AlexSerp ©   (2003-05-28 11:25) [5]

Да, забыл.
Там, естественно, можно и комбинации заполненности параметров применять.


 
Zacho ©   (2003-05-28 13:09) [6]


> sunrider (28.05.03 10:42)

Если первичный ключ формируется генератором, то можно INSERT INTO ... SELECT (GEN_ID(MY_GEN,1), ...) FROM ... WHERE ..


 
sunrider   (2003-05-28 14:40) [7]

Спасибо мужики подсказали идею . Попробую оба варианта.



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
1-60199
OlegM
2003-06-05 12:13
2003.06.19
Как получить имена всех компонентов на форме опред. типа


1-60203
andrey_pst
2003-06-04 19:47
2003.06.19
Перегрузка встроенных операций


1-60165
tasman
2003-06-06 06:51
2003.06.19
Динамическое назначение event у компоненты NMPop3 (из FastNet)


14-60324
vidiv
2003-06-03 12:27
2003.06.19
Как передать от своей програмы до своей некоторый файл по сети...


11-60099
Alexander
2002-09-25 16:06
2003.06.19
Эквивалентны ли функции StrIComp из StrUtils и StrComp из KOL?