Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

Select from Query   Найти похожие ветки 

 
RDen   (2003-10-02 12:40) [0]

Здравствуйте. Ситуация такая: из таблицы выбираю записи удовлетворяющие условию:
Query1.Close;
Query1.SQL.Add("Select * from ""+ "Base\1.DBF" +"" where Diag = 200");
Query1.Open;

далее требуется из этой выборки сделать ещё выборку с другим условием....
Подскажите пожалуйста как сделать


 
Vlad ©   (2003-10-02 12:45) [1]

А что мешает сделать второй query, где написать тот же селект, но с доп. условиями отбора ?
А иначе - только фильтром.


 
RDen   (2003-10-02 13:00) [2]

1. Дело в том, что цепочка из запросов может быть длинной и разной, т.е. например пользователь сначала выбрал фамилии начинающиеся на букву А , затем из этой выборки выбрал ещё с каким-то условием и т.д. В следующий раз пользователь может построить свою цепочку запросов подругому.
2. Фильтр применить не получается, потому что он каждый раз отфильтровывает из полного набора данных, а не из уже отфильтрованных данных (может я не прав?)


 
Vlad ©   (2003-10-02 13:07) [3]

Фильтром конечно такое не получится.
Но давай по порядку.
1) ты получаешь некий набор данных
2) из него тебе надо сделать еще одну выборку. Вопрос - первый набор данных обязательно должен при этом остаться активным ?
Если нет, то просто динамически формируй SQL строку с нужными критериями в WHERE. Затем переоткрывай DataSet.


 
RDen   (2003-10-02 13:20) [4]

Чё-то не получаетя :(
Может коротенький примерчик приведёшь?


 
Vlad ©   (2003-10-02 13:41) [5]

begin
Query.Close;
Query.Sql.Text:="select * from table where 1=1";
if <условие> then Query.Sql.Add(" and Поле1=значение1") ;
if <другое_условие> then Query.Sql.Add(" and поле2=значение2") ;
Query.Sql.Add("order by поле3");
Query.Open;

end;


 
RDen   (2003-10-02 14:12) [6]

Ваще застопорился - пишу уже:

Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add("Select * from ""+ "Base\1.DBF" +"" where Поле1 = True and Поле2 = 200");
Query1.Open;

выдаётся - Type mismatch expression


 
mfender ©   (2003-10-02 14:35) [7]

Query1.SQL.Add("Select * from ""+ "Base\1.DBF" +"" where Поле1 = True and Поле2 = 200");

С кавычками что-то непонятно...
И, возможно, значения для отбора (200) в кавычки "" заключить надо... Попробуй.


 
RDen   (2003-10-02 14:47) [8]

действительно кавычки, спасибо

Query1.SQL.Add("Select * from ""+ "Base\1.DBF" +"" where Поле1 = True and Поле2 = "200"");


 
Наталия ©   (2003-10-02 14:54) [9]

Но если всё-таки действительно нужно сделать "запрос из запроса", то возможно сохранение текста первого запроса в файле, а затем во втором запросе делать выбор уже из этого файла. Подробности смотри в help по LocalSQL


 
RDen   (2003-10-02 15:12) [10]

вроде победил эту прблему, если кому интересно - могу завтра сообщить. To Наталия: примерно так и пришлось сделать, только не в файле, а в переменной. Всем спасибо за участие.


 
Наталия ©   (2003-10-02 15:26) [11]

RDen (02.10.03 15:12) [10]
Сдаётся мне, что ты не понял, как сделать "запрос из запроса" :))


 
Vlad ©   (2003-10-02 15:31) [12]

>Наталия © (02.10.03 15:26) [11]
А ведь решение грамотное :)


 
NAlexey ©   (2003-10-02 16:04) [13]

>А ведь решение грамотное :)
Где?


 
Vlad ©   (2003-10-02 16:10) [14]

>NAlexey © (02.10.03 16:04) [13]
В [9]


 
Mike Kouzmine ©   (2003-10-02 19:24) [15]

Vlad © (02.10.03 15:31) [12] А разве нет? Я так делал. Вроде работает.


 
Vlad ©   (2003-10-03 10:52) [16]

>Mike Kouzmine © (02.10.03 19:24) [15]
Где я сказал "нет" ?
Я сказал - "Да" ! :)))



Страницы: 1 вся ветка

Текущий архив: 2003.10.23;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.035 c
3-73977
Alexadre
2003-10-05 23:31
2003.10.23
DBGrid-после удаления записи


8-74326
oic
2003-06-21 22:08
2003.10.23
Как из делфи отсканировать или сфотографировать рисунок


1-74203
MetalFan
2003-10-10 08:44
2003.10.23
RichEdit, координаты символа


1-74257
kopcap
2003-10-13 20:40
2003.10.23
Как в Delphi использовать MMX ???


1-74196
KSergey
2003-10-10 09:39
2003.10.23
Про передачу массивов в ф-цию и т.д.