Здравствуйте,
Не получается установить timezone для отчета в сессию БД.
Перед отправкой sql в БД Postgresql нужно выполнить команду:
set timezone = 'Asia/Vladivostok';
Если записать эту команду в queryString:
set timezone = 'Asia/Vladivostok';
select col1, col2, from table;
То sql скрипт не отрабатывает.
Попытка записать timezone в connectionString тоже не увенчалась успехом.
Подскажите, есть ли функциональность на установление timezone для сессии БД.
Спасибо.
С уважением,
Алина Голубь
Установка timezone для Postgresql
Re: Установка timezone для Postgresql
Здравствуйте,
Опишите проблему более детально. Как запускаете, версия, и т.д.
Спасибо.
Опишите проблему более детально. Как запускаете, версия, и т.д.
Спасибо.
- Вложения
-
- Screenshot 2025-02-25 075014.png (466.49 КБ) 4837 просмотров
Re: Установка timezone для Postgresql
Здравствуйте,
Да, если генерить отчет через Stimulsoft Designer, то все работает.
Если генерить отчет через код, то отчет валится.
Пример кода:
На версии 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" отчет не падает в ошибку, но данных в отчете нет (таблица с данными пустая).
Да, если генерить отчет через 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);
});
Ошибка:
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" отчет не падает в ошибку, но данных в отчете нет (таблица с данными пустая).
Re: Установка timezone для Postgresql
Здравствуйте,
Вышлите пример, который воспроизводит проблему, для анализа.
Спасибо.
Вышлите пример, который воспроизводит проблему, для анализа.
Спасибо.
Re: Установка timezone для Postgresql
Здравствуйте,
Во вложении mrt-файл и javascript.
С уважением,
Алина Голубь
Во вложении mrt-файл и javascript.
С уважением,
Алина Голубь
- Вложения
-
- generateReportTimeZone.js
- (808 байт) 47 скачиваний
-
- ReportTimeZone.mrt
- (7.38 КБ) 44 скачивания
Re: Установка timezone для Postgresql
Здравствуйте,
Нужно дополнительное время для анализа проблемы.
Спасибо.
Нужно дополнительное время для анализа проблемы.
Спасибо.