Запрос из 1С в postgresql

1. mrChOP93 96 10.08.21 08:25 Сейчас в теме
Есть функция, возвращающая коннект к субд

Функция НовоеСоединениеССУБД(ДанныеДляПодключения) Экспорт 
	
	Connection = Новый COMОбъект("ADODB.Connection");
	Connection.Provider          = "SQLOLEDB";
	Connection.ConnectionTimeOut = 15;
	Connection.CommandTimeout    = 220;
	
	Если ДанныеДляПодключения.ТипСУБД = "MSSQL" Тогда
		
		Connection.ConnectionString = "Data Source=" + ДанныеДляПодключения.АдресСервера + ";Initial Catalog=" 
								+ ДанныеДляПодключения.ИмяБД + ";Persist Security Info=True;User ID=" + ДанныеДляПодключения.Логин +
								";Password=" + ДанныеДляПодключения.Пароль;
								
	ИначеЕсли ДанныеДляПодключения.ТипСУБД = "PGSQL" Тогда
		
		Connection.ConnectionString = "DRIVER={PostgreSQL Unicode};Data Source=" + ДанныеДляПодключения.DataSource + ";SERVER=" +
							    ДанныеДляПодключения.АдресСервера + ";PORT=" + ДанныеДляПодключения.Порт+";DATABASE=" + ДанныеДляПодключения.ИмяБД +
							   ";UID=" + ДанныеДляПодключения.Логин + ";PWD=" + ДанныеДляПодключения.Пароль+";STMT=" + "utf8";
							   
	КонецЕсли;
	
	Попытка
		
		Connection.Open();
		
	Исключение
		
		ЗаписьЖурналаРегистрации(НСтр("ru = 'Соединение с SQL базой " + ДанныеДляПодключения.ИмяБД + "'"), УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки());
		Connection = Неопределено;
		
	КонецПопытки;
	Возврат Connection;
	
КонецФункции
Показать


В Connection.ConnectionString передается
DRIVER={PostgreSQL Unicode};Data Source=PostgreSQL35W;SERVER=172.20.3.252;PORT=50432;DATABASE=testdb;UID=test;PWD=12345678;STMT=utf8


При попытке подключиться к PG выдает ошибку

Ошибка при вызове метода контекста (Open)
Connection.Open();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Недопустимый атрибут строки соединения


Собственно, куда копать?
По теме из базы знаний
Найденные решения
2. vv2 10.08.21 08:29 Сейчас в теме
У вас просто не верный провайдер : Microsoft OLE DB Provider for SQL Server.
Выберите провайдера для PGSQL
mrChOP93; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vv2 10.08.21 08:29 Сейчас в теме
У вас просто не верный провайдер : Microsoft OLE DB Provider for SQL Server.
Выберите провайдера для PGSQL
mrChOP93; +1 Ответить
3. XAKEP 10.08.21 08:35 Сейчас в теме
Если ДанныеДляПодключения.ТипСУБД = "MSSQL" Тогда

ИначеЕсли ДанныеДляПодключения.ТипСУБД = "PGSQL" Тогда


а почему не сделать отдельно подключение для MSSQL и PGSQL ...

условия в соединении - что будет, если две субд присутствуют ?
4. mrChOP93 96 10.08.21 08:43 Сейчас в теме
(2)
Connection.Provider          = "MSDASQL.1";

Теперь другая проблема
Ошибка при вызове метода контекста (Open)
Connection.Open();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): could not connect to server: Connection timed out (0x0000274C/10060)
Is the server running on host "172.20.3.252" and accepting
TCP/IP connections on port 50432?

То, что odbc проходит коннект тест, еще не значит, что сервер принимает по tcp/ip?
Прикрепленные файлы:
5. spacecraft 10.08.21 08:47 Сейчас в теме
(4) на скрине порт 5432, а в коде 1С пытаетесь подключиться по 50432 порту.
mrChOP93; +1 Ответить
8. mrChOP93 96 10.08.21 08:52 Сейчас в теме
(5) А, точно, совсем взгляд замылился, спасибо!
6. mrChOP93 96 10.08.21 08:48 Сейчас в теме
(3) Не много не понял проблемы. Если мне надо сделать коннект к мс, то я в параметре передам "MSSQL", если пг, то "PGSQL".
Можно более развернуто описать возможные накладки?
7. XAKEP 10.08.21 08:50 Сейчас в теме
username test

может признаетесь - где вы - где СУБД - и что вообще вы хотите сделать ?

в одной локальной,удаленно .

пользователю желательно права иметь
плюс права доступа установить

в нужном фале hba.conf
9. mrChOP93 96 10.08.21 08:54 Сейчас в теме
(7)
плюс права доступа установить


1С и пг на разных серверах в локалке, сейчас просто отлаживаю соединение, запросы. А в будущем планируется синхронизация с самописной проходной. Проблему решил, коннект и запросы заработали.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот