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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-60193
Xeon
2003-06-04 16:41
2003.06.19
Реестр


3-60045
LeReve
2003-05-27 20:45
2003.06.19
как НОРМАЛЬНО создать поле MEMO (ДБ) в DatabaseDesktop?


14-60352
TRh
2003-05-28 15:42
2003.06.19
Восстанавливаем исходники


8-60282
idz
2003-03-06 21:46
2003.06.19
Рисование на TImage


1-60113
sndanil
2003-06-06 10:24
2003.06.19
событие DLL_PROCESS_ATTACH в Dll на Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский