powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / уникальные значения поля
13 сообщений из 13, страница 1 из 1
уникальные значения поля
    #32348387
Фотография optimizer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. такой вопрос:
как выбрать все уникальные значения поля у компонента TDataSet. Именно у него, а не у конкретного наследника. Я сделал процедуру с последовательным просмотром, работает медленно. Может кто подскажет алгоритм побыстрее.
...
Рейтинг: 0 / 0
уникальные значения поля
    #32348552
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У самого компонента TDataSet нет никаких своих уникальных значений полей
- они есть в конкретном возвращаемым recordsetе набор которого зависит от запроса к базе
не проще ли их получить сделав запрос сразу возвращающий эти уникальные значения
Код: plaintext
1.
   select distinct Field from table
...
Рейтинг: 0 / 0
уникальные значения поля
    #32348622
Фотография optimizer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело втом что я работаю в данном проекте именно на уровне TDataSet. В зависимости от выбора пользователя создается объект типа либо TAdoTable, либо TAdoQuery, либо TRxMemoryData. Может и BDE включу. И как мне использовать distinct?
...
Рейтинг: 0 / 0
уникальные значения поля
    #32348635
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может тебя натолкнет на мысль...
инструкция Group by на сервере сперва сортирует множество и потом за один проход решает всю задачу. В твоем случае можно поступить аналогично. Хотя вроде появилась мысль... Но она требовательна к памяти. Выбираешь последовательно элементы из датасета и складываешь их в упорядоченном виде в массив, паралельно проверяя на уникальность. Думаю как организовать более менее эффективный поиск в массиве для тебя сложностей не предоставит. В итоге мы получаем всего один проход по датасету и поис все время в отсортированном множестве. Можно распаралелить выборку элементов датасета и поиск в массиве. Дело в том что выборка из датасета это фактически fetch которы тянется по сети и довольно накладная по времяни процедура. А отсюда, пока тянем с медленной карточки следующий элемент, можно занятся поиском в сортированном массиве
...
Рейтинг: 0 / 0
уникальные значения поля
    #32348640
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вам не подходит получать список неповторяющихся полей
отдельным запросом то кроме пробегания по всему DataSet-у
ничего не остается
проверте только чтобы были отключены все контролы
перед пробеганием
Код: plaintext
1.
2.
3.
4.
  TDataSet(MyDataSe).EnableControls := false;
  .... пробег
  TDataSet(MyDataSe).EnableControls := true;

...
Рейтинг: 0 / 0
уникальные значения поля
    #32348644
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexusR
учти, что просто пробежать по датасету не получится... надо еще сравнивать с тем что было уже получено...
...
Рейтинг: 0 / 0
уникальные значения поля
    #32348665
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это понятно ))
...
Рейтинг: 0 / 0
уникальные значения поля
    #32349772
Фотография optimizer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
У меня тоже такая мысль есть, но все надеялся, мало ли может готовое есть
...
Рейтинг: 0 / 0
уникальные значения поля
    #32349970
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если уж пишешь на абстрактных компонентах, то наврятли что-то будет готовое :)
...
Рейтинг: 0 / 0
уникальные значения поля
    #32349989
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 optimazer:
посмотри сюда, для универсального решения подойдет я думаю
http://www.sigmap.com/MainFrame.htm
...
Рейтинг: 0 / 0
уникальные значения поля
    #32350420
Фотография optimizer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to srf2000
без исходников неинтересно
...
Рейтинг: 0 / 0
уникальные значения поля
    #32350462
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык купи
...
Рейтинг: 0 / 0
уникальные значения поля
    #32350687
Фотография optimizer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лучше сам напишу. Хватит халявничать
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / уникальные значения поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]