powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Какую стратегию используете для заполнения источника LookUp полей?
62 сообщений из 62, показаны все 3 страниц
Какую стратегию используете для заполнения источника LookUp полей?
    #36003611
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переношу в очередной раз
Модератор: Для того, чтобы понять суть заданного вопроса - это надо кликнуть, перейти в дельфевый форум, там кликнуть и перейти в С#. Я позволю себе скопировать твой текст оттуда сюда, но в след. раз лучше делать это самостоятельно:

1. Загоняете все таблицу в память
2. Загоняете только нужные строки (как?)

Что делаете если на одном поле показаны данные из разных таблиц (Допустим, поле "Что входит" в узловых спецификациях может быть Деталь, Материал, ПКИ и т.д.)

Какую стратегию исползуете при вводе НОВЫХ данных?
1. Показывете всю таблицу
2. Показываете фильтр для уточнения выборки для показа
3..... (это интересует больше :))
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003645
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем, собственно проблема? Если лукап из более-менее статичных и коротких списков, то предзаполненный вываливающийся список. Если длинный или неопределенный, то лукап делается из отдельного диалога, где уже могут быть, а могут и не быть различные вспом. инструменты для поиска, фильтрации и т.п. Это что касается ввода и правки.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003665
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун,

Проблемы то особой нет, кроме производительности и памяти. :)

Если загружать из лукап источника только ту инфу, которая дает разрешение для видимой части (а она может быть получена хитрыми проекциями), то встает вопрос автоматического определения лукап полей, нужных источников, генерации и выполнения запросов для загрузки нужных источников в нужных разрезах.
И хорошо бы эти запросы не заставляли повторный запуск первичного запроса.
И если размер страницы выборки больше чем размер видимой страницы, то эти запросы еще сложнее, или загруженная страница еще не видима и т.д.
Ну, с вводом и редактированием немного проще.

Как вы это делаете?
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003666
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JOIN что-ли хитрая проекция? Или о чем речь? немного непонятно
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003670
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

ну вот смотри

Процедура из метаданных генерирует для основной таблицы типа
Код: plaintext
With OrderedType as (Select ИД,ТипИД,Наименование,[Заказчик],[Исполнитель],[Потребитель],[Описание],row_number() over (order by Наименование) as RowNumber from (Select ИД,ТипИД,Наименование,[Заказчик]=Cast(Max(Cast([Заказчик] as char( 36 ))) as uniqueidentifier),[Исполнитель]=Cast(Max(Cast([Исполнитель] as char( 36 ))) as uniqueidentifier),[Потребитель]=Cast(Max(Cast([Потребитель] as char( 36 ))) as uniqueidentifier),[Описание]=Max([Описание]) from (Select Объект.ИД,Объект.ТипИД,Объект.Наименование,[Заказчик]=Case when ОбъектСсылкаНаОбъект.Наименование='Заказчик' then ОбъектСсылкаНаОбъект.Значение end,[Исполнитель]=Case when ОбъектСсылкаНаОбъект.Наименование='Исполнитель' then ОбъектСсылкаНаОбъект.Значение end,[Потребитель]=Case when ОбъектСсылкаНаОбъект.Наименование='Потребитель' then ОбъектСсылкаНаОбъект.Значение end,[Описание]=Case when ОбъектСвойствоСтрока.СвойствоИД='9686AC96-FA8F-441A-ADB1-34F415073600' then ОбъектСвойствоСтрока.Значение end from Объект left outer join ОбъектСсылкаНаОбъект on (ОбъектСсылкаНаОбъект.ОбъектИД=Объект.ИД) left outer join  ОбъектСвойствоСтрока  on (ОбъектСвойствоСтрока.ОбъектИД=Объект.ИД) where Объект.ТипИД='881E6E8A-057F-4E61-93B2-E63D683FB959') as [Контракт] group by ИД,ТипИД,Наименование) as maxsql where Наименование='Заказ №1') Select ИД,ТипИД,Наименование,[Заказчик],[Исполнитель],[Потребитель],[Описание] from OrderedType  where (RowNumber >=  1                     ) and (RowNumber <=  9223372036854775807   )

Здес Заказчик, Испольнитель, Потребитель лукап поля
Для этих полей надо генерировать запросы, котрые будут выполняться в том же батче
в итоге надо вернут два резальтсета ( с учетом того, что Заказчик, Испольнитель, Потребитель все одного типа - Юридическое лицо)

Но, представь себе что педжинг на экране 10 записей и козел тот этот экран отсортировал (на клиенте) по описанию :(
Т.е., проблемы с очисктой кеша для лукап полей допольнительно
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003672
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тфу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
With OrderedType as 
(Select ИД,ТипИД,Наименование,[Заказчик],[Исполнитель],[Потребитель],[Описание],
row_number() over (order by Наименование) as RowNumber 
from 
(Select ИД,ТипИД,Наименование,[Заказчик]=Cast(Max(Cast([Заказчик] as char( 36 ))) as uniqueidentifier),
[Исполнитель]=Cast(Max(Cast([Исполнитель] as char( 36 ))) as uniqueidentifier),
[Потребитель]=Cast(Max(Cast([Потребитель] as char( 36 ))) as uniqueidentifier),
[Описание]=Max([Описание])
 from 
(Select Объект.ИД,Объект.ТипИД,Объект.Наименование,
[Заказчик]=Case when ОбъектСсылкаНаОбъект.Наименование='Заказчик' then ОбъектСсылкаНаОбъект.Значение end,
[Исполнитель]=Case when ОбъектСсылкаНаОбъект.Наименование='Исполнитель' then ОбъектСсылкаНаОбъект.Значение end,
[Потребитель]=Case when ОбъектСсылкаНаОбъект.Наименование='Потребитель' then ОбъектСсылкаНаОбъект.Значение end,
[Описание]=Case when ОбъектСвойствоСтрока.СвойствоИД='9686AC96-FA8F-441A-ADB1-34F415073600' then ОбъектСвойствоСтрока.Значение end
 from
 Объект 
left outer join ОбъектСсылкаНаОбъект on (ОбъектСсылкаНаОбъект.ОбъектИД=Объект.ИД) 
left outer join  ОбъектСвойствоСтрока  on (ОбъектСвойствоСтрока.ОбъектИД=Объект.ИД) 
where Объект.ТипИД='881E6E8A-057F-4E61-93B2-E63D683FB959') as [Контракт] 
group by ИД,ТипИД,Наименование) as maxsql 
where Наименование='Заказ №1')
 Select ИД,ТипИД,Наименование,[Заказчик],[Исполнитель],[Потребитель],[Описание] from
 OrderedType  where (RowNumber >=  1  ) and (RowNumber <=  9223372036854775807   )
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003679
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов
Если загружать из лукап источника только ту инфу, которая дает разрешение для видимой части....

Подозреваю, что тут проблема в попытке одним и тем же инструментом решить две задачи: отображение выбранного в поле на форме и собственно выбор. Да, для простых случаев можно на все про все использовать что-то вроде комбобоксов и их производных: он и отобразит на форме и позволит выбрать. Если более сложный вариант, лучше все-таки разделить задача. Например если идет речь о выборе спецификации, то не вижу никакого смысла в саму форму, где есть поле со ссылкой на спецификацию, пихать все ее содержимое. Достаточно выдать ключевую для пользователя идентифицирующую информацию, например номер, дату, название и т.п. Возможно в комплексе, но это должна быть просто конкатенация в одну строку. Как это вывести, надеюсь объяснять не надо.

Дальше возникают еще 2 отдельные задачи.
1. Как дать пользователю более подробную инфу, что именно выбрано в этом поле. Я обычно банально предлагаю по встроенной кнопке открыть форму соответствующего документа. Логично и удобно.
2. Как выбирать. Ну, тут уж от предмета выбора зависит. Но для сложных случаев это однозначно отдельный диалог выбора, причем чаще всего модальный. А уж в нем делается все что необходимо, чтоб найти соответствующий документ.

Надо быть проще. Красивые навороченные демонстрационные примеры от DevExpress хороши, чтоб ими любоваться. Но не стоит их все сразу предлагать несчастным реальным пользователям :)
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003680
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават,
понял о чем ты. Никогда не использую лукап поля, поэтому я пас. Думал немного о другом.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003690
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун,

ты имеешь ввиду показать так? Это тоже есть, но как то неинтересно
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003691
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун,

и причем тут Девекспресс??? и о каких демках идет речь? что то не понял юмора
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003693
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,
значит ты показываешь без лукапа, а редактируешь и вводишь в отдельной форме?
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003700
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават, да, примерно так. Для просмотра все вытягивается запросом, а если нужно отредактировать, то по требованию "подчитывается" список.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003703
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

ну тогда надо два АПИ, для показа и для обработки :(
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003707
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, получается, что лучше всего лукап инфы совместно с основной инфой грузить НЕ надо.
Потому что основная инфа может быть просто не видимым еще. Потому лучше всего реагировать на состояние экрана, при изменении выдернуть лукап инфы для вновь видимых и очистить для ставших невидимыми (если конечно нет на эти записи других ссылок)
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003713
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовiscrafm,

ну тогда надо два АПИ, для показа и для обработки :(
нет. Просто для показа все делаешь в БД, а для обработки, если понадобиться, подключаешь дополнительные источники. Но только по требованию и единоразово. Часто ограничиваются параметрами. Но форма одна может быть, а может и две разные. Когда как выгодней. Мало ситуаций когда нужно одновременно. Но тянуть сразу все лукап списки навряд-ли нужно. Вытяни "расшифровки" запросом из БД. При выборе значения из "справочника" просто, помимо ключей, физически заполняются их представления на клиенте. В базу конечно пишутся только ключи. Где-то так.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003717
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

Понятно, так тоже сесть
Но надо кучу левых запросов генерировать. А они все громадные.
Тут у меня сейчас вот что сделан - Датасет работает напрямую с БД с фильтрацией и доппейджингом. Т.е., допустим MoveNext выбирет из кеша следуюущую запись, но если конец страницы, то загружает следующую страницу и выбирает первую запись (при указании доппараметра предыдущая странцы сохраняется и кеш уничтожается). Так вот этот же механизм подключен к визуальным элементам. Они работают напрямую с БД и малым кешем. Тем самым одни и те же расширения Датасет дают возможность визуализировать и обработать любой объем данных при управляемом размере использованной памяти.
Я принял окончательно решение - ввожу оверлоад в нужные методы с параметром лукап и в этом режиме к записи сразу припишу и уничтожу всю лукап информацию.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003725
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават,
насчет запросов не знаю, у нас немного все не так "внутри". Но принцип примерно как ты и описал. Вот картинка . На просмотр - из базы, для редактирования по требованию запускается привязанный сервис , который заполняет все что нужно в текущей записи. Он делается один раз, используется где необходимо. СОА рулит .
:)
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003731
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

понятно, спасибо
обойдемся без соа, просто переписал и дописал датасет немного и все
датасет знает о своем двойнике в БД все :) загружает все нужные связи и т.д.
вощем слиппер :)
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003735
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полуилось обычный ОРМ, только без генерации вских там классов и т.д. Все делается динамически (добавление новых типов, совйств, асоциаций и т.д.) и ничего перекомпилировать не надо. Плюс генерируется пользовательский GUI, плюс возможность задать внешние обработки, плюсь внешние формы и т.д.
через неделю выпуск версии 1.0 :)
Параллельно на ней написан верхний уровень МЕС.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003805
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003879
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов wrote:

> 1. Загоняете все таблицу в память
> 2. Загоняете только нужные строки (как?)

Используется т.н. кэш результатов запросов, который работает
без ограничения размера этого кэша. Для каких-то запросов у
формы есть возможность сказать, что его данные нужно кэшировать
и они кэшируются на уровне всего приложения. У формы есть
возможность обновлять кэш (т.е. инвалидировать кэш перед очередным
запросом), а также у пользователя в форме делается спец. пункт
меню, который обновляет все закэшированные справочники, используемые
данной формой.

> Что делаете если на одном поле показаны данные из разных таблиц
> (Допустим, поле "Что входит" в узловых спецификациях может быть Деталь,
> Материал, ПКИ и т.д.)

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

> Какую стратегию исползуете при вводе НОВЫХ данных?

Новые данные добавляются, кэш запросов инвалидируется формой
в части, касающейся этого комбика.

Недопущение введения дублирующих данных -- вопрос особый, и с данным,
думаю, никак не связан.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003882
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже я вообще что-то не в тему ляпнул. Но в чём состоит тема - так и не понял.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003885
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

нормально ляпнул.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003915
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовАлександр Гoлдун,

и причем тут Девекспресс??? и о каких демках идет речь? что то не понял юмора
Просто мельком глянул картинки, увидел гриды с встроенными подчиненными гридами, вот и вспомнился DevExpress.

Сахават Юсифов
ты имеешь ввиду показать так? Это тоже есть, но как то неинтересно
Нужно интересно или пригодно к использованию и не запределельно в разработке? Я стараюсь отдельно взятые формы не усложнять. Так по моему опыту гораздо лучше воспринимается пользователями. Если по кнопочке в отдельной форме юзеру откроется другое привычное представление, например содержимое заинтересовавшей спецификации, то это вполне адекватно воспринимается. А вот если по плюсикам схлопываются-расхлопываются целые области с кучей информации в том же окне, то такое по моему опыту хуже воспринимается, гораздо сильнее пестрит.
Нет, чисто для отображения без правки такое еще куда ни шло, но навешивать в ту же схему еще и редактирование нецелесообразно.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003918
ResearchStudio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты у ДимыО дизайн заказывал ? Почему кнопка Сохранить и Отменить по середине формы
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003923
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун,

ну я то хочу что бы все эти возможности сосущетвовали вместе.
там по плюсику выскакивает форма для выбора, ввода и редактрования
а по переключетелю форма меняется на лайоут форму
много чего там есть
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36003924
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ResearchStudioТы у ДимыО дизайн заказывал ? Почему кнопка Сохранить и Отменить по середине формы

конпки Сохранить и отменить нету (есть сохранить - атавизм - просто забыл убрать)
все что в меню не касается проги прикладной - это часть уберется совсем в другой интерфейс - интерфейс разработчика (или спрячется)
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004478
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
With OrderedType as 
(Select ИД,ТипИД,Наименование,[Заказчик],[Исполнитель],[Потребитель],[Описание],
row_number() over (order by Наименование) as RowNumber 
from 
(Select ИД,ТипИД,Наименование,[Заказчик]=Cast(Max(Cast([Заказчик] as char( 36 ))) as uniqueidentifier),
[Исполнитель]=Cast(Max(Cast([Исполнитель] as char( 36 ))) as uniqueidentifier),
[Потребитель]=Cast(Max(Cast([Потребитель] as char( 36 ))) as uniqueidentifier),
[Описание]=Max([Описание])
 from 
(Select Объект.ИД,Объект.ТипИД,Объект.Наименование,
[Заказчик]=Case when ОбъектСсылкаНаОбъект.Наименование='Заказчик' then ОбъектСсылкаНаОбъект.Значение end,
[Исполнитель]=Case when ОбъектСсылкаНаОбъект.Наименование='Исполнитель' then ОбъектСсылкаНаОбъект.Значение end,
[Потребитель]=Case when ОбъектСсылкаНаОбъект.Наименование='Потребитель' then ОбъектСсылкаНаОбъект.Значение end,
[Описание]=Case when ОбъектСвойствоСтрока.СвойствоИД='9686AC96-FA8F-441A-ADB1-34F415073600' then ОбъектСвойствоСтрока.Значение end
 from
 Объект 
left outer join ОбъектСсылкаНаОбъект on (ОбъектСсылкаНаОбъект.ОбъектИД=Объект.ИД) 
left outer join  ОбъектСвойствоСтрока  on (ОбъектСвойствоСтрока.ОбъектИД=Объект.ИД) 
where Объект.ТипИД='881E6E8A-057F-4E61-93B2-E63D683FB959') as [Контракт] 
group by ИД,ТипИД,Наименование) as maxsql 
where Наименование='Заказ №1')
 Select ИД,ТипИД,Наименование,[Заказчик],[Исполнитель],[Потребитель],[Описание] from
 OrderedType  where (RowNumber >=  1  ) and (RowNumber <=  9223372036854775807   )
Сахават, не показывай никому такие запросы
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004636
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

запросы пока не доведены, лишь бы работали
а так скажи самые крамольные места
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004679
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- если у тебя фреймворк для разработчика, то всё равно все сложные места\запросы надо убрать с глаз долой (напр. в СУБД)
- интерфейс не перегружать интуитивно непонятными вещами (Александр Гoлдун +1)
- не экономить на спичках (часто и без кэша всё работает, т.к. справочники не должны быть большими)
- если не кэшировать (не делать n-звенки) либо использовать кэши самих компонентов ADO\..., то всё упрощается до безобразия.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004704
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- если у тебя фреймворк для разработчика, то всё равно все сложные места\запросы надо убрать с глаз долой (напр. в СУБД)
- интерфейс не перегружать интуитивно непонятными вещами (Александр Гoлдун +1)
- не экономить на спичках (часто и без кэша всё работает, т.к. справочники не должны быть большими)
- если не кэшировать (не делать n-звенки) либо использовать кэши самих компонентов ADO\..., то всё упрощается до безобразия.

- Запросы енерирует программа, прогер указывает where (его пока сложно (некогда) мне распарсить по таблицам свойств, потому забил на оптимизауию и where вынес на поседний этап, потом переделаю).
- дело это наживное, моет еще 100 раз все изменится
- тут структура такая, что не только справочники лукапятся, все объекты имеют свой ИД и джойн происходит только по ИД, потому приходится сделать сложный лукап (така как не у всех типах есть "Наименование")
- кеш в данном случае не многозвенка, а клиентский, просто есть возможность загрузить всю таблицу и соттветственно потянутся лукапы и куды все это совать? Потому лукапы грузятся только на видимую часть экрана, кешируются и управлюяется этот кешь. Опять же работа с большой таблице в режиме курсора, нафига держать страницы, каторые уже не нужны никому?
вощем у каждой записи есть счетчик, когда счетчик доходит до нуля то запись удаляется.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004728
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов,
мне одно непонятно.
Кэшем страниц, записей, данных и т.д. занимаются "комопненты доступа к данным" (напр. ADO) .
Это отдельный слой в архитектуре , как например драйвера. Его не надо улучшать и допиливать, по крайней мере в общем проекте.
ИМХО ты смешал всё в одну кучу:
EAV + РСУБД + DAL + фреймворк
поэтому сложности будут расти лавинообразно.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004738
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть ещё один ньюанс.
У меня на форме, допустим 30 лукапов. Т.к. все лежат на PageControl (вкладки), то грузятся все запросы, даже на невидимых вкладках в данный момент .
Но я, как разработчик иду на это, т.к. пусть "долго грузится форма, но быстро работает потом".
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004739
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

да какой нафиг кеш в АДО????
Он грузит все что скажешь и умывает руки, при этом утраивает количество записей.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004741
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123есть ещё один ньюанс.
У меня на форме, допустим 30 лукапов. Т.к. все лежат на PageControl (вкладки), то грузятся все запросы, даже на невидимых вкладках в данный момент .
Но я, как разработчик иду на это, т.к. пусть "долго грузится форма, но быстро работает потом".
вот этого то я избегаю
нафига грузить то что никому не нужно???
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004744
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

ну, жду я
может ты облегчишь жизнь, а то и так дофига чего надо еще делать
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004745
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовPetro123,

да какой нафиг кеш в АДО????
Он грузит все что скажешь и умывает руки, при этом утраивает количество записей.
поставь параметр не клиентский курсор, а серверный и .... проверь.
Строку
Q.Open - он проскочит даже не моргнув.
Подгрузка записей будет на Q.Next
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004751
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

тут АДО.НЕТ
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004752
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовPetro123есть ещё один ньюанс.
У меня на форме, допустим 30 лукапов. Т.к. все лежат на PageControl (вкладки), то грузятся все запросы, даже на невидимых вкладках в данный момент .
Но я, как разработчик иду на это, т.к. пусть "долго грузится форма, но быстро работает потом".
вот этого то я избегаю
нафига грузить то что никому не нужно???
психология юзверя.
Долго ждать, но потом быстро работать.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004753
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и не всегда можно в АДО пользоваться серверным курсором
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004758
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовPetro123,
тут АДО.НЕТ
и что? там этого парам НЕТ ? ;)) (я правда не в курсе)
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004759
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

:)
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004762
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

АДОНЕТ отсоединенный режим
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004769
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовPetro123,

АДОНЕТ отсоединенный режим
пипец, приехали.
У меня на сотовом всегда присоединённый, а у тебя такие сложности-реплики.
Удачи тебе!
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004804
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторскажи самые крамольные места
Убери Max.Зачем они там нужны и какой в них смысл для GUID&string?
Почему у тебя LEFT JOIN а не INNER?Объект может быть без свойств?В общем случае он дает худший план выполнения.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36004838
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaавторскажи самые крамольные места
Убери Max.Зачем они там нужны и какой в них смысл для GUID&string?
Почему у тебя LEFT JOIN а не INNER?Объект может быть без свойств?В общем случае он дает худший план выполнения.
Мах имеет смысл, посмотри получше, без мах получишь лестницу
LEFT имеет смысл - совйства оъекта разделены на три группы
1. Объектные - должны быть все, т.е. не могут одни объекты ссылаться на одни, а другие на другие, для этого надо создать первичный шаблонный тип
2. Системные необъектные - должны быть все это второй уровень шаблонной типизации
3. Пользовательские - могут быть, а могут и нет быть - у каждого объекта свои

Так вот этот запрос выбирает первые две группы совйств, а треть-пользовательская грузятся следом (сложно where распарсить для этого случая, сначала выкидываются термы, которые не имеют ссылку на тиизированную часть объекта и делается первая выборка , потом остальная часть провеяется на соответсвие - сесть ли такие свойства вообще, то есть ли у объектов с первичным шаблонм такие свойства и если есть то грузятся.)
Я думал тебе не понравилась структура запроса, а ты про стратегию доступа. :(
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005042
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ думал тебе не понравилась структура запроса, а ты про стратегию доступа. :(
Именно структура.Запрос можно сформировать короче и без мах, при этом не будет никах лестниц
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005049
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Ну, с мах надо и ЛЕФТ выкинуть
а тогда я теряю объект
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005054
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, все равно надо этим заниматься вплотную теперь. Посмотрю. Был у меня твой вариант, но когда свойство не вводили, то объекты пропадали
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005090
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005133
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 wrote:

> (вкладки), то грузятся все запросы, *даже на невидимых вкладках в данный
> момент*.
> Но я, как разработчик иду на это, т.к. пусть "долго грузится форма, но
> быстро работает потом".

У нас все запросы грузятся исключительно по требованию, т.е. предзагрузки
нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005211
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Petro123 wrote:

> (вкладки), то грузятся все запросы, *даже на невидимых вкладках в данный
> момент*.
> Но я, как разработчик иду на это, т.к. пусть "долго грузится форма, но
> быстро работает потом".

У нас все запросы грузятся исключительно по требованию, т.е. предзагрузки
нет.

осталось понять что значит: "по требованию" :).
Правильно я понял, что при клике на вкладке "Семья" - вы ОТПРАВЛЯЕТЕ на сервер запрос по семье.
А при клике на вкладке "Долги", вы УНИЧТОЖАЕТЕ запросы-кэши по семье и ОТПРАВЛЯЕТЕ запрос по этой вкладке?
ЗЫ. Нельзя так максималистки - "все".
Программирование - это компромисс.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005225
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

вот тут семью удалить не надо, пока форма висит эта
а как только выберется другая семья на этой форме (или форма закроется) то, если другой визальный элемент какой нить формы не нуждается в этой "семье", то ей капут :)
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005266
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовPetro123,

вот тут семью удалить не надо, пока форма висит эта

==== я и не удаляю :)

а как только выберется другая семья на этой форме

== это невозможно, т.к. карточка редактирования ОДНОЙ сущности

(или форма закроется)

=== это вообще вне темы, т.к. сама форма умирает


тем кто любит на спичках экономить, советую при открытии таблиц - не подгружать колонки, которые не видны.
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36005278
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

форма и данные - разные вещи
форма может умереть а данные нужны другой форме или еще для че то
ладно делай как хочешь
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36006066
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 wrote:

> У нас все запросы грузятся исключительно по требованию, т.е. предзагрузки
> нет.

> осталось понять что значит: "по требованию" :).

Это значит -- запрос выполняется при первом требовании данных, возвращаемых
этим запросом, формой. При этом его результат помещается в "кэш".
Последующие запросы уже берут данные оттуда и реально не выполняются.
Для формы этот процесс прозрачен, т.е. она не знает, выполнялся ли реально
запрос или нет.

> Правильно я понял, что при клике на вкладке "Семья" - вы ОТПРАВЛЯЕТЕ на
> сервер запрос по семье.

Ну, наверное да. Я не знаю правда, что такое "вкладка "Семья".

> А при клике на вкладке "Долги", вы УНИЧТОЖАЕТЕ запросы-кэши по семье и
> ОТПРАВЛЯЕТЕ запрос по этой вкладке?

Не, ничего не уничтожаем. Но отправляем.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36006068
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов wrote:

> вот тут семью удалить не надо, пока форма висит эта
> а как только выберется другая семья на этой форме (или форма закроется)
> то, если другой визальный элемент какой нить формы не нуждается в этой
> "семье", то ей капут :)

У нас ничего никогда из "кэша" не удаляется. При этом кэш никак не
ограничивается в объёме. Вот такой вот странный кэш.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36006191
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> осталось понять что значит: "по требованию" :).

Это значит -- запрос выполняется при первом требовании данных, возвращаемых
этим запросом, формой.
у тебя форма инопланетянином пишется? КТО требует данных? Форма? Вкладка?

Я могу написать 2-мя способами:
1. На событии MouseClick на вкладке - проверить первый ли раз кликаем и (если первый раз) - отправить запрос..... ждать ответа......открыть вкладку

2. На событии OpenForm ДЛЯ ВСЕХ ВКЛАДОК - отправить запросы..... ждать ответа В ФОНЕ ......открыть ФОРМУ С ГОТОВЫМИ ВКЛАДКАМИ.

По п.2 ВСЕ ВКЛАДКИ МОГУТ ЗАПОЛНЯТЬСЯ ОДНИМ запросом.

Не надо путать представление данных (вкладки) и расположение контролов на форме от логики загрузки данных и логики транзакционной целостности данных.
----
не в том месте кэшируете
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36006319
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

мы то про кеш в оперативном памяти говорим, а не на диске
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36006391
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов wrote:
> мы то про кеш в оперативном памяти говорим, а не на диске

Ну и я в общем тоже.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36006545
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

я думал ьы про CahedDataSource типа
...
Рейтинг: 0 / 0
Какую стратегию используете для заполнения источника LookUp полей?
    #36007179
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов wrote:

> я думал ьы про CahedDataSource типа

Нет, у нас ады не используются.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
62 сообщений из 62, показаны все 3 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Какую стратегию используете для заполнения источника LookUp полей?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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