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

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

Как скрыть повторяющиеся записи? [IB6.x, Paradox]


Andrew___* ©   (2006-08-12 15:01:00) 

Paradox, Delphi 2006

Мне необходимо скрыть от пользователя все повторяющиеся записи таблицы. Т.е  не запретить вводить повторяющиеся значения, а именно их скрывать. Как лучше это сделать, подскажите плз.


term1t   (2006-08-15 18:30:00) [1]

я что-то недопонял по поводу SQL ... а что ... " distinct  TField " уже не конает?


Desdechado   (2006-08-14 16:57:00) [2]

ANB ©   (14.08.06 15:34) [14]
Не учи человека плохому :))
Он чурается SQL'я.

PS а ведь всего одной командой можно...


ANB   (2006-08-14 15:34:00) [3]

select distinct Postav_Name from Table1


Anatoly Podgoretsky   (2006-08-13 15:56:00) [4]

Andrew___*   (13.08.06 14:00) [11]
Вера в чудо.


Desdechado   (2006-08-13 15:41:00) [5]

мысли вслух:
а грабли размножаются с поразительной скоростью...


Andrew___*   (2006-08-13 14:00:00) [6]

2 sniknik - что-то вроде этого я себе и представлял. Была надежда получить информацию о недокументированных возможностях фильтрации, но, видимо, она оказалась тщетной. Спасибо.


Dok   (2006-08-13 12:36:00) [7]


> SQL меня спасти не может, поскольку придется переписывать
> всю программу....

ага а программа работает с БД без скл???? блин, хоть плач. Неужели почитать, посмотреть примеры сложно?


sniknik   (2006-08-13 01:49:00) [8]

без sql это будет несколько громоздко... как себе вижу... делаем дополнительный отвязанный от бызы рекордсет с нужным полем, далее сортируем локально (если есть возможность в ваших компонентах/методе доступа) исходный датасет по требуемому полю (или устанавливаем ему индекс если есть и локално сортировать не позволяет),  дальше банальный цикл с "пока поле равно предварительно сохраненному (первому) пропускаем, если не равно то записываем и сохраняем в предварительное для дальнейших сравнений"... как только цикл завершится в нашем рекордсете будут неповторяющиеся значения... что нам и надо. дальше вообще просто, или меняем оригинальный датасет на нами составленный  или делаем фильтр оригинала с проверкой на вхождение в созданный, только тут тогда надо не одно поле сожранять а еше и ключь, по нему вхождение смотреть. все. теперь в оригинале будут только первые записи повтряющихся фамилий.

и не надо будет программу переписывать (!!!???) ну не считая того что добавилось...

да, забыл, еще надо бы сохранить состояние оригинального датасета,чтобы вернуть после сортировок.


Anatoly Podgoretsky   (2006-08-12 20:34:00) [9]

А где получить то?


Fay   (2006-08-12 20:23:00) [10]

2 Andrew___*   (12.08.06 20:19) [6]
Слушай, Andrew___ джан, покажи примеры того, что есть, и того, что должно быть.


Andrew___*   (2006-08-12 20:19:00) [11]

Рdox 7, локальная БД.
Я, возможно, нечетко выразил свою мысль: мне нужно просто получить список всех неповторяющихся значений по столбцу и все. Зачем же 5 раз узнавать, что фамилия вашего поставщика Иванов - логика такая. Думаю, это можно реализовать и без SQL.


Fay   (2006-08-12 18:31:00) [12]

2 Andrew___*   (12.08.06 18:01) [4]

Струкатура данных ваще какая?

> придется переписывать всю программу....
М.б. это не такая уж и плохая мысль.


Andrew___*   (2006-08-12 18:01:00) [13]

SQL меня спасти не может, поскольку придется переписывать всю программу....


Anatoly Podgoretsky   (2006-08-12 15:49:00) [14]

И SQL ты конечно не знаешь?


Andrew___*   (2006-08-12 15:48:00) [15]

Просто есть поле, которое может включать, допустим, фамилии поставщиков, а уникальный ключ - это название товара. И нужно просто получит в таблице список фамилий.


Anatoly Podgoretsky   (2006-08-12 15:02:00) [16]

Зачем в базе повторяющиеся записи?


Наверх

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