![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтрация записей [D6, Paradox]
ArhAngel2 © (2002-08-27 23:56:00)Подскажите, возможно ли скрыть(не показывать) опредеженные записи в базе данных? Если да то как это возможно, кроме события OnFilterRecord.
Заранее спасибо
Anatoly Podgoretsky (2002-08-31 12:16:00) [1]MsGuns © (28.08.02 00:11)
Там сказано без OnFilterRecord или для тебя это одно и тоже
ArhAngel2 (2002-08-31 11:48:00) [2]Работает!!!
Спасибо огромное Dick Gonsales и всем кто откликнулся!
Dick Gonsales (2002-08-31 05:26:00) [3]
> Дело в том что данная таблица содержит списки(коды) разделов,
> и мне надо сделать проверку существуют ли записи в данном
> разделе.
> Записи храняться в другой таблице. Мне надо показать только
> те разделы в которые пустые. Т.е. идет проверка целостности
> таблицы.
select <код раздела>, <имя раздела>, "Нет записей" as txt
from <разделы>
where <код раздела> not in
(select distinct <код раздела>
from <записи> )
или противоположный результат
select <код раздела>, <имя раздела>,
count(<код записи>) as kol
from <разделы>, <записи>
where <код раздела> in
(select distinct <код раздела>
from <записи> )
Если таблица <записей> большая и подзапрос не попадает в индекс,
часто помагает следующий способ (ну кроме проиндексировать ее) -
1. Выполняем подзапрос
2. По результату формируем string типа
"<код раздела1>", "<код раздела2>", ..., "<код разделаN>"
3. Формируем SQL.Add("SELECT ..... IN (" + string +"))
4. Active=True
ArhAngel2 (2002-08-30 20:07:00) [4]вспомогательная таблица содежит список разделов
katal:
kod: shotint
name: string
Основная содержит данные:
main:
klg: shotint
kraz: shotint
kkat: shotint
Zag: string
,т.д.
Возможно добавить поле AutoInc
Val (2002-08-29 18:53:00) [5]>ArhAngel2 © (29.08.02 18:48)
нужна структура таблиц.
ArhAngel2 (2002-08-29 18:48:00) [6]Дело в том что данная таблица содержит списки(коды) разделов, и мне надо сделать проверку существуют ли записи в данном разделе.
Записи храняться в другой таблице. Мне надо показать только те разделы в которые пустые. Т.е. идет проверка целостности таблицы.
>ЮЮ ©
Использую не random, но очень похоже!
>Val ©
Приведите пример SQL как можно отфильтровать таблицу не использую данные из полей.
>Mike Kouzmine
пара секунд не убьет один раз, но это событие вызываеться уж больно часто.
Чудак (2002-08-29 07:33:00) [7]Попробуй воспользоваться следующими методами:
SetRange
SetRangeStart
SetRangeEnd
ЮЮ (2002-08-29 03:41:00) [8]>Алгоритм выборки не связан с полями данной таблицы
Random что-ли используешь? :-)
Mike Kouzmine (2002-08-28 17:10:00) [9]Несколько секунд не страшно. Ты же не программу позднего обнаружения баллистических ракет пишешь?
Val (2002-08-28 16:10:00) [10]>ArhAngel2 © (28.08.02 14:55)
очень уж туманно. воспользуйтесь SQL (MsGuns © (28.08.02 00:03)).
ArhAngel2 (2002-08-28 14:55:00) [11]Алгоритм выборки не связан с полями данной таблицы, так что нельзя использовать свойство Filter,а событие же OnFilterиспользовать нельзя,т.к.выборка дляться несколько секунд, так что прога подвисает слегка, что недопустимо...
Reindeer Moss Eater (2002-08-28 07:54:00) [12]>MsGuns ©
TTable + SQL Server + свойство Filter = фильтрация на сервере (BDE формирует текст запроса)
TTable + SQL Server + событие OnFilter.. = фильтрация на клиенте
Правда у человека парадокс, поэтому все равно все на клиенте...
MsGuns (2002-08-28 00:11:00) [13]>Anatoly Podgoretsky © (28.08.02 00:03)
>Можно путем присваивания значения свойству Filter
Так сказано же, что БЕЗ средств фильтрации !
MsGuns (2002-08-28 00:03:00) [14]никак кроме специального запроса
Anatoly Podgoretsky (2002-08-28 00:03:00) [15]Можно путем присваивания значения свойству Filter