Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1268591153
NBAH1990
2010-03-14 21:25
2010.08.27
Программное выделение области мышью


2-1266395128
urgun
2010-02-17 11:25
2010.08.27
TThread+TMemoryStream = исключения при чтении в буффер


15-1268233355
zinetz_victor@yahoo.com
2010-03-10 18:02
2010.08.27
Кого надо убить, чтобы заработала удаленная отладка в D2010??


2-1269157020
Delphist2
2010-03-21 10:37
2010.08.27
вставка из буфера


2-1268370164
MonoLife
2010-03-12 08:02
2010.08.27
Меню дочерних форм





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский