-
Здравствуйте, подскажите, пожалуйста, решение такой задачки. 3 таблицы подключены к отдельному ДатаСурсу, которые юзают один АДОКвери, нужно для каждой таблицы в датасете установить свой фильтр, что-то типо того:
DBGridEh1.DataSource.DataSet.Filter:= 'summ<>0';
DBGridEh2.DataSource.DataSet.Filter:= 'summ=0 and perc=0';
DBGridEh3.DataSource.DataSet.Filter:= 'perc=100';
чтобы один и тот же запрос для каждой таблицы выводил только нужные значения. Но если написать так, то для всех таблиц срабатывает каждый фильтр. Подскажите, плиз, что делать
-
3 дата сета, 3 дата соурса, 3 грида. 3 выстрела - 3 трупа.
-
дата сет один
-
> дата сет один
дата сета - 3. One shot - three kill - не получится.
-
Так я не поняла, что, ситуация безвыходная? ((((
-
> Так я не поняла, что, ситуация безвыходная? ((((
В том виде, в котором ты ставишь задачу (1 датасет, 1 датасорс, 3 дбгрида) - да, безвыходная.
-
> french_cat © (04.06.08 12:53) [4] > Так я не поняла, что, ситуация безвыходная?
Можешь ты одновременно находиться в трёх магазинах в разных частях города?
-
Хорошо, тогда может подскажите как поставить задачу, чтобы одним селектом заполнить 3 таблицы (но данные для них регулируются фильтрами)
-
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;
-
> [7] french_cat © (04.06.08 13:18) > одним селектом заполнить 3 таблицы
Это вообще из области фантастики. 8-)))))))))) Селект ничего не заполняет.
-
не стоит придираться к словам, смысл, я думаю, понятен
-
> [10] french_cat © (04.06.08 13:37) > смысл, я думаю, понятен
Как раз таки нет. Чего надо то? Како смысл именно ОДНИМ селектом заполнить чего-то там ТРИ? Почему именно фильтрами что-то регулируется, если используется SQL? Экономишь на компонентах?
-
> french_cat (04.06.2008 13:37:10) [10]
Смысл понятен, но он бессмысленен, делай три запроса и каждый со своим условием отбора, а фильтр на свалку. Есть сложные методы, это уход в сторону с ADO.VCL на чистое ADO функция Clone, но тебе и рано и задачу лучше решить вышеуказаным способом.
-
Использовать клоны датасета
|