Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизФильтрация связаных таблиц Найти похожие ветки
← →
DenProx © (2010-03-04 12:21) [0]Всем привет. Не подскажите как можно вполнить фильтрцию по таблице, которая связана с другой отношением один-ко-многим...?
← →
Ega23 © (2010-03-04 13:07) [1]
Select * from Table where Field = 18
← →
DenProx © (2010-03-04 13:09) [2]Сори, забыл уточнить, что фильтрация нужна по полю подстановки...
← →
Sergey13 © (2010-03-04 13:25) [3]Это уже на спам сильно похоже.
← →
DenProx © (2010-03-04 13:28) [4]> Sergey13 ©
пока вопрос не решен, буду пытаться решить... так как мне это нужно... а за частую, все начинают советовать совсем не то....
← →
Ega23 © (2010-03-04 13:40) [5]
> Сори, забыл уточнить, что фильтрация нужна по полю подстановки.
Что такое "поле подстановки"? В AnsiSQL нет такого определения.
← →
Sergey13 © (2010-03-04 13:41) [6]> [4] DenProx © (04.03.10 13:28)
Во первых для решения одного вопроса не обязательно открывать 3 темы.
Во вторых, если ты сам не можешь решить вопрос, то вероятно и не способен оценить - то советуют ли не то.
← →
DenProx © (2010-03-04 13:51) [7]
> Что такое "поле подстановки"? В AnsiSQL нет такого определения.
а про AnsiSQL и не идет речи, тема про Delphi 7 и Access (ADO) ...
> Во вторых, если ты сам не можешь решить вопрос, то вероятно
> и не способен оценить - то советуют ли не то.
я знаю что мне нужно, если то что мне советуют не совпадает с этим, значит это не то.... тем более я не полностью не знаю как, что сделать, я же не прошу за меня программу писать... я конкретно спрашиваю, а отвечают почемуто все время, совсем о другом....
← →
sniknik © (2010-03-04 13:51) [8]> Что такое "поле подстановки"?
это "мираж" в аксессе (программе), данные в поле вроде одни, а видишь другие. верить тому что видишь нельзя.
p.s. запрос из [1] вполне корректен.
← →
Sergey13 © (2010-03-04 14:07) [9]> [7] DenProx © (04.03.10 13:51)
Что советовали не того и что не подощло в ветках
http://delphimaster.net/view/3-1267604511/
http://delphimaster.net/view/3-1267604511/
?
← →
DenProx © (2010-03-04 14:14) [10]
> Sergey13 © (04.03.10 14:07) [9]
> А что мешает показывать набор данных из tblSection в каком
> нибудь ДБЛукапКомбоБоксе и просто подставлять еще одну переменную
> в набор с деталями?
> Только от стандартного механизма мастер-деталь придется
> отказаться. На атерскрол обоих родителей вешаешь процедуру
> переоткрытия деталей с параметрами. И все.
>
> ЗЫ: Вместо ADOQuery лучше юзать АДОДатасет.
вот пример.... совсем не то что мне нужно...
также и на других форумах, спршу конкретный вопрос, а мне начинают навязывать свое мнение...
← →
Ega23 © (2010-03-04 14:17) [11]
> также и на других форумах, спршу конкретный вопрос, а мне
> начинают навязывать свое мнение...
"конкретного вопроса" не увидел. Увидел некий "поток сознания".
Учись правильно задавать вопросы.
← →
DenProx © (2010-03-04 14:21) [12]
> "конкретного вопроса" не увидел. Увидел некий "поток сознания".
> Учись правильно задавать вопросы.
да, в этй теме согласен, не очень ясно... просто уже от безвыходности...
вот наиболее конкретный вопрос:
в БД есть таблицы: tblBlock, tblDetail, tblSection
tblBlock - таблица содержащая названия блоков (изделия)
tblDetail - таблица содержащая все детали, где имена деталец берутся из таблицы tblSection.
в Delphi:
Есть форма, на ней Два DBGrid"a, по 3-и ADOQuery и DataSourse.
Первый Грид отображает данные из таблицы tblBlock, второй Грид отображает детали относящиеся к выбранному блоку (по связи один-ко-многим), в поле SectionName(подстановочное поле). Необходимо отфильтровать это поле.
← →
Ega23 © (2010-03-04 14:26) [13]
> Необходимо отфильтровать это поле.Select * from tblDetail where BlockID=.... and SectionID=....
← →
DenProx © (2010-03-04 14:30) [14]
> 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;
работает только если связь между таблицами отсутсвует...
← →
sniknik © (2010-03-04 14:36) [15]> в поле SectionName(подстановочное поле). Необходимо отфильтровать это поле.
запрос из [1]
> WHERE SectionName LIKE ""Д%"")");
почему операция строковая если это число? "миражи" перед глазами?
← →
sniknik © (2010-03-04 14:38) [16]запрос
SELECT * FROM tblSection
в гриде (НЕ В АКСЕСС!!!!) в поле SectionName что показывает?
← →
DenProx © (2010-03-04 14:39) [17]
> sniknik ©
Это подстановочное поле - физически это число, а видим текст
← →
Sergey13 © (2010-03-04 14:39) [18]> [10] DenProx © (04.03.10 14:14)
> совсем не то что мне нужно...
Чем принципиально отличается ввод в твой эдит строки поиска руками
и выбор СУЩЕСТВУЮЩЕГО значения из комбика? ИМХО только тем что с вводом ошибиться нельзя.
> [14] DenProx © (04.03.10 14:30)
> работает только если связь между таблицами отсутсвует...
Какая связь?
← →
DenProx © (2010-03-04 14:41) [19]
> Какая связь?
один-ко-многим
← →
sniknik © (2010-03-04 14:53) [20]> Это подстановочное поле - физически это число, а видим текст
а запрос имеет глаза, и операция над полем не выполняется, а рассматривает его...
>> Какая связь?
> один-ко-многим
да ты издеваешься что ли?...
← →
DenProx © (2010-03-04 14:57) [21]
> > Это подстановочное поле - физически это число, а видим
> текста запрос имеет глаза, и операция над полем не выполняется,
> а рассматривает его...
я же говорю, если таблицы не связаны запрос работает по этому полю без проблем...
> >> Какая связь?> один-ко-многимда ты издеваешься что ли?
> ...
ну а какая еще то?
Связаные таблицы в Delphi это тоже самое что и в Access"e...
← →
Плохиш © (2010-03-04 15:07) [22]
> DenProx © (04.03.10 14:57) [21]
Набор данных уже отфильтрован по индексу поля подстановки, а ты его дополнительно фильтруешь ещё по какому-то критерию, соответственно в нём нет записей удовлетворяющих суммарному фильтру.
← →
DenProx © (2010-03-04 15:09) [23]
> Плохиш © (04.03.10 15:07) [22]
интересная мысль... а как быть тогда?
← →
Anatoly Podgoretsky © (2010-03-04 15:54) [24]> DenProx (04.03.2010 12:21:00) [0]
Никаких ограничений, любой правильный фильтр.
← →
Anatoly Podgoretsky © (2010-03-04 16:17) [25]> DenProx (04.03.2010 14:14:10) [10]
А ты чего хочешь форум использовать как электронный справочник?
Так не пойдет.
← →
sniknik © (2010-03-04 16:51) [26]> соответственно в нём нет записей удовлетворяющих суммарному фильтру.
удовлетворяющих записей там действительно нет, т.к. в числе не может быть буквы Д, других поводов не требуется.
> интересная мысль... а как быть тогда?
поставь туда цифирьку типа SectionName LIKE ""1%""
← →
Плохиш © (2010-03-04 16:56) [27]
> sniknik © (04.03.10 16:51) [26]
>
> > соответственно в нём нет записей удовлетворяющих суммарному
> фильтру.
> удовлетворяющих записей там действительно нет, т.к. в числе
Странно, мой телепатор не подумал, что тип поля "SectionName" может быть числовым :-(
← →
DenProx © (2010-03-05 11:25) [28]
> поставь туда цифирьку типа SectionName LIKE ""1%""
в данном примере я привел букву чтобы много не писать, фильтр на самом деле работать должен от Edit"a. М цыфру уж я точно не могу использовать... сами представте, смотрите на таблицу, в ней текст... а в фильтре вводите цыфры, которые связаны с этим текстом.... %)
← →
sniknik © (2010-03-05 14:09) [29]> в данном примере я привел букву чтобы много не писать
и ответили тебе исходя из имеющейся информации... т.е. не хочешь много писать, будешь много думать, типа - "а что же там имели ввиду?".
> М цыфру уж я точно не могу использовать...
с чего это? цифровые клавиши сломались? ну так можно зажать Alt набрать 49 на доп раскладке, после отпустить Alt, вуаля!
p.s. не тупи, нужен поиск по тексту ищи по тексту, но только там где он есть, а не там где он тебе "мерещится".
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.067 c