![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как скрыть повторяющиеся записи? [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]Зачем в базе повторяющиеся записи?