Сортировка БД по дате создания
|
|
NuR1k | Дата: Вторник, 24.08.2010, 00:31 | Сообщение # 1 |
Рядовой
Группа: Модераторы
Сообщений: 13
Статус: Отсутствует
| Доброго времени суток! Хочу замутить так, чтобы в БД данные сортировались по дате создания записи. Вот только не знаю как. Подскажите пожалуйста. Delphi 7.
|
|
| |
proger | Дата: Среда, 25.08.2010, 10:57 | Сообщение # 2 |
Всевидящий
Группа: Админы
Сообщений: 17
Статус: Отсутствует
| При загрузке БД в программу итак происходит сортировка по дате создания (по умолчанию). СУБД какую используете? Приведу пример реализации в ADO (MS Access). В ADO сортировку можно реализовать следующим образом: Для начала создадим в БД поле с именем Дата_Создания и типом Дата/Время. Чтобы поле Дата/Время возвращало текущую дату необходимо в обработчик вписать следующее: Code DataModule1.ADOTable1.FieldValues['Текущая_дата'] := now; Тем самым теперь у нас имеется поле, содержащее текущую дату и время. Теперь реализуем сортировку: Code TForm1.Button1Click(Sender: TObject); begin //укажем имя поля, по которому сортируем //в нашем случае: Дата_Создания ADOTable1.IndexFieldNames := 'Дата_Создания'; end; А если нужна сортировка "По убыванию" (т.е. последняя сделанная запись будет сверху), то надо прописать следующее: Code ADOTable.Sort := 'Текущая_дата DESC'
Все "Спасибо!" в репутацию!
|
|
| |
NuR1k | Дата: Среда, 25.08.2010, 14:22 | Сообщение # 3 |
Рядовой
Группа: Модераторы
Сообщений: 13
Статус: Отсутствует
| Не, он что-то ругается. Ошибка.
Сообщение отредактировал NuR1k - Среда, 25.08.2010, 14:27 |
|
| |
proger | Дата: Среда, 25.08.2010, 14:22 | Сообщение # 4 |
Всевидящий
Группа: Админы
Сообщений: 17
Статус: Отсутствует
| NuR1k, на что именно? Прошу по-конкретнее!
Все "Спасибо!" в репутацию!
|
|
| |
NuR1k | Дата: Среда, 25.08.2010, 14:31 | Сообщение # 5 |
Рядовой
Группа: Модераторы
Сообщений: 13
Статус: Отсутствует
| http://files.mail.ru/G6C6UB?t=1 - скриншот. Добавлено (25.08.2010, 14:31) --------------------------------------------- Наверное из-за того, что не в ту процедуру поместил Code DataModule1.ADOTable1.FieldValues['Текущая_дата'] := now; ADOTable.Sort := 'Текущая_дата DESC' Куда их?
|
|
| |
proger | Дата: Среда, 25.08.2010, 14:32 | Сообщение # 6 |
Всевидящий
Группа: Админы
Сообщений: 17
Статус: Отсутствует
| Quote (NuR1k) Не, он что-то ругается. Ошибка. Вот это прописали? Quote (proger) DataModule1.ADOTable1.FieldValues['Текущая_дата'] := now; Создали, я надеюсь, новое поле с именем Дата_Создания? Прочтите еще раз мой первый ответ и поймите, что вы сделали не так
Все "Спасибо!" в репутацию!
|
|
| |
NuR1k | Дата: Среда, 25.08.2010, 14:36 | Сообщение # 7 |
Рядовой
Группа: Модераторы
Сообщений: 13
Статус: Отсутствует
| Блин, Толян, все правильно: создал поле в МО Access, а вот куда вписывать Code DM.ADOTable1.FieldValues['Дата'] := now; то и не знаю, туплю опять.
|
|
| |
proger | Дата: Среда, 25.08.2010, 14:43 | Сообщение # 8 |
Всевидящий
Группа: Админы
Сообщений: 17
Статус: Отсутствует
| Code DataModule1.ADOTable1.FieldValues['Текущая_дата'] := now; Вставить в обработчик OnClick кнопки для сохранения данных, например. Если не знаете, как создать такую кнопку, могу подробно объяснить. Code procedure TForm1.Button1Click(Sender: TObject); begin //если данные изменены, то сохраним if DataModule1.ADOTable1.Modified then begin //добавим в поле Текущая_Дата текущую дату/время DataModule1.ADOTable1.FieldValues['Текущая_дата'] := now; //сохраним DataModule1.ADOTable1.Post; end; end; Code ADOTable.Sort := 'Текущая_дата DESC' Это уже в обработчик сортировки!
Все "Спасибо!" в репутацию!
|
|
| |
NuR1k | Дата: Среда, 25.08.2010, 14:48 | Сообщение # 9 |
Рядовой
Группа: Модераторы
Сообщений: 13
Статус: Отсутствует
| Блин, так бы и сказал, что в обработчик сохранения данных, а то я и туплю. Спасибо, канает! :-)
|
|
| |
proger | Дата: Среда, 25.08.2010, 14:50 | Сообщение # 10 |
Всевидящий
Группа: Админы
Сообщений: 17
Статус: Отсутствует
| Пожалуйста! Много нового для себя узнал о ADO, пока разбирался с твоим вопросом. Так что и тебе спасибо
Все "Спасибо!" в репутацию!
|
|
| |