Есть функция, возвращающая коннект к субд
В Connection.ConnectionString передается
При попытке подключиться к PG выдает ошибку
Собственно, куда копать?
Функция НовоеСоединениеССУБД(ДанныеДляПодключения) Экспорт
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): Недопустимый атрибут строки соединения
Connection.Open();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Недопустимый атрибут строки соединения
Собственно, куда копать?
По теме из базы знаний
- Опыт обслуживания базы 1С в PostgreSQL.
- 1С Батл: PostgreSQL 9,10 vs MS SQL 2016
- DaJet Studio: расширенный язык запросов 1С, очереди сообщений и web сервисы
- Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика
- Экспертный кейс. Миграция высоконагруженных решений 1С на Linux/PostgreSQL без потерь производительности
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если ДанныеДляПодключения.ТипСУБД = "MSSQL" Тогда
ИначеЕсли ДанныеДляПодключения.ТипСУБД = "PGSQL" Тогда
а почему не сделать отдельно подключение для MSSQL и PGSQL ...
условия в соединении - что будет, если две субд присутствуют ?
ИначеЕсли ДанныеДляПодключения.ТипСУБД = "PGSQL" Тогда
а почему не сделать отдельно подключение для MSSQL и PGSQL ...
условия в соединении - что будет, если две субд присутствуют ?
(2)
Теперь другая проблема
То, что odbc проходит коннект тест, еще не значит, что сервер принимает по tcp/ip?
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?
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?
Прикрепленные файлы: