TQuery запрос к другому TQuery

CraMas

собственно вопрос в шапкеиспользую BDE (другое не предлагать, так надо (((( )получаю с помощью TQuery часть большой таблицы для последующей обработкихотелось бы с помощью другого квери делать запросы к результатам первого для увеличения скоростихочется что-то типа
Query2.sql := 'select * from Query1 where dt > '<b>01</b>.<b>01</b>.<b>01</b>''
9 ответов

CraMas

в морг


CraMas

Тебе придется писать наследника TqueryDataset, много, много работы.--http://www.podgoretsky.com


CraMas

Вот
делать запросы к результатам первого
не получится. Вместо этого почитать про Locate и Filter, может отпадет необходимость задавать вопрос этот.


CraMas

получаю с помощью TQuery часть большой таблицы для последующей обработкихотелось бы с помощью другого квери делать запросы к результатам первого для увеличения скоростихочется что-то типа
Сохрани запрос из Query1 в файл Query1.sql,а дальше:
Query2.sql := 'select * from "Query1.sql" where dt > '<b>01</b>.<b>01</b>.<b>01</b>''


CraMas

Сохрани запрос из Query1 в файл Query1.sql,а дальше:
Query2.sql := 'select * from "Query1.sql" where dt > '<b>01</b>.<b>01</b>.<b>01</b>''
вылетит ошибка что неизвестное поле dt а насчет задачи, точно незнаю какую версию БДЕ ты пользуешся, и не могу точно сказать воопще БДЕ понимает вложенные запросы? если да тогда запрос должен выглядеть таким образом:
Query2.Close;
 Query2.sql.clear;
 Query2.sql.add('select q.dt, q.field1, q.field2, .... from (');
 Query2.sql.add(Query1sql);
 Query2.sql.add(') q');
 Query2.sql.add('where q.dt > :dt');
Query2.ParamByname('dt').asdate := '01.01.01';
Query2.Open;
совет на future
dt > '01.01.01'
используй параметры всегда...----www.hramin.jino-net.ru


CraMas

точно незнаю какую версию БДЕ ты пользуешся, и не могу точно сказать воопще БДЕ понимает вложенные запросы?
Работал со вложеными подзапросами аж в дельфях пятерке. И кажется это зависит от БД все таки, а не от драйверов.


CraMas

а при чем тут драйвера? и кто сказал что это зависит от драйвера?----www.hramin.jino-net.ru


CraMas

Всмысле от BDE. От движа хотел хотел сказать не зависит, точнее мне кажется что не зависит =)


CraMas

вылетит ошибка что неизвестное поле dt
Может вылетит, может не вылетит. Это смотря как первую SQL написать. Да и в некоторых случаях требуется явноеуказание требуемых полей в строке SELECT (вместо звездочки).Так или иначе способ (много раз использовал его при работе с парадосковскими табличками) рабочий.
и не могу точно сказать воопще БДЕ понимает вложенные запросы? если да тогда запрос должен выглядеть таким образом:
если Paradox, то вложенные запросы - верная смерть (в плане производительности)вопрос автору: обязательно ли так мучаться, может,если запрос не очень сложный, будет лучше выкрутиться с JOIN'нами?