![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтрация связаных таблиц [D7, Access (ADO)]
DenProx © (2010-03-04 12:21:00)Всем привет. Не подскажите как можно вполнить фильтрцию по таблице, которая связана с другой отношением один-ко-многим...?
sniknik (2010-03-05 14:09:00) [1]> в данном примере я привел букву чтобы много не писать
и ответили тебе исходя из имеющейся информации... т.е. не хочешь много писать, будешь много думать, типа - "а что же там имели ввиду?".
> М цыфру уж я точно не могу использовать...
с чего это? цифровые клавиши сломались? ну так можно зажать Alt набрать 49 на доп раскладке, после отпустить Alt, вуаля!
p.s. не тупи, нужен поиск по тексту ищи по тексту, но только там где он есть, а не там где он тебе "мерещится".
DenProx (2010-03-05 11:25:00) [2]
> поставь туда цифирьку типа SectionName LIKE ''1%''
в данном примере я привел букву чтобы много не писать, фильтр на самом деле работать должен от Edit'a. М цыфру уж я точно не могу использовать... сами представте, смотрите на таблицу, в ней текст... а в фильтре вводите цыфры, которые связаны с этим текстом.... %)
Плохиш (2010-03-04 16:56:00) [3]
> sniknik © (04.03.10 16:51) [26]
>
> > соответственно в нём нет записей удовлетворяющих суммарному
> фильтру.
> удовлетворяющих записей там действительно нет, т.к. в числе
Странно, мой телепатор не подумал, что тип поля "SectionName" может быть числовым :-(
sniknik (2010-03-04 16:51:00) [4]> соответственно в нём нет записей удовлетворяющих суммарному фильтру.
удовлетворяющих записей там действительно нет, т.к. в числе не может быть буквы Д, других поводов не требуется.
> интересная мысль... а как быть тогда?
поставь туда цифирьку типа SectionName LIKE ''1%''
Anatoly Podgoretsky (2010-03-04 16:17:00) [5]> DenProx (04.03.2010 14:14:10) [10]
А ты чего хочешь форум использовать как электронный справочник?
Так не пойдет.
Anatoly Podgoretsky (2010-03-04 15:54:00) [6]> DenProx (04.03.2010 12:21:00) [0]
Никаких ограничений, любой правильный фильтр.
DenProx (2010-03-04 15:09:00) [7]
> Плохиш © (04.03.10 15:07) [22]
интересная мысль... а как быть тогда?
Плохиш (2010-03-04 15:07:00) [8]
> DenProx © (04.03.10 14:57) [21]
Набор данных уже отфильтрован по индексу поля подстановки, а ты его дополнительно фильтруешь ещё по какому-то критерию, соответственно в нём нет записей удовлетворяющих суммарному фильтру.
DenProx (2010-03-04 14:57:00) [9]
> > Это подстановочное поле - физически это число, а видим
> текста запрос имеет глаза, и операция над полем не выполняется,
> а рассматривает его...
я же говорю, если таблицы не связаны запрос работает по этому полю без проблем...
> >> Какая связь?> один-ко-многимда ты издеваешься что ли?
> ...
ну а какая еще то?
Связаные таблицы в Delphi это тоже самое что и в Access'e...
sniknik (2010-03-04 14:53:00) [10]> Это подстановочное поле - физически это число, а видим текст
а запрос имеет глаза, и операция над полем не выполняется, а рассматривает его...
>> Какая связь?
> один-ко-многим
да ты издеваешься что ли?...
DenProx (2010-03-04 14:41:00) [11]
> Какая связь?
один-ко-многим
Sergey13 (2010-03-04 14:39:00) [12]> [10] DenProx © (04.03.10 14:14)
> совсем не то что мне нужно...
Чем принципиально отличается ввод в твой эдит строки поиска руками
и выбор СУЩЕСТВУЮЩЕГО значения из комбика? ИМХО только тем что с вводом ошибиться нельзя.
> [14] DenProx © (04.03.10 14:30)
> работает только если связь между таблицами отсутсвует...
Какая связь?
DenProx (2010-03-04 14:39:00) [13]
> sniknik ©
Это подстановочное поле - физически это число, а видим текст
sniknik (2010-03-04 14:38:00) [14]запрос
SELECT * FROM tblSection
в гриде ( НЕ В АКСЕСС!!!!) в поле SectionName что показывает?
sniknik (2010-03-04 14:36:00) [15]> в поле SectionName(подстановочное поле). Необходимо отфильтровать это поле.
запрос из [1]
> WHERE SectionName LIKE ''Д%'')');
почему операция строковая если это число? "миражи" перед глазами?
DenProx (2010-03-04 14:30:00) [16]
> Ega23 ©
вот что у меня есть на данный момент:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery3.Active:=False;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add('SELECT *');
ADOQuery3.SQL.Add('FROM tblDetail');
if Edit1.Text<>EmptyStr then
ADOQuery3.SQL.Add('WHERE Section_ID IN (SELECT Key FROM tblSection WHERE SectionName LIKE ''Д%'')');
ShowMessage(ADOQuery3.SQL.Text);
ADOQuery3.Active:=True;
end;
работает только если связь между таблицами отсутсвует...
Ega23 (2010-03-04 14:26:00) [17]
> Необходимо отфильтровать это поле.
Select * from tblDetail where BlockID=.... and SectionID=....
DenProx (2010-03-04 14:21:00) [18]
> "конкретного вопроса" не увидел. Увидел некий "поток сознания".
> Учись правильно задавать вопросы.
да, в этй теме согласен, не очень ясно... просто уже от безвыходности...
вот наиболее конкретный вопрос:
в БД есть таблицы: tblBlock, tblDetail, tblSection
tblBlock - таблица содержащая названия блоков (изделия)
tblDetail - таблица содержащая все детали, где имена деталец берутся из таблицы tblSection.
в Delphi:
Есть форма, на ней Два DBGrid'a, по 3-и ADOQuery и DataSourse.
Первый Грид отображает данные из таблицы tblBlock, второй Грид отображает детали относящиеся к выбранному блоку (по связи один-ко-многим), в поле SectionName(подстановочное поле). Необходимо отфильтровать это поле.
Ega23 (2010-03-04 14:17:00) [19]
> также и на других форумах, спршу конкретный вопрос, а мне
> начинают навязывать свое мнение...
"конкретного вопроса" не увидел. Увидел некий "поток сознания".
Учись правильно задавать вопросы.
DenProx (2010-03-04 14:14:00) [20]
> Sergey13 © (04.03.10 14:07) [9]
> А что мешает показывать набор данных из tblSection в каком
> нибудь ДБЛукапКомбоБоксе и просто подставлять еще одну переменную
> в набор с деталями?
> Только от стандартного механизма мастер-деталь придется
> отказаться. На атерскрол обоих родителей вешаешь процедуру
> переоткрытия деталей с параметрами. И все.
>
> ЗЫ: Вместо ADOQuery лучше юзать АДОДатасет.
вот пример.... совсем не то что мне нужно...
также и на других форумах, спршу конкретный вопрос, а мне начинают навязывать свое мнение...