![]() |
![]() |
![]() |
|
Обмен данными с внешней (не 1с) базой PostgreSQL. | ☑ | ||
---|---|---|---|---|
0
fyntom
02.04.09
✎
08:45
|
Всем привет.
Есть внешняя база PostgreSQL содержащая некоторые данные, которых нет в 1с 8.1 Бухгалтерия, так же данных которые есть в бухгалтерии нет в этой базе. Необходимо обеспечить обмен данными по событиям происходящим в 1с. Если происходит добавление платежа в 1С то информация о платеже должа быть передана в PostgreSQL базу. На текущий момент пытаюсь хотябы соединится с PostgreSQL. Процедура СоединитсяНажатие(Элемент) // Вставить содержимое обработчика. // СтрокаСоединения="Provider=PostgreSQL OLE DB Provider;Data Source='"+ЭлементыФормы.пвСервер.Значение+"';UID='"+ЭлементыФормы.пвЛогин.Значение+"';PWD='"+ЭлементыФормы.пвПароль.Значение+"';Initial Catalog='"+ЭлементыФормы.пвБазаДанных.Значение+"';DefaultDatabase='ahml'";//Integrated Security=SSPI;"; // Соединение=Новый ComObject("ADODB.Connection"); // Соединение.ConnectionString=СтрокаСоединения; // // Попытка // Соединение.Open(); // Исключение // Сообщить(ОписаниеОшибки()); // Возврат; //КонецПопытки; СтрокаСоединения = ("Provider=PostgreSQL OLE DB Provider;Driver={PostgreSQL Unicode}; Deleted=No; Data Source = ") + ЭлементыФормы.пвСервер.Значение +(";UID=") + ЭлементыФормы.пвЛогин.Значение + ("; PWD=") + ЭлементыФормы.пвПароль.Значение + (";"); Подключение = Новый ComObject("ADODB.Connection"); Подключение.ConnectionString=СтрокаСоединения; // Подключение.Mode = 3; Попытка Подключение.Open(СтрокаСоединения); Состояние ("Подключение к серверу SQL..."); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; //СтрокаСоединения="Driver={PostgreSQL Unicode};Server='"+ЭлементыФормы.пвСервер.Значение+"';Port=5432;Database='"+ЭлементыФормы.пвБазаДанных.Значение+"';Uid='"+ЭлементыФормы.пвЛогин.Значение+"';Pwd='"+ЭлементыФормы.пвПароль.Значение+"';";//Integrated Security=SSPI;"; //Соединение=Новый ComObject("ADODB.Connection"); //Соединение.ConnectionString=СтрокаСоединения; // //Попытка // Соединение.Open(); //Исключение // Сообщить(ОписаниеОшибки()); // Возврат; //КонецПопытки; Записи=Новый ComObject("ADODB.RecordSet"); Записи.ActiveConnection=Подключение; //Записи.Open("текст прямого запроса"); КонецПроцедуры Не при одном из указанных выше способов соединение не было установлено. Пишет следующее: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанного поставщика. Вероятно, он установлен неправильно. |
|||
1
ТелепатБот
гуру
02.04.09
✎
08:45
|
||||
2
fyntom
02.04.09
✎
08:47
|
Причем ODBC драйвер установлен корректно и настроен. Пишет что соединение устанавливается если тест нажимаешь
|
|||
3
ДенисЧ
02.04.09
✎
08:49
|
установи правильно драйвера...
|
|||
4
ДенисЧ
02.04.09
✎
08:50
|
кстати, есть такой рулёзный сайтик http://www.connectionstrings.com/
|
|||
5
fyntom
02.04.09
✎
08:52
|
Стоит вот этот драйвер
http://wwwmaster.postgresql.org/download/mirrors-ftp/odbc/versions/msi/psqlodbc_08_03_0400.zip Настроен и поставлен |
|||
6
fyntom
02.04.09
✎
08:54
|
(4) с этого сайт и брал строку.
Пробовал вот эту Provider=PostgreSQL OLE DB Provider;Data Source=myServerAddress;location=myDataBase;User ID=myUsername;password=myPassword;timeout=1000; и вот эту Driver={PostgreSQL UNICODE};Server=IP address;Port=5432;Database=myDataBase;Uid=myUsername;Pwd=myPassword; Не в том не в другом случае соединение не устанавливается |
|||
7
fyntom
02.04.09
✎
08:58
|
При использовании вот такой строки:
СтрокаСоединения="Driver={PostgreSQL};Server='"+ЭлементыФормы.пвСервер.Значение+"';Port=5432;Database='"+ЭлементыФормы.пвБазаДанных.Значение+"';Uid='"+ЭлементыФормы.пвЛогин.Значение+"';Pwd='"+ЭлементыФормы.пвПароль.Значение+"';";//Integrated Security=SSPI;"; Соединение=Новый ComObject("ADODB.Connection"); Соединение.ConnectionString=СтрокаСоединения; Попытка Соединение.Open(); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; {Форма.Форма(47)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию |
|||
8
ДенисЧ
02.04.09
✎
08:59
|
ну что я могу сказать...
Нефиг пользоваться студенческой под(де)лкой (с) ЯЛюбимый. |
|||
9
fyntom
02.04.09
✎
09:03
|
А при использования вот такой строки
СтрокаСоединения="Driver={PostgreSQL Unicode};Server='"+ЭлементыФормы.пвСервер.Значение+"';Port=5432;Database='"+ЭлементыФормы.пвБазаДанных.Значение+"';Uid='"+ЭлементыФормы.пвЛогин.Значение+"';Pwd='"+ЭлементыФормы.пвПароль.Значение+"';";//Integrated Security=SSPI;"; Соединение=Новый ComObject("ADODB.Connection"); Соединение.ConnectionString=СтрокаСоединения; Попытка Соединение.Open(); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; {Форма.Форма(47)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): Could not connect to the server; Could not resolve hostname В качестве сервера стоит IP адрес. Который точно пингуется. |
|||
10
fyntom
02.04.09
✎
09:36
|
Поделитесь кусочком кода. Как это можно реализовать. (UP)
|
|||
11
fyntom
02.04.09
✎
10:01
|
УРА!!! Получилось. Все дело было в кавычках в строке соединения. Их использовать не нужно.
Заработала вот эта строка: СтрокаСоединения="Driver={PostgreSQL Unicode};Server="+ЭлементыФормы.пвСервер.Значение+";Port=5432;Database="+ЭлементыФормы.пвБазаДанных.Значение+";Uid="+ЭлементыФормы.пвЛогин.Значение+";Pwd="+ЭлементыФормы.пвПароль.Значение+";";//Integrated Security=SSPI;"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |