![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли сделать SQL запрос внутри Дельфи к результатам запроса в [D5, MSSQL]
theEnter © (2002-10-14 08:55:00)Можно ли сделать SQL запрос внутри Дельфи к результатам запроса выполненного на сервере?
:-) Дело в том что когда я делаю обыкновенный запрос к SQL Server , то иногда мне нужно эти результаты обработать более детально, а бегать в цикле по полям ADOQuery1.Fields[i] неудобно - ведь результат запроса - таблица и к ней логичнее применить SQL запрос ! Заранее спасибо!
Reindeer Moss Eater (2002-10-14 10:06:00) [21]Что бы не заполнять временную таблицу данными, удобнее создавать не ее, а просмотр
theEnter (2002-10-14 10:01:00) [22]Johnmen © : Спасибо! :-) <особенное за ключевые слова :-)>
Johnmen (2002-10-14 09:54:00) [23]>theEnter
По поводу фильтрации набора данных см. свойства Filter, Filtered, метод OnFilterRecord...
А еще лучше - почитай умную книжку...:)))
Ал (2002-10-14 09:49:00) [24]create temp table
создается временная таблица
потом обзіваешь ее как хочешь, заполняешь
и обращаешься в SELECT-е так, как ты ее обозвал.
знаю не по-наслышке, сама использовала
Max Zyuzin (2002-10-14 09:46:00) [25]>AngeL B. (14.10.02 09:13)
Что то я не понял в каком месте будет многократное выполнение запроса... к тому же на сервере все делается (должно) по определению быстрее, а в третих, не сичтаю менее трудоемким процесс перекачки сначала кучи данных на клиента, с последуещей их закачкой в память и обработкой... я думаю "опаньки" раньше произойдет с клиентом.
SQL Сервер на то и сервер, что бы передавать только необходимую информацию клиенту... а ваш подход превращает его в файл сервер.
>theEnter
А вообще лучше воспользоваться советом Johnmen © (14.10.02 09:23)
theEnter (2002-10-14 09:42:00) [26]Johnmen © : А подробнее, если можно ? Просто я новичок в программировании баз данных и для меня слово фильтрация мало что значит,sorry! :-) Заранее спасибо!
Johnmen (2002-10-14 09:37:00) [27]Тогда у тебя один выход - фильтрация !
theEnter (2002-10-14 09:36:00) [28]boogier © : В том то и дело что я не хочу обращаться на сервак после первого запроса и хочу все остальные запросы( к результатам первого запроса) проводить на клиенте! :-)
theEnter (2002-10-14 09:33:00) [29]Johnmen © : Меня интересует именно проблема запроса из запроса! :-) Если кто знает - подскажите, пожалуйста!
theEnter (2002-10-14 09:31:00) [30]Пусть ADOQuery1 - первоначальный запрос к SQL Server"у
теперь DataSource1.DataSet:=ADOQuery1;
Пробовал например пользоваться компонентом TQuery :
Query1.DataSource:=DataSource1;
Но что писать в тексте SQL запроса ?
Незнаю что делать дальше - а то что делал раньше - просто интуитивный поиск решения моей проблемы :-)
Johnmen (2002-10-14 09:23:00) [31]Пересмотреть логику "запроса из запроса" и сконструировать один единственный запрос !
theEnter (2002-10-14 09:22:00) [32]AngeL B. : А как создавать временную таблицу и главное как указать ее имя в slq запросе ? SELECT Field1 FROM ???
boogier (2002-10-14 09:22:00) [33]Обычно это делается через временную таблицу, хранимую на сервере, которая в конце обработки удаляется
AngeL B. (2002-10-14 09:13:00) [34]
> 2 Max Zyuzin:
Вид в каком это предлагаешь ты, приведет к многократному выполнению вложенного запроса на сервере. Если этот запрос велик, то опаньки. Выполнить же запрос к уже сформированному запросу можно только создавая временную таблицу, и помещая туда результаты первоначального запроса.
Max Zyuzin (2002-10-14 09:04:00) [35]Можно.
А в чем собственно проблема? select * from (select * from mytab)... Кстати все запросы делаются на сервере...