![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка [D6, Paradox]
Кролик © (2003-03-05 18:41:00)Как задать сортировку таблицы по определённому полю?
line (2003-03-06 01:01:00) [1]Создание первичного ключа необходимо, но индекс для поля F для его дальнейшей сортировки не является необходимостью!
В нашем случае предполагается создание ключа явно не для F
Name := "";
Fields:="N";
Options := [ixPrimary];
т.к. есть возможность повторения полей F
если я неправ то заранее извиняюсь
Непонял фразу "рез.НД " - что хотел сказать?
Johnmen (2003-03-05 23:57:00) [2]>MsGuns © (05.03.03 23:50)
Добавлю лишь, что первичный ключ это по сути уникальный индекс.
MsGuns (2003-03-05 23:50:00) [3]>line (05.03.03 23:35)
>MsGuns ©
>Фуфло!
>Первичный ключ нужен для поиска записей, а при сортировки он не используется
Вот эта фраза и есть фуфло и говорит о непонимании механизма работы Рарадокс. Если индекс не используется явно (не подключен) и в таблице есть первичный ключ, то в каком порядке записи будут представлены юзером ? В произвольном ?
Ты путаешь понятие "сортировааный" и "упорядоченный", что в применении к БД вообще-то не одно и то же. Если под словом "сортированный" понимать ФИЗИЧЕСКИЙ порядок следования записей или их идентификаторов (ключей и индексов), то упорядочен обычно предоставляемый клиенту КУРСОР.
Указанный тобой способ OrderBy страдает одним недостаком - рез.НД не есть редактируемый.
Johnmen (2003-03-05 23:49:00) [4]>line
Хорошие ответы, только, как минимум, уже повторяют сказанное, как максимум, просто не по делу...(Кролик (05.03.03 21:46) A конкретно для TTable?)
line (2003-03-05 23:42:00) [5]На крайняк, можешь использовать индексы для более быстрой сортировки
line (2003-03-05 23:35:00) [6]>MsGuns ©
Фуфло!
Первичный ключ нужен для поиска записей, а при сортировки он не используется.
Пример: Taблица - MainTable (название таблицы)
Поля - F, I
Query1.Active:=False;
Query1.SQL.Clear;
Запрос на сортировку - Query1.SQL.Add("select F,I From MainBase order by F");
Query1.Active:=True;
Не забудь связать TQuery c таблицей (Query1.DataBaseName - место расположения таблицы на компе).
Сортировка по убыванию - тоже самое, только в запросе добавишь "Desc" после "order by F"
MsGuns (2003-03-05 22:19:00) [7]Сортировка ТАБЛИЦЫ может быть осуществлена единственным способом - через первичный ключ (PRIMARY KEY), определяемый на этапе создания (для Парадокса - и реструктурировании) таблицы.
И то это не есть физическая последовательность записей на диске !
Если же надо УПОРЯДОЧИТЬ записи для ОТОБРАЖЕНИЯ (например, в гриде), используются методы, указанные Pat © (05.03.03 18:56)
Pat (2003-03-05 22:05:00) [8]при создании таблицы нужно определить вторичные индексы.
Если создаешь таблицу в Database Desktop - Secondary Indexes или как их там...Выбираешь поля, по которым должна осуществляться сортировка...Причем сортировка будет в том порядке, в котором стоят поля..хм..может криво объяснил..пример:
Индекс: fio, name
таблица будет выглядеть примерно так:
Ахренегознаеткакаяфимилия
Иванов Алексей
Иванов Иван
Иванов Максим
Петров Петр
Петров трактор-петрович
Думаю, понятно объяснил.. :-)))
Кролик (2003-03-05 21:46:00) [9]A конкретно для TTable? Plz...
Pat (2003-03-05 18:56:00) [10]Select ... order by ...
Либо индекс, если для TTable