есть форма, в которой имеется выпадающий список со значениями. Значения хранятся в БД. Например, статусы. Тащить их из БД каждый раз при открытии формы - наверно не совсем корректно. Есть идея закэшировать этот набор данных на стороне клиента в виде TDictionary. На сколько это правильное решение? И можно ли этот список будет использовать по всей программе, вытаскивая из него значения для выпадающего списка для необходимых форм.
Корректно. Просто проверяй, что справочник не изменился. Например, получай новое, при открытии формы. Например по ID.
Делал так недавно. Адекватное решение
Достаточно просто DataSet, не знаю твоих решений, но и список/dictionary тоже подойдет.
Если нет какого-нибудь событийного механизма оповещения от БД, что данные не актуальны и пора обновится, то логичнее получать данные каждый раз при заполнении списка. Иначе рискуешь работать с актуальными данными.
Если данные редактируются только вашей программой, то можно рассылать сообщение по сети при сохранении в БД. А лучше сообщение послать из триггера СУБД, а программа его отслеживать.
Зависит от того, будут ли они изменяться во время работы. Если нет, кешируй, если да, то лучше пусть каждый раз из бд тянутся. Либо, создай триггер на изменение и уведомляй клиентов
Отвечая на вопрос: такое решение допустимо и вполне работает, если (а) статусы не будут меняться или (б) по требованиям обновление списка доступных статусов допустимо делать только при запуске программы.
Обсуждают сегодня