Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение alexs » 03.03.2012 15:13:33

Вообщето для этого есть FK и тригеры. Нефиг на клиента тянуть то, что должен делать сервер. Сами себе проблемы наживаете.
При предложенном вами способе обновления вы 100% уверены, что все изменения пройдут в контексте одной транзакции?
Например MSSQL, да и PGSQL любят, если явно не указано, то отдельные апдейты делать в разных транзакциях. Т.е. транзакция автоматом начинается и заканчивается для каждой операции.
А потом с вас пользователи спросят - почему данные не валидны...

Добавлено спустя 5 минут 59 секунд:
Ism писал(а): MasterField MasterSource
Когда я попытался это воспроизвести это в tsqlquery из лазаруса , такое уродство вышло.


Я уже не говорю о том, что если вы таким образом свяжете эти два объекта - у вас такой объём данных по сети будет гонятся, что и сеть положить можно, не говоря о бедном сервере.
Почему не подумать немного над запросом и сразу связать несколько таблиц и выбрать только необходимый минимум.
А если уже хочется мастер-детайл для оператора, то опять-таки - указывая явно запосы вы очень сильно уменьшаете объём данных.
PS
Вот чего мне не хватает в ZEOS-е так это вот этого - http://www.devrace.com/ru/fibplus/artic ... hp?ID=1172
Вторая важная опция - это ключ dcWaitEndMasterScroll. Представьте, что пользователь передвигается по DBGrid1, пытаясь найти нужный отдел. При каждом движении, когда меняется текущая запись в DBGrid1, pFIBDataSet2 автоматически переоткрывает запрос. Очевидно, движение по master-таблице может вызвать серию довольно "тяжелых" запросов, которые значительно увеличат совершенно бесполезный сетевой трафик. На практике было нужно переоткрыть detail-запрос только один раз, когда пользователь все-таки нашел нужный ему отдел в DBGrid1. FIBPlus позволяет избежать ненужных запросов. Если ключ dcWaitEndMasterScroll добавлен в DetailConditions, то detail-запрос переоткрывается только после некоторой паузы (величину паузы можно регулировать, задавая значение свойства WaitEndMasterInterval).

Таким образом, когда пользователь просто передвигается по DBGrid1, изменение текущей записи "включает" таймер detail-запроса. Если за время паузы пользователь успевает перейти на другую запись, то таймер сбрасывается. И так до тех пор, пока пользователь не остановится на нужной записи. Только после этого detail-запрос переоткрывается, а значит, pFIBDataSet2 выполняет только один запрос вместо целой серии.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение Ism » 03.03.2012 17:24:29

Вообщето для этого есть FK и тригеры.

Не сразу допер о чем вы, то есть один view и несколько датасетов отображающих части этого view в разных DBGrid ?

dcWaitEndMasterScroll


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

Мне сейчас надо от зеоса надежная работа с разными базами, пока уверен только с mysql. Надо еще проверить работу с последним firebird
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение ronin » 03.03.2012 18:14:45

каскадные таблицы


это простите меня что такое? master-detail что ли? а такой возможности в TZQuery нема?

Когда я попытался это воспроизвести это в tsqlquery из лазаруса


стоп, в этой теме речь о стандартных компонентах или о зеосе? о_О
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение alexs » 03.03.2012 18:20:15

FK - это внешний ключ. Ограничение на уровне БД на изменение данных.
Тригеры - ну это тригеры. На них удобно бизнес логику на уровне БД делать. Проще получется, чем если тот же самый код на клиенте реализовавыть...
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение Ism » 04.03.2012 17:11:35

В общем мы пошли другим путем, прошу заценить новые значки для зеоса

http://zeos.firmos.at/viewtopic.php?p=14375#14375
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение alexs » 04.03.2012 21:19:26

Ничего так. Но чуть-чуть на мой взгляд ярковато. Может приглушить цвета?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение Ism » 04.03.2012 21:31:33

В последнем посте я приглушил зеленый, неужели еще надо ? Какие именно цвета глушить ?

Добавлено спустя 32 минуты 25 секунд:
Красные элементы затемнил, все в архиве
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение Ism » 07.03.2012 23:35:03

Вот еще проблема с библиотеками , прошу проверить корректность патча для testing-egonhugeist

http://zeos.firmos.at/viewtopic.php?t=3439
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Сдвинуть с мертвой точки ZEOSDBO-7.0.0-alpha

Сообщение alexkam » 07.06.2012 15:41:09

Почему в TZQuery свойство Modified стало Readonly?
alexkam
постоялец
 
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 234

Рейтинг@Mail.ru
cron