24.05.2010, 11:31 | #1 |
Участник
|
JoinSource vs executeQuery
Здраствуйте ,
Я заметил , что когда датасоурцы есть соединины по joinSource ( нпр. SalesTable и SalesLine ) то обновление данных немножко тормозит . А вот по executeQuery ( нпр. поставит в датасоурце SalesTable в active() методе SalesLine_ds.executeQuery() ) действует поскорее ... Такой вопрос - можно поменять JoinSource на executeQuery ? Какие недостатки есть если отказаться от JoinSource ? Спасибо за советы ! С уважением , Римантас |
|
24.05.2010, 11:48 | #2 |
Moderator
|
Честно говоря, я не очень понял, о какой замене идет речь, но в подобных случаях я прибегаю к универсальному алгоритму:
|
|
24.05.2010, 12:02 | #3 |
Участник
|
Насколько я понял вопрос - то задержка возникает при навигации по главной таблице
Если использовать обработчик события active(), то возникнет проблема производительности при попытке быстрого перемещения по строкам главной таблицы Еще см. LinkType |
|
24.05.2010, 12:16 | #4 |
Участник
|
Цитата:
|
|
24.05.2010, 12:33 | #5 |
Участник
|
Свойство датасорса salesLine: LinkType = Delayed - дает задержку обновления строк. Это сделано специально, чтобы не вызывался excecuteQuery, когда вы быстро перходите с заказа на заказ.
Поставьте LinkType = Active, тогда executeQuery будет вызываться сразу |
|
24.05.2010, 12:35 | #6 |
Участник
|
прочитайте про linkType если не будет задержки, а пользователь несколько раз нажмет, например, стрелку вниз, то будет больше ненужных запросов к базе данных.
|
|
24.05.2010, 12:56 | #7 |
Участник
|
Цитата:
Сообщение от belugin
прочитайте про linkType если не будет задержки, а пользователь несколько раз нажмет, например, стрелку вниз, то будет больше ненужных запросов к базе данных.
|
|
25.05.2010, 18:24 | #8 |
Участник
|
Может вы в методе active() перекрыли super() - потому и работает быстрее ?
Последний раз редактировалось Волчара; 25.05.2010 в 18:25. Причина: с тегом цитатки ошибся |
|
Теги |
active, executequery, как правильно |
|
|