Сейчас на форуме: hgdagon, asfa, bartolomeo (+5 невидимых)

 eXeL@B —› Программирование —› работа с Paradox таблицами в Delphi
Посл.ответ Сообщение


Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 05 мая 2006 02:11
· Личное сообщение · #1

пишу прогу для библиотеки (на научно практическую) и на определённом этапе задумался о сортировке
таблицы с учениками в run-time-e - как минимум 2000 записей.
был вариант тупой перестановкой, но всё происходящее будет юзер видеть - гы, даже он поймёт что это тупо.
как я понял тут надо знание работы с индексами.
но в этом то и проблема - я не умею работать с индексами.
такие просьбы :
1 - киньте статью по обучению работе с индексами
или
2 - обломайте меня что перестановка это тупо и дайте быстродействующий алгоритм




Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 05 мая 2006 02:16
· Личное сообщение · #2

NicknamES
используй quicksort




Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 05 мая 2006 02:17
· Личное сообщение · #3

просвети плз что такое!



Ранг: 75.0 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 05 мая 2006 07:44
· Личное сообщение · #4

Paxan пишет:
используй quicksort


Ну вот только мудрить не надо, механизмы индексов прекрасно работают

NicknamES пишет:
пишу прогу для библиотеки


Вот скинь сюда структуру таблицы (название полей, типы) я тебе вечером индекс нарисую




Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 07 мая 2006 00:26
· Личное сообщение · #5

у меня две таблицы и обе надо сортировать (по-отдельности)
ща будет первая...




Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 07 мая 2006 00:26
· Личное сообщение · #6

|Field Name |Type|Size|Key|
___|______________|____|____|___|
_1_|Familia_______|_A__|_255|___|
_2_|Imya__________|_A__|_255|___|
_3_|Otchestvo_____|_A__|_255|___|
_4_|Data_rozdeniya|_A__|_10_|___|
_5_|Adres_________|_A__|_255|___|
_6_|Clas__________|_A__|_5__|___|

вот, а ща будет вторая




Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 07 мая 2006 00:29
· Личное сообщение · #7

|Field Name |Type|Size|Key|
___|_______________|____|____|___|
_1_|Familia________|_A__|_255|___|
_2_|Imya___________|_A__|_255|___|
_3_|Otchestvo______|_A__|_255|___|
_4_|Data_rozdeniya_|_A__|_10_|___|
_5_|Adres__________|_A__|_255|___|
_6_|Mesto_raboty___|_A__|_255|___|
_7_|Obrazovanie____|_A__|_255|___|
_8_|Professiya_____|_A__|_255|___|
_9_|Nomer_passporta|_A__|_255|___|
_10|Seria_passporta|_A__|_255|___|

вот так



Ранг: 75.0 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 07 мая 2006 10:44
· Личное сообщение · #8

NicknamES

Первое: по каким полям сортировать надо (можно сделать составной индекс, т.е. несколько вариантов сортировки и менять их в рантайме) ?
Второе: вечером накидаю индексы и дам код как в рантайме все это применять




Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 12 мая 2006 15:09
· Личное сообщение · #9

Сортировать надо отдельно по первыч трём поля ФИО
и сразу по всем трём ФИО




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 12 мая 2006 18:09
· Личное сообщение · #10

В ручную лучше не надо.
Воспользуйся возможностями BDE, sql'а
То есть размести на форме визуальный компонент Query, укажи базу данных, DataSource ассоциированный с неободимым DataSource, в котором в свою очередь указан обьект типа TTable.

В Query1.SQL=
SELECT * FROM UsersList
ORDER BY (ну и тут поле по которому сортируется)

Вроде примерно так должно быть...

-----
Никто не знает столько, сколько не знаю я





Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 21 мая 2006 01:33
· Личное сообщение · #11

а исчо варианты...



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 21 мая 2006 10:37 · Поправил: tundra37
· Личное сообщение · #12

NicknamES пишет:
а исчо варианты...

Если не срочно( а ты уже 9 дней без подсказок) - сходи на Дельфийские сайты или поисковик используй.
Мне например было бы проще по готовому тексту и базе поправить. Кое-что я нашел, но создавать базу на Парадоксе и Таблицы, чтобы потренироваться - некогда. Вкратце, у полей таблицы есть свойство IndexFieldNames - там поля через ; перечисляются. Но для Парадокса индекс надо создавать самому.
++++++++++++++++++++++++++++++++++++++++++
Вот тут кое-что есть.
www.developing.ru/forum/topic541.html&highlight=paradox
А вообще я при поиске убедился, что зря ты с Парадоксом связался. Возьми лучше Акцесс, там сервис индексирования и сортировки цивильный и с русским проблем не будет. И SQL работает.




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 26 мая 2006 13:55
· Личное сообщение · #13

Народ ну вы чё, какой акцесс.
Я сейчас диплом делаю с использование InterBase 7.
Order by в нужные места добавил и всё, чтобы в рантайме сортировалось нужно в refreshSQL.
Мдя, зря с ты с падокс свезался, я его только один раз использовал, потом перешёл на IB.

-----
Никто не знает столько, сколько не знаю я





Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 07 июня 2006 02:13
· Личное сообщение · #14

буду тренироваться и на том спасибо



Ранг: 9.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2006 14:49
· Личное сообщение · #15

мдя... когда-то очень давно... я писАл что-то типа бухгалтерии для одной из моих хороших знакомых. и решил скинуть тебе пример в нём есть сортировка с помощью индексов, может поможет...

04b1_08.08.2006_CRACKLAB.rU.tgz - example.zip




Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 24 сентября 2006 08:32
· Личное сообщение · #16

спасибо всем огромное, особенно за линки,
мне кстати тоже понятнее по коду разьбираться


 eXeL@B —› Программирование —› работа с Paradox таблицами в Delphi
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати