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

Вниз

select из строковой переменной.   Найти похожие ветки 

 
Beer   (2002-04-09 17:05) [0]

Мастера!!
Interbase.
Как в хранимой процедуре собрать курсор, т.е. select динамический, условия собираются в процессе выполнения процедуры по определенным условиям допустим в строковую переменную, а потом нуно его исполнить и пробежать по записям, т.е. FOR SELECT ... DO

Как это можно сделать?


 
Виктор Щербаков   (2002-04-09 17:10) [1]

Никак. Такая функциональность не реализована :(


 
Beer   (2002-04-09 17:14) [2]

Ок, тогда каким образом это обойти? Собрал например в проге запрос.. И? Бежать стандартными .Next?


 
Johnmen   (2002-04-09 17:20) [3]

...пихнул его в Query, например, потом Open и беги...


 
Alexander Vasjuk   (2002-04-09 17:26) [4]

Можно в хр.процедуре выбрать все записи а по условию выдавать suspend


 
Beer   (2002-04-09 17:32) [5]

2 Johnmen > Ну, т.е. стандартно.. Но процедуры на порядок быстрее... Хотя тут еще одна мысль посетила.. Если создавать view динамически и потом из хранимой на него ссылаться это быстрее будет?? =о)
2 Alexander Vasjuk> Так select Динамический и как сказано нет такой функциональность в ИБ...


 
Виктор Щербаков   (2002-04-09 17:32) [6]

Запросы с параметрами можно использовать в SP, а вот динамически формировать текст SQL нельзя. И похоже разработчики IB не собираются такое реализовывать в ближайшем будущем.
Так что реализовать фишку наподобие передачи имен таблиц для выборки в SP не получится.


 
Alexander Vasjuk   (2002-04-09 17:38) [7]

Beer © (09.04.02 17:32)
>select Динамический
Т.е. и набор таблиц, откуда идет выборка, меняется?


 
Beer   (2002-04-09 17:39) [8]

Нда... ИБ достаточно клевый сервер, но вот это печально.. Ладно, выкрутимся...

Всем спасибо!!


 
Beer   (2002-04-09 17:42) [9]

2 Alexander Vasjuk> Не набор даже, а условия выборки меняются.. Т.е. where..


 
Alexander Vasjuk   (2002-04-09 17:52) [10]

Beer © (09.04.02 17:42)
Так если так, в процедуре выбирай ВСЁ в запросе for select ..., а suspend делай в теле if ... then ...
В if делаешь сложную проверку.


 
Johnmen   (2002-04-09 18:08) [11]

>Beer ©
>...Но процедуры на порядок быстрее...

Можно поинтересоваться, откуда такая информация ?



 
Beer   (2002-04-09 18:14) [12]

Где-то читал.. Или неправда?


 
Beer   (2002-04-09 18:18) [13]

2 Alexander Vasjuk> Можно и так конечно...


 
Johnmen   (2002-04-09 18:24) [14]

Неправда...


 
Beer   (2002-04-09 18:41) [15]

2 Johnmen > Мои доводы: Сервер обычно устанавливается на более мощной машине, чем рабочая станция и это уже один из плюсов, особенно, если обслуживается небольшое количество клиентов. Оптимизированные алгоритмы выборки данных реализованные в сервере я думаю все таки эффективнее, чем простой прямой перебор на клиенте, тем более, если он забирает не все данные сразу, а партиями.. Я ошибаюсь?


 
Johnmen   (2002-04-09 18:48) [16]

Я что-то не уловил...

>Оптимизированные алгоритмы выборки данных реализованные в
>сервере я думаю все таки эффективнее, чем простой прямой
>перебор на клиенте

Вообще-то все запросы выполняются серваком !
И непонятно, я что же перебирается на клиенте ?


 
Beer   (2002-04-09 18:53) [17]

Именно тот случай, который в начале я назвал как прямой путь, т.е. выбираем в ДатаСеты и Next....


 
Val   (2002-04-09 19:03) [18]

остается вопрос, нужно ли вам это на клиенте? зависит от конкретной задачи.


 
Johnmen   (2002-04-09 19:04) [19]

Иду домой. Напоследок :
Время передачи результатов выполнения любого запроса, типа SELECT ...
на клиента всегда на несколько порядков больше времени всех остальных накладных расходов !
(исключая времея выполнения самого запроса - оно может быть очень большим !)

PS По поводу последней твоей реплики :
Пойми, что чистое время выполнения запроса не зависит от того,
кто инициировал его выполнение - клиент или сам сервак !



 
Beer   (2002-04-09 19:08) [20]

Val > Изначально вообще вопрос ставился не о том к чему пришли
Johnmen > Именно поэтому я и говорю о разных затратах.. Ладно, остальное по мылу, если есть желание..



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

Форум: "Базы";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
1-94373
Starkom
2002-04-17 12:26
2002.04.29
можно ли как-либо отловить вызов dll в коде?


7-94584
VadimI
2002-01-29 09:34
2002.04.29
Проверка коннекта через модем


3-94279
yozhik
2002-04-08 13:29
2002.04.29
Проблема с ADO


1-94488
MVova
2002-04-15 13:57
2002.04.29
Точка входа в функцию


1-94385
inko
2002-04-17 15:41
2002.04.29
Выгрузка из памяти DLL файлов.





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