Страница 1 из 1

Динамическое подключение данных на основе других источников данных

Добавлено: 17 май 2022, 12:14
rvz
Ситуация следующая. Имеется источник данных, в свойствах которого указано "Connect on Start". Здесь всё работает, как и положено.

Имеется другой источник данных - SQLQuery2, в свойствах которого отключено "Connect on Start". Подключение осуществляется из кода в событиях:

Код: Выделить всё

SQLQuery2.Connect();
До этого момента всё продолжает работать.

Имеется ещё один источник данных OrdersSQL "на основе других источников данных", ссылающийся на SQLQuery2 и с отключенным "Connect on Start".
Код в событии:

Код: Выделить всё

SQLQuery2.Connect();
OrdersSQL.Connect();
OrdersSQL данными не заполняется.

Вопрос - чего не хватает?
Спасибо.

Re: Динамическое подключение данных на основе других источников данных

Добавлено: 17 май 2022, 13:46
Aleksey
Здравстуйте,

Попробуйте следующий код:

Код: Выделить всё

SQLQuery2.ConnectOnStart = true;
SQLQuery2.Connect();
OrdersSQL.ConnectOnStart = true;
OrdersSQL.Connect();
Спасибо.

Re: Динамическое подключение данных на основе других источников данных

Добавлено: 17 май 2022, 15:38
rvz
Aleksey писал(а): 17 май 2022, 13:46 Попробуйте следующий код:
Алексей, к сожалению, не получилось. То есть, результат тот же - SQLQuery2 наполняется данными, а OrdersSQL, созданный на его основе, остаётся пустым.

Re: Динамическое подключение данных на основе других источников данных

Добавлено: 19 май 2022, 00:19
Aleksey
Здравствуйте,

К сожалению, сложно что-то сказать без примера.

Спасибо.

Re: Динамическое подключение данных на основе других источников данных

Добавлено: 19 май 2022, 16:43
rvz
Aleksey писал(а): 19 май 2022, 00:19 К сожалению, сложно что-то сказать без примера.
Алексей, спасибо Вам за желание помочь!
На самом деле, пример и не нужен особо. Ещё раз вкратце.

SQLQuery2 - источник из MS SQL
OrdersSQL - источник, созданный на базе SQLQuery2 (группировка, фильтры и т.д).
Если для обоих источников включить "Connect on Start", то всё в порядке. Оба наполняются данными.
Отключаю у обоих "Connect on Start". Из события подключаю:

Код: Выделить всё

SQLQuery2.Connect();
OrdersSQL.Connect();
Результат: SQLQuery2 - данные присутствуют. OrdersSQL - пуст.
Я предполагаю, что что-то я упускаю по коду. Подключение прямого запроса SQL из кода срабатывает. А подключение "представления" на его основе - нет.
Может, нужно указать задержку? Или проверить сначала по событию, наполнился ли SQLQuery2 данными, прежде чем подключать OrdersSQL?
Запросы к базе выполняются синхронно? По идее да, тем не менее, чего-то не хватает. А чего конкретно - непонятно.

Re: Динамическое подключение данных на основе других источников данных

Добавлено: 21 май 2022, 12:03
Aleksey
Здравствуйте,

Уточните что значит - "OrdersSQL - источник, созданный на базе SQLQuery2 (группировка, фильтры и т.д)."? Вы имеете в виду "Data from Other Data Source" источник?

Спасибо.

Re: Динамическое подключение данных на основе других источников данных

Добавлено: 21 май 2022, 18:14
rvz
Aleksey писал(а): 21 май 2022, 12:03 Вы имеете в виду "Data from Other Data Source" источник?

Спасибо.
Да, совершенно верно!

Re: Динамическое подключение данных на основе других источников данных

Добавлено: 24 май 2022, 23:40
Aleksey
Здравствуйте,

Надо дополнительное время для анализа проблемы.

Спасибо.