Текущий архив: 2008.04.27;
Скачать: CL | DM;
Вниз
несколько запросов Найти похожие ветки
← →
Armond © (2008-04-02 08:59) [0]Добрый день !!! Подскажите как сделать !!! Сделал один запрос,т.е. выбрал нужные записи, потом если понадобится, то необходимо выполнить еще один запрос, но уже из того набора данных, который уже выбрали !!
← →
Sergey13 © (2008-04-02 09:03) [1]Оформить первоначальный запрос в виде подзапроса.
Или фильтровать данные локально на клиенте.
← →
Armond © (2008-04-02 09:21) [2]
> Или фильтровать данные локально на клиенте.
Попробовал так, но он все равно берет весь набор данных
← →
Sergey13 © (2008-04-02 09:25) [3]> [2] Armond © (02.04.08 09:21)
Значит наверное неправильно пробовал. Или есть еще варианты?
← →
Armond © (2008-04-02 09:27) [4]Вариантов нет, может подскажешь как грамотно и правильно справиться с такой задачкой ?
← →
Kolan © (2008-04-02 09:28) [5]Тебе же ответили в [1]. Какие вопросы осталсь?
← →
Sergey13 © (2008-04-02 09:32) [6]> [4] Armond © (02.04.08 09:27)
Так как же я тебе что-то подскажу, если я НИЧЕГО не знаю о твоей проблеме?
← →
ANB (2008-04-02 09:35) [7]
> но уже из того набора данных, который уже выбрали !!
ИМХО : плохо продумано решение. Для клиент-серверных систем - совершенно неудачная задумка. Не имеет смысла выбирать сначала кучу, а потом уже из нее выбирать кусочек.
← →
Kolan © (2008-04-02 09:39) [8]
> [7] ANB (02.04.08 09:35)
Ну почему, может он хочет фильтр сделать…
← →
Armond © (2008-04-02 09:50) [9]Ну можно фильтр, можно запросы, но надо чтобы не из общего набора данных выбиралось, а уже из выбранного
← →
Reindeer Moss Eater © (2008-04-02 10:00) [10]Общий набор под сервером и он может выполнять запросы.
А выбранное уже у тебя и запросы над выбранным выполнять кроме тебя уже некому.
← →
Игорь Шевченко © (2008-04-02 10:01) [11]
> Сделал один запрос,т.е. выбрал нужные записи, потом если
> понадобится, то необходимо выполнить еще один запрос, но
> уже из того набора данных, который уже выбрали
Стандартными средствами нельзя.
← →
Kolan © (2008-04-02 10:01) [12]Что за компоненты ты используешь?
← →
ANB (2008-04-02 10:08) [13]Компоненты - это вторично. Мы ничего не знаем про СУБД.
> Стандартными средствами нельзя.
Мона и довольно тривиально.
1) под первый набор данных завести таблицу (мона временную).
2) insert into tmp_table1 select . . .
3) Показать первую выборку - select * from tmp_table1
4) Если понадобилось - сделать выборку из первой выборки
select * from tmp_table1 where . . .
Тока для такого извращения нужны серьезные основания.
← →
Reindeer Moss Eater © (2008-04-02 10:10) [14]Это то же самое как если у первому запросу добавить условие в where и повторно выполнить запрос на сервере.
то есть не то что он хочет.
← →
Armond © (2008-04-02 10:16) [15]
> Компоненты - это вторично. Мы ничего не знаем про СУБД.
Использую MS SQL, компоненты ADO
← →
ANB (2008-04-02 10:16) [16]
> то есть не то что он хочет.
Именно то. :)
Иногда приходится применять такой способ.
Классика - основной запрос довольно тяжел и доп условия совсем ломают план (да и на кажный чих замучаешься оптимизить). А к первой выборке юзеры хотят обратиться и так и эдак. Вобщем, почти олап получается :)
← →
ANB (2008-04-02 10:19) [17]
> Использую MS SQL, компоненты ADO
Тады читай 13. Но примеров не дам, т.к. с мс скл не работаю.
ЗЫ. Хотя чисто принципиально ИШ прав. Из набора данных сделать выборку еще раз стандартными средствами невозможно. Приведенный мной способ - лишь иммитация этого.
← →
Reindeer Moss Eater © (2008-04-02 10:20) [18]нестандартное средство:
выполняем первый запрос, получаем датасет.
превращаем его в xml датапакет.
делаем по нему запрос икспасом, получаем список нодов.
трансформируем их в новый дата пакет и грузим в клиент датасет, получаем новый надор данных.
В общем чума. Дешевле и проще локальный фильтр, или вообще динамическая серверная фильтрация через клиентский грид (по типу грида в Ehlib)
← →
Kolan © (2008-04-02 10:26) [19]> Использую MS SQL, компоненты ADO
Очень даже не вторично. Смотри свойство Filter.
Specifies the text of the current filter for a recordset.
← →
Reindeer Moss Eater © (2008-04-02 10:28) [20]Это даже не третично.
TDataSet
property Filter: string;
← →
Kolan © (2008-04-02 10:30) [21]> Это даже не третично.
Перепутал Filter c Sort. Sort не везде есть.
← →
Игорь Шевченко © (2008-04-02 10:33) [22]
> вообще динамическая серверная фильтрация через клиентский
> грид
Удавиться. Бедный сервер.
← →
ANB (2008-04-02 10:36) [23]
> или вообще динамическая серверная фильтрация через клиентский
> грид (по типу грида в Ehlib)
Это как ?
← →
Kolan © (2008-04-02 10:40) [24]> Это как ?
Как как, при каждом чихе делать новый запрос (добавляе WHERE) и делать новую выборку…
← →
ANB (2008-04-02 10:42) [25]
> Kolan © (02.04.08 10:40) [24]
И при чем тут грид ? Это и без грида мона забацать
← →
Kolan © (2008-04-02 10:43) [26]> Это и без грида мона забацать
ЭхГрид это умеет делать сам…
← →
Armond © (2008-04-02 10:43) [27]
> Это и без грида мона забацать
можно конечно и без грида, но в гриде я данные просматриваю, может подскажешь что именно надо сделать ?
← →
Kolan © (2008-04-02 10:44) [28]Наверно Reindeer Moss Eater говорил о сортировке при клике на название колонки ил о чем-то подобном…
← →
Kolan © (2008-04-02 10:44) [29]> можно конечно и без грида, но в гриде я данные просматриваю,
> может подскажешь что именно надо сделать ?
Ты что глухой? Используй свойство Filter.
← →
Reindeer Moss Eater © (2008-04-02 10:45) [30]все можно. можно и кверианалайзер всем раздать
← →
Reindeer Moss Eater © (2008-04-02 10:46) [31]Наверно Reindeer Moss Eater говорил о сортировке при клике на название колонки ил о чем-то подобном…
Когда Reindeer Moss Eater говорит о сортировке, он говорит о сортировке.
А когда Reindeer Moss Eater говорит о фильтрации, он говорит о фильтрации.
← →
Reindeer Moss Eater © (2008-04-02 10:47) [32]Удавиться. Бедный сервер.
<Цитата>
Жалко что сотни серверов об этом много лет ничего не знают.
А то действительно удавились бы.
← →
Kolan © (2008-04-02 10:49) [33]> Когда Reindeer Moss Eater говорит
Тогда как выглядит фильтрация с помощью грида?
← →
Reindeer Moss Eater © (2008-04-02 10:51) [34]Грид лишь интерфейсное средство, дающее возможность юзеру неискушенному в sql получить то что он хочет, причем без дурацких мастеров, визардов и прочих конструкторов запросов.
а сама фильтрация делается запросами.
← →
Kolan © (2008-04-02 10:52) [35]> Грид лишь интерфейсное средство
Ну вот я и не понимаю как в плане УИ можно используя грид сделать фильтрацию…
← →
Sergey13 © (2008-04-02 10:56) [36]> [35] Kolan © (02.04.08 10:52)
> Ну вот я и не понимаю как в плане УИ можно используя грид
> сделать фильтрацию…
Так же как и сортировку. Посмотри ЕхЛиб - там реализовано и то и другое. Естественно через датасет.
← →
Reindeer Moss Eater © (2008-04-02 10:56) [37]Удавиться. Бедный сервер.
Кроме "бедных серверов" в мире еще есть не менее "бедные" каналы.
Что вы взамен моего примера предложите юзеру для поиска записи из большой таблицы?
локальный локейт?
локальный фильтр?
вводить маску поиска в едит и выполнять запрос пока юзер не угадает правильное слово?
← →
Kolan © (2008-04-02 11:00) [38]> Кроме «бедных серверов» в мире еще есть не менее «бедные»
> каналы.
Что то я не понял. Так ведь каналу тоже худо. Допустим фильтрую по фамили. Обычно в начале пользователь видет все данные. А потом только их фидлитрует.
Твой вариант:
1. Станули весь набор.
2. Пользователь ввел первую букву фамилии — Станули всех начинающихся на эту букву.
3. Пользователь ввел вторую букву фамилии — … итд.
Вариант с локальным филтром.
1. Станули весь набор.
Все. Где же в варианте 1 выигрыш для канала?
← →
Игорь Шевченко © (2008-04-02 11:03) [39]Reindeer Moss Eater © (02.04.08 10:56) [37]
> Что вы взамен моего примера предложите юзеру для поиска
> записи из большой таблицы?
От задачи зависит. Я в своей жизни еще не встречал задачи "поиск неизвестной записи в большой таблице"
← →
Reindeer Moss Eater © (2008-04-02 11:05) [40]В моем варианте весь набор вовсе не тянется. И не перетягивается после ввода каждого очередного символа.
А вот тебе, чтобы найти что-то локальным фильтром придется все засосать на клиента.
Страницы: 1 2 вся ветка
Текущий архив: 2008.04.27;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.022 c