powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Дополнительное поле в таблице.
11 сообщений из 11, страница 1 из 1
Дополнительное поле в таблице.
    #40055763
set000666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Delphi RAD Studio 10. Есть БД MySQL. Конекчусь к ней с помощью компонентов FireDac. Данные на форму вывожу с помощью TDBGrid. Мне необходимо что бы часть полей в гриде заполнялось из БД, а часть из другого источника(програмно). Подскажите как это лучше сделать.
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055767
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055770
set000666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>> https://www.bestprog.net/ru/2016/02/13/009-пример-создания-расчетных-полей-в-ко/

Это не подойдет. В примере расчет производится SQL запросом, а мне надо что бы в самом клиентском приложении дополнительные поля заполнялись. Данные беруться из другого источника, не из БД..
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055776
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set000666,

тогда предлагаю 4 способа

1) В MySQL во времнную таблицу выгружаем дополнительные данные из других источников и уже в датасете показываем результат JOIN'a

2) используем какой-нибудь in-memory датасет, заполняем его из MySQL и далее оставшиеся поля из другого источника. Я этот способ в последнее время довольно часто использую.

3) в датасете добавляем Calculated поля, в программе организуем контейнер типа key-value и далее значения этих Calculated полей заполняем из контейнера в событии OnCalcFields датасета

4) можно ещё через Lookup-поля, но это если в датасете не очень много записей.
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055783
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5) только что ещё один способ пришёл в голову, обрытный первому: в MySQL создаём временную таблицу на основе запрашиваемой, расшияем её на дополнительные поля, далее заполняем их из других источников и в гриде показываем результаты SELECT'а из этой временной таблицы
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055786
set000666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>> только что ещё один способ пришёл в голову, обрытный первому: в MySQL создаём временную таблицу на основе запрашиваемой, расшияем её на дополнительные поля, далее заполняем их из других источников и в гриде показываем результаты SELECT'а из этой временной таблицы

Думал уже об этом. Проблема в том, что данные в дополнительных полях должны обновляться с периодичностью 1 раз в секунду. Боюсь что слишком большая нагрузка на БД будет.
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055788
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set000666,

тогда 3-й способ
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055791
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set000666
>> https://www.bestprog.net/ru/2016/02/13/009-пример-создания-расчетных-полей-в-ко/

Это не подойдет. В примере расчет производится SQL запросом, а мне надо что бы в самом клиентском приложении дополнительные поля заполнялись. Данные беруться из другого источника, не из БД..

Просто создаешь новую колонку в DBGrid. Заполняешьее в OnDrawColumnCell
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055793
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set000666
>> только что ещё один способ пришёл в голову, обрытный первому: в MySQL создаём временную таблицу на основе запрашиваемой, расшияем её на дополнительные поля, далее заполняем их из других источников и в гриде показываем результаты SELECT'а из этой временной таблицы

Думал уже об этом. Проблема в том, что данные в дополнительных полях должны обновляться с периодичностью 1 раз в секунду. Боюсь что слишком большая нагрузка на БД будет.

Самое оптимальное: писать свой грид на базе StringGrida, который отображает ровно столько строк, сколько одномоментно отображается на экране.
Как говориться: лучше один день потерять, затем за пять минут долететь
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055860
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
calculated поля датасета именно для такого и придумали
...
Рейтинг: 0 / 0
Дополнительное поле в таблице.
    #40055889
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Либо через OnDrawColumnCell, либо использовать какой нибудь memory dataset, например MemTableEh позволяет редактировать данные не бегая по срокам и грид их корректно перерисовывает.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Дополнительное поле в таблице.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]