Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];

Вниз

Сортировка по дате   Найти похожие ветки 

 
Ghost!   (2002-01-10 16:35) [0]

Здравствуйте, господа!
Вопрос таков: в DBGrid"е есть колонка с датами. При чём даты состоят только из дня и месяца (**.**) и имеют тип string. Как сделать так, чтоб перед каждым закрытием программы, данные сортировались по этим датам (в порядке увеличения даты)? Используется Table, DBGrid и DataSourse. Если можно, с кусочками кода. Благодарю за внимание.


 
roottim   (2002-01-10 16:42) [1]

какой то бред....
что значит перед закрытеием сортировались.... зачем это вообще надо...
в базе они всеравно в разброс хранятся... все что выводится нужно сортировать SQL


 
Ghost!   (2002-01-10 16:50) [2]

Извините за мутность вопроса. Я имел ввиду, чтоб данные сортиовались перед закрытием программы + в таком виде сохранялись в базу (уже рассортированные).


 
dymka   (2002-01-10 16:50) [3]

Первое - не думай что записи в базе данных хранятся в отсортированном виде (на самом деле они хранятся в порядке их добавления). Сортировка это чисто визуальное представление данных и не должна зависеть от способа хранения! Поэтому если нужно тебе выводить данные в отсортированном виде, то построй по этому полю индекс и укажи его в таблице TTable.IndexName.


 
Ghost!   (2002-01-10 18:01) [4]

Если честно, то на БД я только недавно подсел. Поэтому не могли бы Вы подробнее (возможно, с примером) описать как построить по полю индекс?


 
Ghost!   (2002-01-10 20:29) [5]

Так чё, некому просветить тёмного человека?


 
dymka   (2002-01-11 07:47) [6]

Открываешь Database Desktop - там открываешь свою таблицу и лезешь в смену структуры - там гдето справа будут кнопки создания индексов, создаешь: задаешь имя индекса, поле по которому будет построено, доп информацию всякую.
Сохраняешь новую структуру. После этого в своем приложении когда установишь соединение с таблицей устанавливаешь свойство Table.IndexName равное названию твоего индекса. И все...


 
Ghost!   (2002-01-14 20:25) [7]

Спасибо, dymka, но к сожалению эфект от этого небольшой. Колонка имеет тип String, в котором записанны даты, состоящии из дня и месяца, года нет (поэтому тип не Date). И при индексации получается что-то вроде:
05.08
07.03
09.12
А мне надо, чтоб данные сортировались с учётом месяца. Надеюсь, Вы понимаете меня? Ещё раз спасибо.


 
Yu   (2002-01-15 10:44) [8]

Я бы предложил сделать поле типа Date, пользователь заполняет день и месяц, а год заполняется програмно и всегда один и тот же (например, 2000). Тогда все будет сортироваться как надо. Сам не пробовал, но по идее должно получиться...


 
dymka   (2002-01-15 10:49) [9]

Сделай наоборот - Сначала месяц а потом год :)


 
dymka   (2002-01-15 10:49) [10]

Сделай наоборот - Сначала месяц а потом день :)


 
Ghost!   (2002-01-16 09:15) [11]

Спасибо за очень дельные советы. Совет dymka я пожалуй оставлю, как запасной вариант. Дело в том, что ни добавление года, ни перемена местами дня и месяца мне не подходят, так как первое - не совсем эстетично, а второе - не все в мире знают про английский стиль и возможно будут путаться. :( Но всё равно спасибо.


 
roottim   (2002-01-16 09:23) [12]

вообще если хочеш сортировать нормально... то используй либо тип DATE либо разделяй(поля) и властвуй :)


 
fnatali   (2002-01-16 09:34) [13]

Ghost! (16.01.02 09:15)
Тебе же предлагают формат ХРАНЕНИЯ данных и, соответственно, индекс по нему будет строиться. А ОТОБРАЖАТЬ данные ты можешь в другом виде - хоть месяц впереди, хоть день, хоть ещё чего-нибудь


 
Turalyon   (2002-01-16 11:41) [14]

>Ghost!
Согласен с fnatali © делай формат поля Date а при выводе отлавливай метод onDrawColumnCell и рисуй там хоть чертиков.
Подробнее об этом почитай в статье:
http://www.delphikingdom.com/helloworld/dbgridcolor.htm



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
14-32342
Sour
2001-12-22 09:11
2002.02.11
Помогите установить компоненты.


3-32115
Alex SW
2002-01-15 10:23
2002.02.11
Проблема с InterBase 6


14-32334
petr_v_a
2001-12-21 17:13
2002.02.11
Алгоритм подсчета контрольной цифры ИНН


1-32282
Bodia
2002-01-20 19:42
2002.02.11
WebBrowser


1-32240
Brand
2002-01-27 23:09
2002.02.11
DLL, связь с основной программой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский