Автоматическое обновление импортированного источника данных

Автор AlexWorkStream, 28 октября 2016, 11:52

0 Пользователи и 1 гость просматривают эту тему.

AlexWorkStream

Есть документ с импортированными в него (через ctrl+shift+F4) нескольких источников данных.
Задача состоит в том, чтобы эти данные автоматически обновлялись через определенный промежуток времени или при изменении самих баз данных.

rami

Цитата: AlexWorkStream от 28 октября 2016, 11:52
Есть документ с импортированными в него (через ctrl+shift+F4) нескольких источников данных.
Задача состоит в том, чтобы эти данные автоматически обновлялись через определенный промежуток времени или при изменении самих баз данных.
Автоматического обновления нет, только ручное, Данные —> Обновить диапазон

AlexWorkStream

Цитата: rami от 28 октября 2016, 10:09Автоматического обновления нет, только ручное, Данные —> Обновить диапазон
Это я знаю, но дошло до того, что данных слишком много в разных местах и обновлять вручную или переоткрывать документ- не вариант. Может есть способ макросами решить?

rami

Цитата: AlexWorkStream от 28 октября 2016, 10:14Может есть способ макросами решить?
Sub main   'Обновить данные из баз данных
dRange=ThisComponent.DatabaseRanges
For i=0 To dRange.Count-1
dRange.getByIndex(i).refresh
Next
End Sub

AlexWorkStream

Цитата: rami от 28 октября 2016, 10:29Sub main   'Обновить данные из баз данных
dRange=ThisComponent.DatabaseRanges
For i=0 To dRange.Count-1
dRange.getByIndex(i).refresh
Next
End Sub

Спасибо огромное! То, что нужно.

economist

Данный макрос можно дергать по таймеру каждый N минут.

Но лучше подумать и привязать к какому-либо нечастому, но "конкретному" событию. Тут уже думайте сами. 
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

rami

Цитата: economist от 28 октября 2016, 12:48
Данный макрос можно дергать по таймеру каждый N минут.

Но лучше подумать и привязать к какому-либо нечастому, но "конкретному" событию. Тут уже думайте сами.
Речь идёт об обновлении из разных баз, нужно время для подключения к каждой. Лучше запускать макрос вручную когда есть надобность, особенно на старом железе, а не удивляться :o почему "переклинило" комп ???

economist

Разные базы могут быть очень даже одинаковыми и быстрыми. Тут надо смотреть по месту.

Вот мне нужно было из 3-х баз данных (DBF, TXT, MySQL) собирать одну и гонять 30 тяжелых запросов по 5-10 раз в день. Быстрее всего оказалось создание IN-MEMORY баз SQLite и их аттачинг. Время выполнения запросов упало с 30 секунд до 0,3 секунд.

Кстати, в связи с этим отказался и от пула подключений.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...