Страница 1 из 3
Получить текущее подключение с базой
Добавлено: 23 окт 2017, 12:17
t0pdevice
Идёт выполнение отчёта на Stimulsoft. Допустим я хочу его прервать и закрыть принудительно подключение с базой.
Каким образом можно получить текущее выполняемое подключение отчётом и выполнить Close()?
В отчёт добавлено подключение типа StiPostgreSQLDatabase.
Re: Получить текущее подключение с базой
Добавлено: 25 окт 2017, 15:54
Aleksey
Здравствуйте,
Вы можете получить подключение из словаря:
((StiPostgreSQLDatabase)report.Dictionary.Databases["ConnectionName"])
Спасибо.
Re: Получить текущее подключение с базой
Добавлено: 26 окт 2017, 17:40
t0pdevice
Это понятно. Но у StiPostgreSQLDatabase нет метода Close(), у нас используется Npgsql, как мне его преобразовать к NpgsqlConnection?
Re: Получить текущее подключение с базой
Добавлено: 02 ноя 2017, 09:23
Aleksey
Здравствуйте,
Извините за задержку с ответом.
Необходимо некоторое время для анализа проблемы.
Спасибо.
Re: Получить текущее подключение с базой
Добавлено: 07 ноя 2017, 11:44
t0pdevice
Я объясню для чего. У нас Stimulsoft отчёты строятся в отдельных потоках, следовательно на каждый вызов отчёта создается соединение с базой. Также в клиенте есть таймер построения отчёта и возможность отменить построение, есть отчёты которые формируются больше 10 минут. Вот после ручной отмены построения отчёта, соединение на базе с запросом остается висеть.
Отменяется отчёт таким кодом:
Re: Получить текущее подключение с базой
Добавлено: 20 ноя 2017, 09:37
t0pdevice
Нет такой возможности?
Re: Получить текущее подключение с базой
Добавлено: 20 ноя 2017, 12:12
Aleksey
Здравствуйте,
К сожалению, нет. Не получится получить текущее подключение.
Спасибо.
Re: Получить текущее подключение с базой
Добавлено: 02 фев 2018, 13:29
t0pdevice
Можно сделать тогда, чтобы Dispose() закрывал все соединения с базой, которые активны в данный момент (используются в отчёте)?
Это очень необходимо. Проблема в том, что если идёт Render() и выполняется долгий запрос, то Dispose() его не отменяет.
Re: Получить текущее подключение с базой
Добавлено: 02 фев 2018, 16:18
t0pdevice
Либо нужна возможность получения соединения, чтобы потом с ним манипулировать.
Re: Получить текущее подключение с базой
Добавлено: 06 фев 2018, 02:11
Aleksey
Здравствуйте,
Пожалуйста, попробуйте попробовать его взять из report.DataStore
Также как вариант, вы можете можете задать Application Name="Key" в строке подключения и затем закрывать его в самой базе.
Спасибо.