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

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

Сортировка [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


Наверх

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