Ошибка при получении данных из postgresql
Здравствуйте, пытаюсь получить данные из базы postgresql. Вылезает ошибка тему , но в моем случае ошибка не в строке подключения (пробовал небольшой запрос отправлять - он работает корректно). Проверял свой запрос на питоне - работает, данные приходят. Думал ошибка из-за пробела в названиях получаемых полей, убрал пробелы - не взлетело (select my_db.name_company "Название фирмы" заменил на "НазваниеФирмы", как пример). Подскажите, пожалуйста, что еще можно попробовать сделать?
Ошибка: по причине: Произошла исключительная ситуация (ADODB.Connection): Операция не допускается, если объект закрыт.
. Нашел тут на форуме По теме из базы знаний
- Интеграция 1С 8.3 с Power BI (Генератор представлений (View) в MS SQL/PostgreSQL по структуре базы данных 1С 8.3)
- Собираем данные для отчетов из +100 баз
- Перенос данных из Парус 10 в ЗГУ ред.3
- Перенос данных из Парус 10 в ЗУП ред.3
- Экспертный кейс. Недостаточно памяти для получения результата запроса: что это такое и как с этим бороться?
Найденные решения
(3) С with такая же ошибка вышла
(1)
(1)
Ошибка: по причине: Произошла исключительная ситуация (ADODB.Connection): Операция не допускается, если объект закрыт.
. Добавил запрос в соединение к основному запросу, заработало. |left join (sel ect
| to_number(split_part(rt.rp_id, ',', 2), 'L9G999g999.99') ""rp_id"",
| rt.id ""rt_id"",
| rt.partner_id ""rt_partner_id"",
| to_number(split_part(rt.value, ',', 2), 'L9G999g999.99') ""b_id""
|from
| rt_table rt
|where
| rt.name = 'Списания ДС'
|group by
| to_number(split_part(rt.rp_id, ',', 2), 'L9G999g999.99'),
| rt.id,
| rt.partner_id,
| to_number(split_part(rt.value, ',', 2), 'L9G999g999.99')) tempTable
|on .........
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) С with такая же ошибка вышла
(1)
(1)
Ошибка: по причине: Произошла исключительная ситуация (ADODB.Connection): Операция не допускается, если объект закрыт.
. Добавил запрос в соединение к основному запросу, заработало. |left join (sel ect
| to_number(split_part(rt.rp_id, ',', 2), 'L9G999g999.99') ""rp_id"",
| rt.id ""rt_id"",
| rt.partner_id ""rt_partner_id"",
| to_number(split_part(rt.value, ',', 2), 'L9G999g999.99') ""b_id""
|from
| rt_table rt
|where
| rt.name = 'Списания ДС'
|group by
| to_number(split_part(rt.rp_id, ',', 2), 'L9G999g999.99'),
| rt.id,
| rt.partner_id,
| to_number(split_part(rt.value, ',', 2), 'L9G999g999.99')) tempTable
|on .........
Показать
Нашел в чем проблема. У меня в начале запроса создается временная таблица, из-за нее приходит 0 в Fields.Count. Возможно ли это обойти(может неправильно написал текст запроса)? Или только переносить временную таблицу в соединения в запросе? Текст запроса прикладываю
НаборЗаписей = Новый ComObject("ADODB.RecordSet");
Команда = Новый COMОбъект("ADODB.Command");
Попытка
Команда.ActiveConnection = Connection;
Команда.CommandText = ПолучитьТекстЗапроса();
НаборЗаписей = Команда.Execute();
Исключение
Сообщить("Нет данных.");
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
ТаблицаДанных = Новый ТаблицаЗначений;
Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count - 1 Цикл
ИмяСтолбца = НаборЗаписей.Fields.Item(НомерСтолбца).Name;
ТаблицаДанных .Колонки.Добавить(ИмяСтолбца);
КонецЦикла;
Показать"Create temporary table temp_Table as(sel ect
| to_number(split_part(rt.rp_id, ',', 2), 'L9G999g999.99') ""rp_id"",
| rt.id ""rt_id"",
| rt.partner_id ""rt_partner_id"",
| to_number(split_part(rt.value, ',', 2), 'L9G999g999.99') ""b_id""
|from
| rt_table rt
|where
| rt.name = 'Списания ДС'
|group by
| to_number(split_part(rt.rp_id, ',', 2), 'L9G999g999.99'),
| rt.id,
| rt.partner_id,
| to_number(split_part(rt.value, ',', 2), 'L9G999g999.99'));
|select * fr om temp_Table";
Показать
(2) А обязательно прям "temporary table" создавать?
Может простым with обойтись?
https://onecompiler.com/postgresql/42jn5njjw
Может простым with обойтись?
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот