Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Road_Runner
1 / 1 / 1
Регистрация: 06.10.2011
Сообщений: 43

Сортировка IBDataset

17.04.2014, 17:44. Показов 2347. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток имеется следующая проблема:

Субд Firebird + Rad Studio XE2

База данных подключена к IBDataset(IBCustomDataset) -> DataSource -> JvDbGrid(JVCl)

Как выполнить сортировку минуя модернизацию SQL запроса (поскольку база очень большая и запросы обрабатываются секунд 5-7 )

В интернете нашел множество статей что можно как-то это осуществить через ClientDataSet , но как это сделать я так и не понял !

Подскажите пожалуйста !!

Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.04.2014, 17:44
Ответы с готовыми решениями:

Ibdataset и Lookupcombobox
Требуется по выбору значения в Lookupcombobox, что бы выполнялся запрос Select *from Prisoners where Chamber_Id= "ТО ЧТО ВЫБРАЛИ В...

Инкремент в IBDataSet
Доброго времени суток! Есть таблица, и есть в ней поле код, которое является ключевым, хочу при добавлении новой записи чтобы этому полю...

Из ibdataset в picklist grid
Приветствую, уважаемые форумчане. Не могу на этот раз разобраться как заполнить picklis dbgrid данными из БД. Есть таблица, в которой 2...

6
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
17.04.2014, 20:14
Лучший ответ Сообщение было отмечено Road_Runner как решение

Решение

Оно, конечно, можно, только надо быть готовым к тому, что этот уважаемый компонент держит все данные в памяти.
Для разработчиков, которые щадят юзеров и не выдают им на просмотр десятки тысяч записей - это не проблема.
Примерный сценарий "перехода" на TClientDataset с возможностью фильтрации и сортировки на стороне клиента:
- на форме дополнительно расположить TClientDataSet и TDataSetProvider;
- в свойстве DataSet компонента DataSetProvider указать поставщика реальных данных (в нашем случае - это IBDataSet);
- в свойстве ProviderName компонента ClientDataSet прописать DataSetProvider1 (или как он там у вас будет называться);
Связка компонентов доступа к данным будет выглядеть так:
IBDataset -> DataSetProvider -> ClientDataSet -> DataSource -> JvDbGrid.
Открываться и закрываться должен и IBDataset, и ClientDataSet. Про непосредственное редактирование в гриде придется забыть.

Ну а про сортировку для ClientDataSet рассказано в справке по этому компоненту.
Пример из справки:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.QuickIndexClick(Sender: TObject);
begin
  if Edit1.Text <> '' and 
     ClientDataSet1.Fields.FindField(Edit1.Text) then
  begin
    ClientDataSet1.AddIndex(Edit1.Text + 'Index', Edit1.Text, [ixCaseInsensitive],'','',0);
    ClientDataSet1.IndexName := Edit1.Text + 'Index';
  end;
end;
1
 Аватар для Road_Runner
1 / 1 / 1
Регистрация: 06.10.2011
Сообщений: 43
18.04.2014, 10:03  [ТС]
Скандербег, а какие еще варианты решения данной проблемы есть?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
18.04.2014, 10:22
Лучший ответ Сообщение было отмечено Road_Runner как решение

Решение

Сортировать на стороне клиента из компонентов IBX умеет только IBTable.
Если же абстрагироваться от проекта, то из компонентов библиотеки EhLib можно смастерить
систему сортировки и фильтрации на клиенте с удобным интерфейсом в гриде.
Другие варианты мне неизвестны. Может кто еще в курсе.
1
 Аватар для Road_Runner
1 / 1 / 1
Регистрация: 06.10.2011
Сообщений: 43
18.04.2014, 11:19  [ТС]
Скандербег, ehlib вещь хорошая, но она же платная или я ошибаюсь!
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
18.04.2014, 11:38
Увы, EhLib платная вещица (бесплатная версия 3.6 для ХЕ, видимо, не подойдет).
А чем не устраивает караван с участием ClientDataSet?
Работоспособный вариант, неоднократно проверенный в полевых условиях.
1
 Аватар для Road_Runner
1 / 1 / 1
Регистрация: 06.10.2011
Сообщений: 43
18.04.2014, 11:47  [ТС]
Скандербег, он то устраивает и пока что походу будет так реализован !
Спасибо за ответы!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.04.2014, 11:47
Помогаю со студенческими работами здесь

Insert + Edit в IBDataSet
Всем добрый день. Такая проблема. Есть таблица с 5 полями. Делаю Insert 3 первых вставляю и эту же новую запись сразу делаю Edit меняю 2...

Добавление к IBDataSet статического поля
Здравствуйте, уважаемые знатоки делфи. Пишу программу для диплома. FireBird 1.5, связка IBDataSet+DBGrid. Из БД берутся поля |Артикул...

В чем разница между IBTable и IBDataSet?
Проблема собственно такая, сделал фильтрацию через IBTable и всё работало нормально, по OnChange. Пришлось заменить IBTable на IBDataSet...

Фильтрация по дате в IBDataSet через SQL запрос
Доброго времени суток! Возникла проблема с фильтрацией по дате. Делаю в IBDataSet, база данных InterBase. Делаю так: в datetimepicker...

Запрос для ibdataset для свойства refreshSQL
помогите написать запрос для ibdataset для свойства refreshSQL. select выглядит так: select S.*, O.NAMEORG from SOTRUDNIKI s left...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru