Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизЗапрос из TQuery Найти похожие ветки
← →
PavelOKES (2003-04-07 08:43) [0]Всем привет! Народ, кто-нибудь скажет, как можно сделать выборку из выборки? То есть может ли один Query ссылаться на другой Query?
← →
Geka (2003-04-07 08:48) [1]Вложенный запрос
← →
PavelOKES (2003-04-07 08:59) [2]Не канает. Нужно именно из Query.
← →
Мегабайт (2003-04-07 09:24) [3]А иначе никак. Запрос выполняется на серваке, а он не знает, что такое TQuery, он понимает только SQL (для файлов dbf, db и подобных BDE прикидывается серваком). TQuery - это компонент твоей программы, он выдал тебе данные, а дальше работай с ними сам, BDE больше не поможет. Подзапрос - только в SQL-тексте TQuery.
← →
PavelOKES (2003-04-07 09:28) [4]Понятно, спасибо.
← →
RDA (2003-04-07 09:36) [5]>>Не канает. Нужно именно из Query.
Из Query это и есть подзапрос.
← →
Alik007 (2003-04-07 09:46) [6]Можно сохранить результаты запроса в таблицу и сделать запрос уже к ней
Check(DbiQInstantiateAnswer(Query.StmtHandle,
Query.Handle,PChar(FileName),szDBASE,True,Nil));
← →
Соловьев (2003-04-07 10:04) [7]Никогда не пользовался, но в кулибах сказано что можно выполнить запрос к уже запросу:
DbiMakePermanent (hCursor: hDBICur; pszName: PChar; bOverWrite: Bool): DBIResult
← →
perov (2003-04-07 10:52) [8]Есть такой компонент как txQuery, он позволяет делать запросы из любого датасета.
← →
Андрю-ХА (2003-04-07 11:38) [9]Извините, но ерунду все предлагаете.
1. Кидаешь на форму Query1, Query2, DataSource1.
2. Присваиваешь Query.DataBaseName
3. Дальше:
DataSource1.DataSet := Query1;
Query2.DataSource := DataSource1; // эта строчка обеспечивает вложенный запрос
Query1.SQL.Text := "SELECT FIELD1, FIELD2 FROM MY_TABLE";
Query2.SQL.Text := "SELECT FIELD2 FROM MY_TABLE WHERE FIELD1 = :FIELD1" // :FIELD1 - сюда будет автоматом подставляться значение из Query1
4. Любуешься результатом.
← →
Соловьев (2003-04-07 11:42) [10]
> Андрю-ХА © (07.04.03 11:38)
> Извините, но ерунду все предлагаете.
извини, но предлагаешь ерунду ты...
Ты предлагаешь просо автоматизировать подстановку параметра в запрос. Т.е. чтобы не писать код в проге:
...
ParamsByName("FIELD1").AsInteger := Query1.FieldByName("FIELD1").AsInteger;
...
А тут требуется выполнить запрос к уже полученому запросу.
← →
Наталия (2003-04-07 11:57) [11]В LocalSQL существует возможность делать запрос по результатам другого запроса. Для этого нужно текст первого запроса сохранить в файле с расширением sql в той же директории, что и программа.
А второй запрос будет выглядеть примерно так:
select * from tmp.sql
Подробнее - в help LocalSQL.
← →
Андрю-ХА (2003-04-07 13:05) [12]//Соловьев © (07.04.03 11:42)
Согласен, видимо не до конца осознал вопрос :)
← →
Mike Kouzmine (2003-04-07 15:43) [13]Наталия © Все верно, только не в той директории, что и программа, а в любой. (на которую указывае databasename)
← →
sunrider (2003-04-07 15:48) [14]Есть еще один способ - работать с ClientDataSet, для Delphi до 6
версией один из лучших способов работать с данными уже полученными с сервака. Кстати результат ClientDataSet можно
сохранить в файле как бинарном, так и в XML-формате, и потом
работать с ним как с локальной базой данных. Можно создать
структуру такого файла в виде XML заранее, и уж потом заполнять данными. Последнее хорошо, когда работаешь с перекрестными таблицами.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c