Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Сортировка


Автор: Addidas 18.11.2007, 17:35
Всем доброго времени суток...
Дело то вот в чём... делаю для зачёта БД и осталось всего ничего... сделать сортировку в обыном DBGrid... но без помощи SQL запросов... чистым кодом... если можно  smile 

Автор: Fighter 18.11.2007, 21:11
Чё-то даже не врубаюсь в суть. Если тебе нужен именно результат и работаешь ты с БД, то почему же сортировка без SQL запросов - это был бы самый реальный результат. 2-е. Если у тебя суть - показать знание алгоритма, то можно сделать все без БД и обойтись одним ListBox'ом. 

Автор: Addidas 19.11.2007, 00:03
без SQL запросов потому что в принципе не хочу...  у нас все на зачёт через них делают... не хочу как все...

Автор: pavelv 19.11.2007, 07:55
А какая БД?
Вообще я что-то видимо плохо понимаю. TDBGrid он уже по умолчанию работает с базой данных, без Order By(если подрублен запрос) или без IndexField(если InterBase и TibTable) такое вообще труднодосягаемо. Будь как все и проблем станет как минимум на одну меньше smile.

Автор: Addidas 19.11.2007, 23:50
База то FoxPro...
Я вообще плохо представляю саму сортировку в DBGrid... скорее всего если бы знал то вряд ли просил помощи... хотя не знаю...  smile 
а быть как все это не выход... smile 

Автор: mutex 20.11.2007, 01:16
Если используете ADO доступ к DBF файлам, тогда надо воспользоваться свойством Sort или IndexFieldNames класса TADODataSet, присвоив свойству имя того поля DBF, на столбце котором был сделан щелчок в DBGrid сетке.

В событий OnTitleClick сетки DBGrid прописать код, похожий на:

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
  ADOQuery1.Sort :=  Column.FieldName;
      или
  ADOTable1.IndexFieldNames := Column.FieldName;
end;

Автор: Addidas 20.11.2007, 01:20
Мерси...
А если используется обычный Table ??

Автор: mutex 20.11.2007, 02:05
Обычный BDE Table потребует наличия физических индексов на диске, т.е. нужен дополнительный файл.
ADO Table или ADO Query все делает в памяти и сортирует там же. Для маленькой БД курсового проекта оперативной памяти должно быть достаточно.

Автор: pseud 20.11.2007, 11:16
Цитата(Addidas @  19.11.2007,  00:03 Найти цитируемый пост)
без SQL запросов потому что в принципе не хочу...  у нас все на зачёт через них делают... не хочу как все...


лучше сделай SQL запрос с кучей вложенных селектов и соединений
и сортирни там же
ты же работаешь с БД и менно через SQL ты можешь показать хорошее владение предметом

а сортировка...
можно и DeveloperExpress DBTreeList поюзать передав SQL без сортировки а потом покликав по шапке все сортирнешь, благо все в нем это уже реализовано.

Автор: Addidas 22.11.2007, 01:15
mutex

 спасибо большое это то что нало было... очень помог... если бы мог поставил бы тебе +...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)