Конференция "Базы" » Установить фильтр для ADOQuery [D7, MSSQL]
 
  • french_cat © (04.06.08 12:15) [0]
    Здравствуйте, подскажите, пожалуйста, решение такой задачки. 3 таблицы подключены к отдельному ДатаСурсу, которые юзают один АДОКвери, нужно для каждой таблицы в датасете установить свой фильтр, что-то типо того:

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


    чтобы один и тот же запрос для каждой таблицы выводил только нужные значения. Но если написать так, то для всех таблиц срабатывает каждый фильтр. Подскажите, плиз, что делать
  • Ega23 © (04.06.08 12:21) [1]
    3 дата сета, 3 дата соурса, 3 грида.
    3 выстрела - 3 трупа.
  • french_cat © (04.06.08 12:25) [2]
    дата сет один
  • Ega23 © (04.06.08 12:41) [3]

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


    дата сета - 3.
    One shot - three kill - не получится.
  • french_cat © (04.06.08 12:53) [4]
    Так я не поняла, что, ситуация безвыходная? ((((
  • Ega23 © (04.06.08 13:03) [5]

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


    В том виде, в котором ты ставишь задачу (1 датасет, 1 датасорс, 3 дбгрида) - да, безвыходная.
  • Плохиш © (04.06.08 13:10) [6]

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

    Можешь ты одновременно находиться в трёх магазинах в разных частях города?
  • french_cat © (04.06.08 13:18) [7]
    Хорошо, тогда может подскажите как поставить задачу, чтобы одним селектом заполнить 3 таблицы (но данные для них регулируются фильтрами)
  • Ega23 © (04.06.08 13:23) [8]
    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;

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

    Это вообще из области фантастики. 8-))))))))))
    Селект ничего не заполняет.
  • french_cat © (04.06.08 13:37) [10]
    не стоит придираться к словам, смысл, я думаю, понятен
  • Sergey13 © (04.06.08 13:44) [11]
    > [10] french_cat ©   (04.06.08 13:37)
    > смысл, я думаю, понятен

    Как раз таки нет. Чего надо то? Како смысл именно ОДНИМ селектом заполнить чего-то там ТРИ? Почему именно фильтрами что-то регулируется, если используется SQL? Экономишь на компонентах?
  • Anatoly Podgoretsky © (04.06.08 14:13) [12]
    > french_cat  (04.06.2008 13:37:10)  [10]

    Смысл понятен, но он бессмысленен, делай три запроса и каждый со своим условием отбора, а фильтр на свалку.
    Есть сложные методы, это уход в сторону с ADO.VCL на чистое ADO функция Clone, но тебе и рано и задачу лучше решить вышеуказаным способом.
  • MsGuns © (04.06.08 15:53) [13]
    Использовать клоны датасета
 
Конференция "Базы" » Установить фильтр для ADOQuery [D7, MSSQL]
Есть новые Нет новых   [134434   +29][b:0][p:0.001]