![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi+SQL. Как добавить запрос к уже выполненому запросу [D7, IB6.x]
alk © (2006-03-06 09:17:00)Есть заброс который выводит данные из 3х таблиц, как сделать новый запрос, чтобы выбрать данные из уже выполненного отчета. Например есть база книг с кодами книг, автора и издательства. В начале выводиться все книги, затем пользователь выбирает автора, как вывести всех авторов не меняя самый первый запрос. И затем пользователь выбирает издательство, как не меняя те два запроса отсортировать таблицу???
alk (2006-03-06 10:03:00) [61]вот первый запрос который выберает всех авторов
select * from Book, avtors,izdatelstva,litra where avtors.kod_avtora=:kod_avt and book.kod_izdatelstva=izdatelstva.kod_izdatelstva and book.kod_tip_litra=litra.kod_tip_litra and book.kod_avtora=:kod_avt
второй запрос который выбирает все издательства
select * from Book, avtors,izdatelstva,litra where avtors.kod_avtora=book.kod_avtora and izdatelstva.kod_izdatelstva=:kod_izd and book.kod_tip_litra=litra.kod_tip_litra and book.kod_izdatelstva=:kod_izd
как их модифицировать???
Sergey13 (2006-03-06 09:54:00) [62]2[4] alk © (06.03.06 09:40)
>а как так чтобы если пользователь не выбрал какой то пораметр
where....
...and ((:par is null) or (field_name=:par))
alk (2006-03-06 09:51:00) [63]а если в таблице будет 5000 записей, наверное будет проблемотично их переносить из одной базы в другую?
Ormada (2006-03-06 09:48:00) [64]ну делай временную таблицу в памяти(Rx к примеру) заполняй её а потом использую Rx какой то там query (а-ля TxQuery)можешь делать запросы к таблице
alk (2006-03-06 09:40:00) [65]а как так чтобы если пользователь не выбрал какой то пораметр, то параметр в sql выбирал все записи? у меня получаеться если не чего не выбираеться то значение равно null. а как сделать чтобы было не null а все записи?
Sergey13 (2006-03-06 09:38:00) [66]2[2] alk © (06.03.06 09:27)
Обычно - сначала спрашивают, что надо, потом делают, а не наоборот.
Можно написать универсальный запрос с параметрами, учитывающий все вводимые параметры (этот способ предпочтительнее всего). Можно переписывать текст запроса, анализирую пользовательский выбор (менее предпочтительно). Можно загрузить все себе и потом извращаться на клиенте с фильтрацией/сортировкой (возможно, но на больших объемах можно и обломиться ждавши). По разному в общем можно.
alk (2006-03-06 09:27:00) [67]в начале просто надо вывести все книги, затем пользователь должен выбрать пораметры используя которые будет отсортированна таблица.
когды я выполняю второй запрос, первый получаеться меняеться. И тем более пользователь может выбрать автора, но не выбрать издательство и наоборот. Как мне зделать так чтобы таблица фильтровалась исходя из того что выбрал пользователь.
Sergey13 (2006-03-06 09:23:00) [68]2alk © (06.03.06 09:17)
>В начале выводиться все книги,
Зачем?
>затем пользователь выбирает автора,
Почему не сразу спросить его об авторе?
>как вывести всех авторов не меняя самый первый запрос.
Выполнить второй.