|   |   | 
| 
 | v7: 1c7.7 обмен данными c Oracle | ☑ | ||
|---|---|---|---|---|
| 0
    
        Ан_Дрей naïve 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
    
        Ан_Дрей naïve 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
    
        Ан_Дрей naïve 27.01.19✎ 12:34 | 
        так не пробовал.
 а как через 77 оформить? | |||
| 5
    
        Ан_Дрей naïve 27.01.19✎ 12:37 | 
        ps все реальные данные\адреса заменены     | |||
| 6
    
        rsv 27.01.19✎ 12:37 | 
        (0) создайте файлик на машине подключения с расширением UDL . Откройте его , интерактивно настройте подключение  и нажмите кнопку тест. Это очевидней и наглядней. Путь к файлику прошишите в строке ADO     | |||
| 7
    
        ДенисЧ 27.01.19✎ 12:40 | 
        (4) Ну сформируй строку подключения к серверу, как нарисовано по ссылке. И подключайся.
 Ничего хитрого там нет. Максимум - повозиться придётся с 32/64 бит и кодировкой. | |||
| 8
    
        Ан_Дрей naïve 27.01.19✎ 12:40 | 
        спасибо. буду пробовать.     | |||
| 9
    
        Ан_Дрей naïve 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 | ||||
| 12
    
        trdm 27.01.19✎ 16:26 | 
        (11) кто на том форуме хозяйничает?
 у него капча поехала, не зарегиться не восстановить пароль. | |||
| 13
    
        trdm 27.01.19✎ 16:32 | 
        +(12) рукожопству нет пределов :)
 https://prnt.sc/mct9fe | |||
| 14
    
        ДенисЧ 27.01.19✎ 17:26 | 
        (11) Не знаю,  я по ссылке из гугля туда прошёд     | |||
| 15
    
        Svetka 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
    
        Ан_Дрей naïve 03.02.19✎ 17:49 | 
        Microsoft OLE DB Provider for Oracle: ORA-00604: error occurred at recursive SQL level %s
 ошибка чото делать ПК Цшт 7 32 bit | |||
| 17
    
        Ан_Дрей naïve 03.02.19✎ 17:51 | 
        пк Win 7 что можно сделать ?     | |||
| 18
    
        ДенисЧ 03.02.19✎ 18:05 | ||||
| 19
    
        Ан_Дрей naïve 03.02.19✎ 18:14 | 
        (18) Я только пытаюсь приконнектится к базе.пеще ничего не делаю.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |