Установка timezone для Postgresql

Обсуждение Stimulsoft Reports.JS
Ответить
angolub
Сообщения: 43
Зарегистрирован: 11 май 2018, 16:51

Установка timezone для Postgresql

Сообщение angolub »

Здравствуйте,

Не получается установить timezone для отчета в сессию БД.
Перед отправкой sql в БД Postgresql нужно выполнить команду:
set timezone = 'Asia/Vladivostok';

Если записать эту команду в queryString:
set timezone = 'Asia/Vladivostok';
select col1, col2, from table;

То sql скрипт не отрабатывает.
Попытка записать timezone в connectionString тоже не увенчалась успехом.

Подскажите, есть ли функциональность на установление timezone для сессии БД.

Спасибо.

С уважением,
Алина Голубь
Aleksey
Сообщения: 2991
Зарегистрирован: 22 апр 2010, 06:57

Re: Установка timezone для Postgresql

Сообщение Aleksey »

Здравствуйте,

Опишите проблему более детально. Как запускаете, версия, и т.д.

Спасибо.
Вложения
Screenshot 2025-02-25 075014.png
Screenshot 2025-02-25 075014.png (466.49 КБ) 4837 просмотров
angolub
Сообщения: 43
Зарегистрирован: 11 май 2018, 16:51

Re: Установка timezone для Postgresql

Сообщение angolub »

Здравствуйте,

Да, если генерить отчет через Stimulsoft Designer, то все работает.
Если генерить отчет через код, то отчет валится.

Пример кода:

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

const report = new Stimulsoft.Report.StiReport();
const reportDs = report.dataSources.getByName('access_eventlog');
reportDs.sqlCommand = "set timezone = 'Asia/Vladivostok'; select NOW(), * from public.orders"; //sql с установкой timezone

let settings = new Stimulsoft.Report.Export.StiExcel2007ExportSettings();
let service = new Stimulsoft.Report.Export.StiExcel2007ExportService();
let stream = new Stimulsoft.System.IO.MemoryStream();

await new Promise((resolve, reject) => {
    report.renderAsync(function () {
        try {
		service.exportToAsync(function () {
                try {
                    fs.writeFileSync("file.xlsx", Buffer.from(stream.toArray()));
                    resolve();
                }
                catch (err) {
                    reject(err);
                }
            }, report, stream, settings);
        }
        catch (err) {
            reject(err);
        }
    }, false);
 });
На версии stimulsoft-reports-js "2023.3.4" валится на строчке report.renderAsync.

Ошибка:
Stack: TypeError: UNCAUGHT EXCEPTION: Cannot read property 'length' of undefined
at onQuery (C:\Project\psim\core\node_modules\stimulsoft-data-adapter\PostgreSQLAdapter.js:140:32)
at Query.<anonymous> (C:\Project\psim\core\node_modules\stimulsoft-data-adapter\PostgreSQLAdapter.js:34:21)
at Query.handleReadyForQuery (C:\Project\psim\core\node_modules\pg\lib\query.js:138:12)
at Client._handleReadyForQuery (C:\Project\psim\core\node_modules\pg\lib\client.js:290:19)
at Connection.emit (events.js:400:28)
at C:\Project\psim\core\node_modules\pg\lib\connection.js:115:12
at Parser.parse (C:\Project\psim\core\node_modules\pg-protocol\dist\parser.js:40:17)
at Socket.<anonymous> (C:\Project\psim\core\node_modules\pg-protocol\dist\index.js:10:42)
at Socket.emit (events.js:400:28)
at addChunk (internal/streams/readable.js:290:12)

На версии stimulsoft-reports-js "2025.1.5" отчет не падает в ошибку, но данных в отчете нет (таблица с данными пустая).
Aleksey
Сообщения: 2991
Зарегистрирован: 22 апр 2010, 06:57

Re: Установка timezone для Postgresql

Сообщение Aleksey »

Здравствуйте,

Вышлите пример, который воспроизводит проблему, для анализа.

Спасибо.
angolub
Сообщения: 43
Зарегистрирован: 11 май 2018, 16:51

Re: Установка timezone для Postgresql

Сообщение angolub »

Здравствуйте,

Во вложении mrt-файл и javascript.

С уважением,
Алина Голубь
Вложения
generateReportTimeZone.js
(808 байт) 47 скачиваний
ReportTimeZone.mrt
(7.38 КБ) 44 скачивания
Aleksey
Сообщения: 2991
Зарегистрирован: 22 апр 2010, 06:57

Re: Установка timezone для Postgresql

Сообщение Aleksey »

Здравствуйте,

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

Спасибо.
Ответить