Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: 1c7.7 обмен данными c Oracle

v7: 1c7.7 обмен данными  c Oracle
Я
   Ан_Дрей
 
27.01.19 - 08:48
Доброго времени суток.
Как из 1С7.7 помощью ADOBE приконнектится к серверу ORACLE?
Дано:
сервер moon (m1111).  
MOON =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 123.4.56.78)(PORT = 1111))
)
(CONNECT_DATA = (SID = PRD))
)

Подключение ко всем серверам осуществлять пользователем XXXX с паролем xxxx.

После подключения необходимо инициализировать окружение вызовом функции:
xxeq_interface.login(user_name, password) RETURN numeric
где user_name, password - имя пользователя и пароль входа в OEBS.
 
 
   ДенисЧ
 
1 - 27.01.19 - 09:08
А в чём именно проблема?
Вызвать функцию? Или создать подключение?
   Ан_Дрей
 
2 - 27.01.19 - 12:30
создать подключение.
попробовал так:

Соединение = СоздатьОбъект("ADODB.Connection");
ConnectionString = "driver={SQL Server}; server=
  |(DESCRIPTION =
  |  (ADDRESS_LIST =
  |    (ADDRESS = (PROTOCOL = TCP)(HOST = 123.4.56.78)(PORT = 1111))
  |  )
  |  (CONNECT_DATA = (SID = PRD))
  |)
  |; uid=XXXX; Pwd=xxxx; Database =moon"; 
 Соединение.Open(ConnectionString);

не соединяется
   ДенисЧ
 
3 - 27.01.19 - 12:31
   Ан_Дрей
 
4 - 27.01.19 - 12:34
так не пробовал.
а как через 77 оформить?
   Ан_Дрей
 
5 - 27.01.19 - 12:37
ps все реальные данные\адреса заменены
   rsv
 
6 - 27.01.19 - 12:37
(0) создайте файлик на машине подключения с расширением UDL . Откройте его , интерактивно настройте подключение  и нажмите кнопку тест. Это очевидней и наглядней. Путь к файлику прошишите в строке ADO
   ДенисЧ
 
7 - 27.01.19 - 12:40
(4) Ну сформируй строку подключения к серверу, как нарисовано по ссылке. И подключайся.
Ничего хитрого там нет.
Максимум - повозиться придётся с 32/64 бит и кодировкой.
   Ан_Дрей
 
8 - 27.01.19 - 12:40
спасибо. буду пробовать.
   Ан_Дрей
 
9 - 27.01.19 - 12:42
(7) а где  
(ADDRESS = (PROTOCOL = TCP)(HOST = 123.4.56.78)(PORT = 1111))
прописывать?
   ДенисЧ
 
10 - 27.01.19 - 12:44
(9) В TNSnames.ora
 
 Рекламное место пустует
   ДенисЧ
 
11 - 27.01.19 - 12:44
   trdm
 
12 - 27.01.19 - 16:26
(11) кто на том форуме хозяйничает?
у него капча поехала, не зарегиться не восстановить пароль.
   trdm
 
13 - 27.01.19 - 16:32
+(12) рукожопству нет пределов :)
https://prnt.sc/mct9fe
   ДенисЧ
 
14 - 27.01.19 - 17:26
(11) Не знаю,  я по ссылке из гугля туда прошёд
   Svetka
 
15 - 28.01.19 - 08:44
// ---Прописать в файле tnsnames.ora

GP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 123.4.56.78)(PORT = 1111))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = GP)
    )
  )



//---функция подключения в 1С

Перем ТаймАутКоманды,ТаймАутСоединения, Соединение, Команда, Результат;

Функция ОткрытиеСоединения()     

    Соединение    = СоздатьОбъект("ADODB.Connection");
    Команда        = СоздатьОбъект("ADODB.Command");   
    Соединение.Provider="MSDAORA.1";
    Соединение.ConnectionString="Data Source=GP;User ID=MIGR;Password=book2018"; 
    Если ПустоеЗначение(ТаймАутКоманды)=0 Тогда
        Соединение.CommandTimeout=ТаймАутКоманды;               
    Иначе
        Соединение.CommandTimeout=30;                         
    КонецЕсли;
    Если ПустоеЗначение(ТаймАутСоединения)=0 Тогда
        Соединение.ConnectionTimeOut=ТаймАутСоединения;
    Иначе
        Соединение.ConnectionTimeOut=15;
    КонецЕсли;    
    Соединение.CursorLocation=2;     
    Попытка
        Соединение.Open();
        Сообщить("Соединение c MIGR установлено");
    Исключение
        Сообщить("Нет коннекта к MIGR. Повторите попытку");
        Возврат ПолучитьПустоеЗначение();
    КонецПопытки;
    Возврат 1;
КонецФункции

//---Обращение к функции, перебор рекордсета


Если ОткрытиеСоединения() = 1 Тогда
    Команда.ActiveConnection=Соединение;
    Команда.CommandType=1; 

    СтрокаСелекта = "SELECT kod, nreg FROM kod_amort WHERE pred= "+Константа.КодБазы;

    Команда.CommandText = СтрокаСелекта;  
    Результат = Команда.Execute();    
    Если Результат.EOF()=0 Тогда
        Пока Результат.EOF()=0 Цикл
            Состояние("Перебор "+Число(СокрЛП(Результат.Fields.Item("nreg").Value)));
            ТЗ.НоваяСтрока();
            ТЗ.РегНомер = Число(СокрЛП(Результат.Fields.Item("nreg").Value));
            ТЗ.Код = СокрЛП(Результат.Fields.Item("kod").Value);
            Результат.MoveNext();                    
        КонецЦикла; 
    КонецЕсли;
    Соединение.Close();
    Сообщить("Получены данные","i");
Иначе
    Предупреждение("Не получены данные");
    Возврат;
КонецЕсли;
   Ан_Дрей
 
16 - 03.02.19 - 17:49
Microsoft OLE DB Provider for Oracle: ORA-00604: error occurred at recursive SQL level %s
ошибка чото делать ПК Цшт 7 32 bit
   Ан_Дрей
 
17 - 03.02.19 - 17:51
пк Win 7 что можно сделать ?
   ДенисЧ
 
18 - 03.02.19 - 18:05
   Ан_Дрей
 
19 - 03.02.19 - 18:14
(18) Я только пытаюсь приконнектится к базе.пеще ничего не делаю.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует