Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как выбрать из DataSet то что мне нужно [D7, IB6.x]


Страницы:   1 2

yk ©   (2005-05-30 08:51:00) 

Уважаемые Мастера!
Помогите решить следующую задачу:
У меня есть датасет, в котором выбраны записи из справочной таблицы.

А мне надо выбрать записи (в DBLookupComboboxEh - хотя возможно, это не важно куда) не все, а допустим у которых некоторое поле =1 или по другому признаку, который можно задать типа (where fileld=num and ...)

Посылать запрос в базу мне кажется неудобным, ведь эти данные уже есть в моём датасете.
Подскажите, как выкрутиться.


-=XP=-   (2005-05-30 11:31:00) [1]

Для SQL? :-)

Ну, автор несколько путает, или смешивает понятия методов TDataSet (Filter, IndexFields) и параметров SQL (Where, Order By). Я вот не знаю, разбираться с этим вопросом, или автор сам разберется?

Классика: "Не опускайтесь до уровня вопрошающего, а подымайте его до требуемого уровня".


Anatoly Podgoretsky   (2005-05-30 11:26:00) [2]

-=XP=- ©   (30.05.05 11:24) [21]
Для SQL? :-)


Anatoly Podgoretsky   (2005-05-30 11:25:00) [3]

Забыл сменить учетную запись. Использование запроса благоприятно повлияеет на быстродействие и плюс удобства для пользователя.


-=XP=-   (2005-05-30 11:24:00) [4]

Кстати а можно задать order by через фильтр датасет

order byи filter- разные сущности.

"order" определяет порядок следования записей в НД.
"filter" определяет то, какие записи попадут в результирующий НД.
Как видим, одно не включает и не исключает другого.
Для сортировки НД обычноиспользуются индексы.


app   (2005-05-30 11:24:00) [5]

Почему шутка, это просто более точная формулировка.
Запрос примерно такой

SELECT * FROM LookupDataset WHERE "некоторое поле" = 1


yk   (2005-05-30 11:13:00) [6]


> Anatoly Podgoretsky ©

От повторения шутка становиться понятнее (так любит повторять Хомячок)

Собственно вопрос в том: как выбрать из датасетов с помощью запроса?


Anatoly Podgoretsky   (2005-05-30 11:07:00) [7]

yk ©   (30.05.05 11:02) [17]
> Lookup - программная реализация реляционной модели данных.
Я задумчиво чешу голову 8(   (ничего не поняла)

> Lookup - внешняяреализация реляционной модели данных.


yk   (2005-05-30 11:02:00) [8]


> Через Lookup все что угодно запихнуть можно.
> Lookup - программная реализация реляционной модели данных.

Я задумчиво чешу голову 8(   (ничего не поняла)
А где про это можно почитать?

Кстати а можно задать order by
через фильтр датасет. Если да, то как или где можно почитать?
Судя по справке - вроде нельзя :(


-=XP=-   (2005-05-30 10:51:00) [9]

Через Lookup все что угодно запихнуть можно.
Lookup - программная реализация реляционной модели данных.


yk   (2005-05-30 10:41:00) [10]


> Lookup поля

непоняла?
как lookup поля помогут мне запихнуть в датасет результат объединения НД двух других датасет?


-=XP=-   (2005-05-30 10:35:00) [11]

Lookup поля


yk   (2005-05-30 10:31:00) [12]

Итоговый например - тот в который идет результат join-ов двух других датасетов.
Но вопрос в том - как выбрать в датасет данные из других датасетов?


Виталий Панасенко   (2005-05-30 10:23:00) [13]

Какой из трех НД сортировать то нужно ?


yk   (2005-05-30 10:14:00) [14]


> Их join например в третий датасет

Првада как это сделать?


yk   (2005-05-30 10:14:00) [15]

работает.
Accept := DataSet['поле'] =true;

Теперь наделаю разных фильтров и буду их использовать :)

Правда Borland не приводит примеров на случай join из датасетов.
Это вообще можно сделать:
в одном датаасете - одна справочная таблица, в другом - другая.
Их join например в третий датасет и пофильтровать?


yk   (2005-05-30 09:58:00) [16]


> Компоненты IBX?

Да
> Так там Filter не реализован вроде.

Похоже вы правы


> Надо через onFilterRecord делать.

Щас попробую ....


yk   (2005-05-30 09:57:00) [17]


> Учите матчасть.

вот и папа мой то же говорит (он бортинжинер между прочим)


> P.S. По секрету: Переоткрывать НД не надо.

Это я от безысходности (иначе зачем [4]), ведь не работает :(

И даже
> '[поле]<>false'

не работает


Sergey13   (2005-05-30 09:55:00) [18]

2[2] yk ©   (30.05.05 09:39)
А зачем ты делаешь Active:=false; Active:=true;? Ты же как раз запрос переоткрываешь?
Компоненты IBX? Так там Filter не реализован вроде. Надо через onFilterRecord делать.


-=XP=-   (2005-05-30 09:54:00) [19]

P.S. По секрету: Переоткрывать НД не надо.


-=XP=-   (2005-05-30 09:52:00) [20]

'[поле]<>false'

Учите матчасть.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо