![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание SQL запроса [D5]
Лесникова Марина © (2002-11-16 10:33:00)Мною разрабатывается программа "Ведение бух.учета по оплате за обучение студентами".
Как составить SQL - запрос (или TQuery) для того, чтобы в основном Gride отображались записи,
соответствующие группе студентов, выбранной во вспомогательном Gride.
Если кто - нибудь составляет подобную программу, напишите пожалуйста мне на E - mail: lesnikova@mail.kz. Марина.
Victor_Cr (2002-11-18 10:51:00) [1]Создаешь два запроса TQuery, в первом откуда выбираеться группа студентов просто делаешь запрос на выбор всех групп.
А во второй запросе передаешь как параметр выбраную группу, например:
Query1.SQL = "select groupID,groupNM from groups"
Query2.SQL = "select * from infogroup where <КЛЮЧЕВОЕ ПОЛЕ> = :groupID"
где groups - справочник групп, infogroup - справочная информация по каждой группе.
после этого связываешь Query2 с DataSource Query1. И если я правильно понял задачу, будет работать.
Fantasist (2002-11-18 07:45:00) [2]
> Ну да есть такая вешь, но если записей становися достаточно
> много, то фильтрация нацинает показывать свои "плюсы" в
> скорости.
Конечно. Зависит от того, насколько часто надо обновлять данные и насколько велики объемы. А так, подгрузить данные один раз и потом их фильтровать значительно быстрее. Условий задачи мы не знаем, а упомянуть возможности можем.
Котелок (2002-11-18 05:56:00) [3]
> А еще есть такая вещь как фильтрация. Tquery.Filter, Tquery.Filtered,
> Tquery.FilterOptions.
Ну да есть такая вешь, но если записей становися достаточно много, то фильтрация нацинает показывать свои "плюсы" в скорости.
Fantasist (2002-11-18 00:43:00) [4]
> Просто спрашивали, как через TQuery, а только такой путь
> вижу
А еще есть такая вещь как фильтрация. Tquery.Filter, Tquery.Filtered, Tquery.FilterOptions.
Hun (2002-11-17 00:06:00) [5]Можно либо действительно использовать Masterdetail, либо (что на мой взгляд лучше) пользоваться событиями AfterScroll у Query или OnDataChange у DataSource. А писать надо нечто в таком духе
query2.Close;
query2.ParamByName("StudentGroupId").AsInteger:=
query1.FieldByName("StudentGroupId").AsInteger
query2.Open;
Котелок (2002-11-16 12:13:00) [6]
> Alex-kosmonavt (16.11.02 11:43)
> Вообще-то в некоторых случаях можно и проще
> самом деле существует механизм связывания таблиц
Просто спрашивали, как через TQuery, а только такой путь вижу. Мастер-Детаил только для TTable хорошо.
Alex-kosmonavt (2002-11-16 11:43:00) [7]Вообще-то в некоторых случаях можно и проще
самом деле существует механизм связывания таблиц
Котелок (2002-11-16 11:19:00) [8]Вообше-то вопрос вызывает ещё больше вопросов, чем ответов.
Если я правильно понял, то есть две таблицы одна студенты, вторая оплаты. И связанны они по какомулибо полю (код студента)?
Тогда Sql запрос будет, в обшем, выглядеть так:
select opl.* from <имя таблицы оплат> opl, <имя таблицы студентов> stud where opl.<поле ID студента> = stud.<поле ID студента>