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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.013 c
4-94622
Great
2002-02-17 09:09
2002.04.29
Окно не становится активно при появлении


1-94438
Rooman
2002-04-14 09:15
2002.04.29
А законна ли экспертиза системного блока вообще?


1-94397
SergLight
2002-04-17 18:35
2002.04.29
Обработка OnDrawItem для ListBox а


4-94616
Deus
2002-02-23 00:30
2002.04.29
Кто-нибудь работал с GpSysHook?


7-94596
ураган
2002-02-04 22:38
2002.04.29
помогите написать дрова