Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
9-73958
Juster~
2003-04-20 13:49
2003.10.23
Организация рендеринга


1-74114
myname
2003-10-11 11:43
2003.10.23
Как внедрять в программу небольшие MP3-файлы и проигрывать их? Им


4-74518
Pitay
2003-08-19 19:13
2003.10.23
Может кто знает, как эммитировать нажатие кнопки мыши?


1-74316
maiar
2003-10-12 02:37
2003.10.23
Как ускорить работу TRichEdit?


6-74343
mma
2003-08-27 08:04
2003.10.23
TWebBrowser -> ServerSocket -> ClientSocket -> HTTPS???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский