Имя: Пароль:
1C
 
1С и Postgres - Недопустимый атрибут строки соединения
0 Mary01
 
05.03.23
10:28
Всем добрый день.
Как понять какой атрибут является недопустимым? Есть база на postgres сервере (не 1С), надо взять из нее данные. Пишу подключение:
//
Сервер = "srv1";
База = "b1c";
Пользователь = "adm";
Пароль = "111";
Таймаут = 60;
Порт = 5432;
DataSource = "PostgreSQL35W";
ConnectString="Provider=SQLOLEDB;Data Source="+Cервер+";DatabaseName="+База+";Initial Catalog="+База+";UID="+Пользователь+";PWD="+Пароль;
    Соединение=Новый COMОбъект("ADODB.Connection");
    Соединение.ConnectionTimeOut=Таймаут;
    Попытка              
        Соединение.Open(ConnectString);     
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Недопустимый атрибут строки соединения
1 rphosts
 
05.03.23
10:49
драйвер юникодный?
2 Mary01
 
05.03.23
11:56
(1) доступ на сервер пока не дали, только завтра смогу проверить. какой параметр в строке меняется исходя из того, юникодный драйвер или нет?
3 Djelf
 
05.03.23
11:59
(0) Хм, база postgresql, а провайдер mssql? Интересно...
Посмотри строки подключения: https://www.connectionstrings.com/postgresql/
4 Mary01
 
05.03.23
13:20
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.Provider          = "MSDASQL.1";
и 3 варианта подключения:
ConnectionString = "Driver={PostgreSQL UNICODE};Server="+Сервер+";Port=5432;Database="+База+";Uid="+Пользователь+";Pwd="+Пароль;
ConnectionString = "Driver={PostgreSQL ANSI};Server="+Сервер+";Port=5432;Database="+База+";Uid="+Пользователь+";Pwd="+Пароль + "sslmode=require";
ConnectionString = "Driver={PostgreSQL};Server="+Сервер+";Port=5432;Database="+База+";Uid="+Пользователь+";Pwd="+Пароль;
при каждом варианте подключения - ошибка:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
5 Mary01
 
05.03.23
14:28
Сервер, на котором развернута база 1С, и сервер postgres - это два разных сервера. Правильно ли я понимаю, что источник данных ODBC должен быть создан на обоих серверах?
6 Djelf
 
05.03.23
14:34
(5) Драйвер должен быть установлен на той машине с которой обращаешься к postgresql.
Вот отсюда его качать надо https://odbc.postgresql.org
Битность драйвера должна соответствовать клиенту из когорого обращаешься к серверу, можно и х32 и х64 поставить одновременно, хуже не будет.
7 МихаилМ
 
06.03.23
01:27
8 Philix
 
06.03.23
13:20
(5) Если база развернута в клиент-серверном варианте, то нужно четко понимать кто подключается к внешней базе (клиент или сервер). Источник данных ODBC должен быть создан на том сервере или клиенте, который подключается. + postgresql должен принимать оттуда подключения (курить pg_hba.conf).