![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TADOQuery [D6, dBase, FoxPro]
АлеКс © (2003-09-09 05:43:00)
Господа! Научите плиз.
Выполняется запрос в TADOQuery, как по этим данным сделать еще один запрос.
Не хочется перебирать каждую запись в цикле.
АлеКс (2003-09-09 09:01:00) [1]
А может попробовать через ClentDataSet?
АлеКс (2003-09-09 08:51:00) [2]
Спасибо большое но мне пока приходится с Access раьотать (судьба).
Поэтому такие вопросы и возникабт.
А как замечательно было бы если можно вставить в качестве параметра ссылку на RecordSet ведь можно ссылаться на внешнюю базу данных в операторе IN.
Hooch (2003-09-09 08:48:00) [3]
переходи на MS SQL SERVER, там и в запросе селект из селекта можно делать, и RecordSet пихать во временную таблицу и т.д. и т.п. (не на правах рекламы !)
:-))
АлеКс (2003-09-09 08:41:00) [4]
Это компонента BDE? нехотелось бы его за собой таскать.
Radionov Alexey (2003-09-09 08:34:00) [5]
>АлеКс (09.09.03 08:18)
Еще, как вариант:
Использовать простой TQuery, назначив ему соответствующий DataSource.
АлеКс (2003-09-09 08:33:00) [6]
Но всетаки это наборы данных
ADODataSet1.RecordSet
Может есть компоненты (совсем необязательно ADO) в которые можно передать RecordSet и строить по нему запрос.
Radionov Alexey (2003-09-09 08:29:00) [7]
>АлеКс (09.09.03 08:18)
Если в качестве сервера используется SQL-сервер, то можно попробовать использовать представления (view) и работать с ними.
Hooch (2003-09-09 08:27:00) [8]
временная таблица на сервере и RecordSet это немного разные веши.
АлеКс (2003-09-09 08:18:00) [9]
Вот например ребята с Visual FoxPro работают так там в результате запроса создается временная таблица в памяти по которой можно опять делать запрос.
А вариант Radionov Alexey © известный но врезультате первого запроса у меня получится 200.000 записей и по этим записям придется делать около 7.000 запросов. Поэтому делать как вы предложили мне не сруки.
Hooch (2003-09-09 08:12:00) [10]
:-) так не получится, ftDataSet - это тип поля набора данных.
В качестве поля в набор данных можно включить другой набор данных. Тип параметров и тип полей это одно и то же множество, но если в параметрах есть тип ftDataSet то это ещё ни о чем не говорит. Выборку из результата запроса вроди как можно было через BDE сделать
Radionov Alexey (2003-09-09 08:09:00) [11]
>АлеКс (09.09.03 05:43)
Запрос по запросу?
Не знаю, поддерживается ли это у тебя, но я в таких случаях использую конструкцию:
select <fields> where <conditions> from (select <fields> where <conditions> from <tables>)
Либо в where добавить нужные условия :)
АлеКс (2003-09-09 08:01:00) [12]
Ну помоему тут все ясно.
В ADOQuery в запросе можно задавать параметры.
Есть тип параметра ftDataSet - DataSet field
может както через него можно вставить
SELECT * FROM :Param;
Hooch (2003-09-09 07:54:00) [13]
ВЫ бы пример привели если можно
АлеКс (2003-09-09 07:46:00) [14]
Может есть альтернатива. Или придется сохранять в файл и потом уже с ним работать.
Hooch (2003-09-09 07:42:00) [15]
не получится
АлеКс (2003-09-09 07:37:00) [16]
Вот именно (хорошо когда тебя понимают).
Hooch (2003-09-09 07:31:00) [17]
SELECT из RecordSet"а ? :-)
АлеКс (2003-09-09 07:30:00) [18]
Да нет Filter совсем не то.
После выполнения ADOQuery образуется RecordSet. С ним можно работать как с обыкновенной таблицей.
Вот этот набор данных по нему хотелось бы построить запрос и выполнить.
Hooch (2003-09-09 07:23:00) [19]
смотря какой запрос :-) можно Filter попробовать
АлеКс (2003-09-09 07:11:00) [20]
А всетаки!