169 похожих чатов

Всем привет. Подскажите, пожалуйста, как вы реализовываете следующий функционал. Допустим

есть форма, в которой имеется выпадающий список со значениями. Значения хранятся в БД. Например, статусы. Тащить их из БД каждый раз при открытии формы - наверно не совсем корректно. Есть идея закэшировать этот набор данных на стороне клиента в виде TDictionary. На сколько это правильное решение? И можно ли этот список будет использовать по всей программе, вытаскивая из него значения для выпадающего списка для необходимых форм.

7 ответов

32 просмотра

Корректно. Просто проверяй, что справочник не изменился. Например, получай новое, при открытии формы. Например по ID.

Делал так недавно. Адекватное решение

Достаточно просто DataSet, не знаю твоих решений, но и список/dictionary тоже подойдет.

Если нет какого-нибудь событийного механизма оповещения от БД, что данные не актуальны и пора обновится, то логичнее получать данные каждый раз при заполнении списка. Иначе рискуешь работать с актуальными данными.

Если данные редактируются только вашей программой, то можно рассылать сообщение по сети при сохранении в БД. А лучше сообщение послать из триггера СУБД, а программа его отслеживать.

Зависит от того, будут ли они изменяться во время работы. Если нет, кешируй, если да, то лучше пусть каждый раз из бд тянутся. Либо, создай триггер на изменение и уведомляй клиентов

Отвечая на вопрос: такое решение допустимо и вполне работает, если (а) статусы не будут меняться или (б) по требованиям обновление списка доступных статусов допустимо делать только при запуске программы.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта