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

Выполнение запросов при построении до заполнения параметров

Добавлено: 18 авг 2016, 17:27
t0pdevice
Добрый день!
Методом анализа было выявлено, что при построении отчёта он зачем-то выполняет запрос к базе до отображения формы. В самом запросе используется значения DateTimePicker. Сначала выполняется запрос со стандартными значениями DateTimePicker, затем после того, как появляется форма и пользователь указывает, к примеру, период и нажимает ОК, запрос снова выполняется уже с указанными датами.
Если запросы сложные, то это влияет на время отображения формы пользователю.

Это так и должно быть? И есть ли настройка для отключения этого?

Re: Выполнение запросов при построении до заполнения парамет

Добавлено: 19 авг 2016, 23:01
Jan
Здравствуйте.

В данном случае можно поступить так:

1. Выделите источник данных с параметром в словаре данных и из контекстного меню вызовите Properties;
2. Установите свойство ConnectOnStart в false;
3. В событии OnClick кнопки напишите код:

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

DataSource1.Connect();
Дайте знать если будут дополнительные вопросы!

Спасибо.

Re: Выполнение запросов при построении до заполнения парамет

Добавлено: 12 мар 2018, 12:15
t0pdevice
Возвращаюсь к этому вопросу.

На DataSource - data стоит ConnectOnStart = false, при нажатии на форме "Формировать" делается data.Connect(), но данные на странице не отображаются. При ConnectOnStart = true все отрабатывает корректно.
Отчёт во вложении, используется БД PostgreSQL 9.5 и pgBouncer.

Re: Выполнение запросов при построении до заполнения парамет

Добавлено: 13 мар 2018, 01:24
Aleksey
Здравствуйте,

В данном случае, перед вызовом метода Connect, необходимо задать ConnectOnStart:
data.ConnectOnStart = true;
data.Connect();

Спасибо.