Главная страница
    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.005 c
1-94354
iva
2002-04-17 10:42
2002.04.29
focus


4-94619
s-thick
2002-02-21 05:05
2002.04.29
Win2000, WinXP (Ctrl-Alt-Del)


1-94502
Alexander Vasjuk
2002-04-16 11:46
2002.04.29
Условная компиляция. Приглашение к разговору.


3-94339
Dmitry Zubtsov
2002-04-09 18:25
2002.04.29
Библиотека/компоненты для работы с базами FoxPro без BDE


3-94284
Бульбаш
2002-04-08 16:08
2002.04.29
Как управлять транзакциями Oracle при использовании ODAC





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