Имя: Пароль:
1C
1С v8
1c 8.1 com-ое соединение с "левой" базой.
0 Homer
 
14.10.15
13:29
Функция УстановитьСоединение()
    
    Попытка
        postgreSQL = Новый COMОБъект("ADODB.Connection");
    Исключение
        Возврат 1;
    КонецПопытки;
    
    Driver = "Driver={PostgreSQL ANSI(x64)}";
    //Driver = "Driver={PostgreSQL Unicode(x64)}";
    
    Если ЭлементыФормы.ФлагПорта.Значение = Истина Тогда
        Port = "Port=5432";
    Иначе
        Port = "Port=" + СокрЛП(ЭлементыФормы.Port.Значение);
    КонецЕсли;
    
    ConnectionString = "PROVIDER=MSDASQL;" + Driver + ";" + "Server=" + СокрЛП(ЭлементыФормы.Server.Значение) + ";" + Port + ";" + "Database=" +
    СокрЛП(ЭлементыФормы.Database.Значение) + ";" + "Uid=" + СокрЛП(ЭлементыФормы.User.Значение) + ";" + "Pwd=" + СокрЛП(ЭлементыФормы.Password.Значение) + ";";
    
    Попытка
        postgreSQL.Open(ConnectionString);
        Возврат 0;
    Исключение
        Возврат 2;
    КонецПопытки;
        
КонецФункции

На строке postgreSQL.Open(ConnectionString); уходит в ошибку.
Сама ошибка "{(1)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию"

На серваке куда подключаемся стоит драйвер ODBS.
Но когда от пользователя создаем Пользовательский DSN и тестируем то выходит ошибка.( не знаю правда так и должно или нет)

Все это дело когда то работало. С PostgreSQL не работал.
1 Franchiser
 
гуру
14.10.15
13:44
Сервер x64?
2 Franchiser
 
гуру
14.10.15
13:47
Если да, то там 2 оснастки:
C:\WINDOWS\system32\odbcad32.exe
C:\WINDOWS\SysWOW64\odbcad32.exe
3 Homer
 
14.10.15
13:47
операционка да
4 Homer
 
14.10.15
13:49
а вот оснастка походу одна. сейчас гляну
5 Homer
 
14.10.15
13:51
C:\Windows\SysWOW64\odbcad32.exe
C:\WINDOWS\system32\odbcad32.exe
по обоим адресам открывается одна оснаска
6 Franchiser
 
гуру
14.10.15
13:53
Почему ты решил что открывается одна и та же? настройки там не связаны между собой: DSN разный может быть.
7 Homer
 
14.10.15
13:56
а пользовательские DSN один и тот же (пробное соединение с базой я создовал). вот и подумал.
8 Homer
 
14.10.15
13:57
драйвера разные правда. так что разные.
9 Franchiser
 
гуру
14.10.15
13:58
DSN прописывал в оснастке или в строке подключения?
10 Homer
 
14.10.15
14:00
а как посмотреть какой postgreSQL стоит x64 или x32
(9) не понял. как глянуть.
11 Franchiser
 
гуру
14.10.15
14:02
Ну в оснастке закладка "Пользовательские DSN", "Системный DSN". Еще можно в строке подключения указывать, но вроде это не обязательно. postgreSQL не пользуюсь, не знаю. Знаю что может в зависимости от битности установки подхватываться та или иная оснастка.
12 Franchiser
 
гуру
14.10.15
14:09
Проверь есть ли в списке этот самый драйвер "PostgreSQL ANSI(x64)" и  в какой из оснасток. Судя по названию стоит x64 PostgreSQL.
13 Homer
 
14.10.15
14:22
(12) стоит в C:\WINDOWS\SysWOW64\odbcad32.exe.
(11) Пользовательские DSN", "Системный DSN". Там создавал свои. Но при нажатии на ТЕСТ пишет ошибку.
14 Franchiser
 
гуру
14.10.15
14:42
Нужно разбираться почему ошибка. Как то не так создали dsn
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший