Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Установить фильтр для ADOQuery [D7, MSSQL]


french_cat ©   (2008-06-04 12:15:00) 

Здравствуйте, подскажите, пожалуйста, решение такой задачки. 3 таблицы подключены к отдельному ДатаСурсу, которые юзают один АДОКвери, нужно для каждой таблицы в датасете установить свой фильтр, что-то типо того:

DBGridEh1.DataSource.DataSet.Filter:= 'summ<>0';
DBGridEh2.DataSource.DataSet.Filter:= 'summ=0 and perc=0';
DBGridEh3.DataSource.DataSet.Filter:= 'perc=100';

чтобы один и тот же запрос для каждой таблицы выводил только нужные значения. Но если написать так, то для всех таблиц срабатывает каждый фильтр. Подскажите, плиз, что делать


MsGuns   (2008-06-04 15:53:00) [1]

Использовать клоны датасета


Anatoly Podgoretsky   (2008-06-04 14:13:00) [2]

> french_cat  (04.06.2008 13:37:10)  [10]

Смысл понятен, но он бессмысленен, делай три запроса и каждый со своим условием отбора, а фильтр на свалку.
Есть сложные методы, это уход в сторону с ADO.VCL на чистое ADO функция Clone, но тебе и рано и задачу лучше решить вышеуказаным способом.


Sergey13   (2008-06-04 13:44:00) [3]

> [10] french_cat ©   (04.06.08 13:37)
> смысл, я думаю, понятен

Как раз таки нет. Чего надо то? Како смысл именно ОДНИМ селектом заполнить чего-то там ТРИ? Почему именно фильтрами что-то регулируется, если используется SQL? Экономишь на компонентах?


french_cat   (2008-06-04 13:37:00) [4]

не стоит придираться к словам, смысл, я думаю, понятен


Sergey13   (2008-06-04 13:29:00) [5]

> [7] french_cat ©   (04.06.08 13:18)
> одним селектом заполнить 3 таблицы

Это вообще из области фантастики. 8-))))))))))
Селект ничего не заполняет.


Ega23   (2008-06-04 13:23:00) [6]

var
 ss : string;
begin
 ss := 'Select ... from ... where ...';

 with ADODataSet1 do
 begin
   CommandText := ss;
   Open;
 end;
 
 with ADODataSet2 do
 begin
   CommandText := ss;
   Open;
 end;

 with ADODataSet3 do
 begin
   CommandText := ss;
   Open;
 end;

end;


french_cat   (2008-06-04 13:18:00) [7]

Хорошо, тогда может подскажите как поставить задачу, чтобы одним селектом заполнить 3 таблицы (но данные для них регулируются фильтрами)


Плохиш   (2008-06-04 13:10:00) [8]


> french_cat ©   (04.06.08 12:53) [4]
> Так я не поняла, что, ситуация безвыходная?

Можешь ты одновременно находиться в трёх магазинах в разных частях города?


Ega23   (2008-06-04 13:03:00) [9]


> Так я не поняла, что, ситуация безвыходная? ((((


В том виде, в котором ты ставишь задачу (1 датасет, 1 датасорс, 3 дбгрида) - да, безвыходная.


french_cat   (2008-06-04 12:53:00) [10]

Так я не поняла, что, ситуация безвыходная? ((((


Ega23   (2008-06-04 12:41:00) [11]


> дата сет один


дата сета - 3.
One shot - three kill - не получится.


french_cat   (2008-06-04 12:25:00) [12]

дата сет один


Ega23   (2008-06-04 12:21:00) [13]

3 дата сета, 3 дата соурса, 3 грида.
3 выстрела - 3 трупа.


Наверх

Титульная страница Поиск, карта сайта Написать письмо