|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Добрый день! Довольно давно уже для хранения параметров запрашиваемых с клиента наборов данных (возможные фильтры, группировки, связи мастер-деталь, столбцы, их заголовки и т.п.) используем связку из двух таблиц, из которых первая хранит список наборов данных (по сути - список имен представлений), а вторая - список имен полей в каждом наборе с данными об очередности отображения, видимости, формате и т.п. В итоге на клиенте динамически формируются SQL-запросы и параметры Grid на основе этих таблиц. Есть, правда, еще третья таблица, в которой пользовательские параметры хранятся (очередность, видимость), но это уже лирика. Вариант оказался удобным, но лишь до тех пор, пока разработчик не забывает обновить таблицу со списком полей после корректировки метаданных представления (описаний новых полей нет, зато могут оказаться поля, отсутствующие в реальном представлении). К тому же, настал момент, когда для показа на клиенте данных, полученных из представления стало недостаточно. Точнее, понадобилось реализовать разные свертки данных (читай - группировки) и фильтрацию на основе данных, отсутствующих в основном наборе, что порой не совсем удобно делать в представлении, но легко реализуется в ХП. Добавить ХП в указанную схему по сути не сложно, и список параметров коротким запросом можно получить. Но в БД изначально есть список полей представлений и список параметров ХП, которые по сути приходится дублировать, что частенько приводит к противоречивости данных. Триггеры на системные таблицы, как я не понимаю, - не только не комильфо, но еще и не восстанавливаются после B/R. Существуют ли другие подходы к данной задаче? FB 2.5.6 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 15:27 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
не нужно превращать "автоматизацию пивного ларька" в универсальный OLAP-сервер. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 15:37 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Kirill RazuvaevВариант оказался удобным, но лишь до тех пор, пока разработчик не забывает обновить таблицу со списком полей после корректировки метаданных представления (описаний новых полей нет, зато могут оказаться поля, отсутствующие в реальном представлении). я так понимаю, что данные из этой таблицы где-то как-то получаются запросом. шо мешает вставить в него следующие строки: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 15:46 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Мимопроходящийне нужно превращать "автоматизацию пивного ларька" в универсальный OLAP-сервер.Изменить заголовок столбца в гриде или сменить сортировку по умолчанию гораздо удобнее сделать один раз в БД, чем править клиентское приложение и обновлять его везде. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 15:48 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
PEAKTOPшо мешает вставить в него следующие строки:Об этом я уже думал и, скорее всего, такой костыль будет полезен. В общем случае, можно, конечно, собрать перечень полей в обратной последовательности, приняв за базовый набор RDB$, тогда и несуществующих полей не будет, и новые появиться могут, хоть и с не всегда заполненными параметрами отображения. Но в этом варианте сложность в том, что нужно еще и пользовательские параметры очередности отображения подхватить - читай переиндексировать выходной набор на основе пользовательских параметров. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 15:53 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
02.08.2017 15:48, Kirill Razuvaev пишет: > чем править клиентское приложение и обновлять его везде. в результате у тебя будет "размазанный" по туевой хуче точек интерфейс. упаси Господи такое отлаживать и сопровождать... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 16:21 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Мимопроходящийв результате у тебя будет "размазанный" по туевой хуче точек интерфейс.Нисколько. Вся конфигурация табличных датасетов в одном месте, в двух таблицах. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 16:55 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Kirill RazuvaevМимопроходящийне нужно превращать "автоматизацию пивного ларька" в универсальный OLAP-сервер.Изменить заголовок столбца в гриде или сменить сортировку по умолчанию гораздо удобнее сделать один раз в БД, чем править клиентское приложение и обновлять его везде. А не надо править клиентское приложение. Надо иметь интерфейс, позволяющий юзеру самостоятельно сохранять в базе варианты визуализации результатов одних и тех же запросов в одной или разных формах. И назначать один из них умолчательным для формы, а остальные при необходимости выбирать из списка. И редактировать или создавать новые. Кстати, мой копирайт 98-го года. Смайлик с растопыренными пальцами. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2017, 21:47 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Kirill RazuvaevИзменить заголовок столбца в гриде или сменить сортировку по умолчанию гораздо удобнее сделать один раз в БД, чем править клиентское приложение и обновлять его везде. Я меняю это в приложении, потом сую exe в базу. Клиентские приложения при старте проверяют есть ли в базе более новая версия чем они сами, если есть - самообновляются. Уже давно по клиентам не бегаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 03:53 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
fraksЯ меняю это в приложении, потом сую exe в базу.IMHO, это из пушки да по воробьям получается :-) P.S. Об обновлении версий тут речи не было :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2017, 16:04 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Старый плюшевый мишкаНадо иметь интерфейс, позволяющий юзеру самостоятельно сохранять в базе варианты визуализации результатов одних и тех же запросов в одной или разных формах.Это-то понятно, к тому и идем, поскольку некоторые наборы расползлись до 60 столбцов, бОльшая часть из которых клиенту в конкретном режиме не нужна. Но начальные параметры, равно как и варианты визуализации хранить все равно централизованно надо. Вопрос был о том, есть ли более ликвидные подходы к организации такого хранения. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2017, 16:07 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Kirill RazuvaevfraksЯ меняю это в приложении, потом сую exe в базу.IMHO, это из пушки да по воробьям получается :-) P.S. Об обновлении версий тут речи не было :-) Да эта пушка собственно что слону дробина. .exe весит 7мб. Я в свое время пытался рожать скриптовый дельфи что бы приложение формы и даже код подтягивало прям из базы. Убил на это дело год. Но потом бросил. Нет смысла делать Delphi если он уже есть. А 7-10мб скачать по локалке никаких проблем не составляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2017, 04:52 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Kirill Razuvaev, создай на клиенте процедуру валидации метаданных твоих представлений (какой-нибудь вызов препарации запроса, формирующего представление, например), флаг успешной валидации храни в базе. При изменении метаданных представлений сбрасывай этот флаг. Также сбрасывай его при изменении физических метаданных в базе ( см. https://www.firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-psql-ddltriggers.html - т.е. "триггеров на системные таблицы" больше не нужно). Ну вот, клиентское приложение должно работать лишь при наличии установленного этого самого флага. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2017, 12:30 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
чччДПри изменении метаданных представлений сбрасывай этот флаг. Также сбрасывай его при изменении физических метаданных в базе ( см. https://www.firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-psql-ddltriggers.html - т.е. "триггеров на системные таблицы" больше не нужно).Идея хороша, но миграция на 3.0 еще только в планах, и не совсем понятно, сколь близких :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 10:39 |
|
Хранение параметров наборов данных для клиента
|
|||
---|---|---|---|
#18+
Kirill RazuvaevчччДПри изменении метаданных представлений сбрасывай этот флаг. Также сбрасывай его при изменении физических метаданных в базе ( см. https://www.firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-psql-ddltriggers.html - т.е. "триггеров на системные таблицы" больше не нужно).Идея хороша, но миграция на 3.0 еще только в планах, и не совсем понятно, сколь близких :-) Ну тогда просто при запуске клиентского приложения вычисляй сигнатуру физических метаданных базы и сравнивай ее с ранее сохраненной. Это просто и быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 18:49 |
|
|
start [/forum/topic.php?fid=40&msg=39499294&tid=1561456]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 150ms |
0 / 0 |