Имя: Пароль:
1C
1С v8
Строка подключения к Oracle через ODBC
0 al_zzz
 
26.01.16
06:32
Хочу подключиться к базе Oracle через ODBC драйвер. Перепробовал различные варианты, однако получаю всё время:
https://yadi.sk/i/ikpa3TbynjiY2
Сделал уже строку подключения с помощью файла UDL, но всё равно та же ошибка. ЧЯДНТ?
Вот мои варианты кода:
ПараметрыПодключения.Вставить("Connection",Новый COMОбъект("ADODB.Connection"));
            
        //Сообщить(Параметры.loConnection.ConnectionString);
        
        ПараметрыПодключения.Connection.ConnectionString =
        "[oledb]
        |; Everything after this line is an OLE DB initstring
        |Provider=MSDASQL.1;Persist Security Info=False;User ID=wms;Data Source=Oracle_solvo";
        //"Driver={Microsoft ODBC for Oracle};Server="+СокрЛП(ПараметрыПодключения.стрПутьПодключения)
        //+";Uid="+СокрЛП(ПараметрыПодключения.ИмяПользователя)
        //+";Pwd="+СокрЛП(ПараметрыПодключения.Пароль)+"";
        //"Provider=MSDASQL.1; Data Source="+СокрЛП(ПараметрыПодключения.стрПутьПодключения)+"; UID="+СокрЛП(ПараметрыПодключения.ИмяПользователя)+"; Password="+СокрЛП(ПараметрыПодключения.Пароль)+"";
        //Параметры.Connection.ConnectionTimeOut = 60;     //Задаёт время в секундах, в течение которого ожидается установление ODBC-соединения. По умолчанию равно 15.
        //Параметры.Connection.CommandTimeout = 60;       //Задаёт время в секундах, в течение которого ожидается исполнение запросов. По умолчанию равно 30
        //Параметры.Connection.CursorLocation = 3;        //определяет, где будет создан запрос - на сервере (2) или на клиент (3)
        
        //Параметры.Connection.State //Определяет состояние соединения: 0 - закрыто, 1 - открыто
        ПараметрыПодключения.Connection.Open();
1 ЧеловекДуши
 
26.01.16
06:47
2 ЧеловекДуши
 
26.01.16
06:51
Вот тут описание подключения к ораклу :)
http://forum.clarionlife.net/phpbb/viewtopic.php?t=1655
3 ЧеловекДуши
 
26.01.16
06:52
+ Твое подключение, как то расходится с ожидаемым :)

Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=admin;Pwd=pass;
4 al_zzz
 
26.01.16
07:13
Пять различных вариантов перепобовал - не работают у меня:
//1.
        //ПараметрыПодключения.Connection.ConnectionString =
        //"[oledb]
        //|; Everything after this line is an OLE DB initstring
        //|Provider=MSDASQL.1;Persist Security Info=False;User ID=wms;Data Source=Oracle_solvo;Password=oracle";
        //2.
        //ПараметрыПодключения.Connection.ConnectionString =
        //"Driver={Microsoft ODBC for Oracle};Server="+СокрЛП(ПараметрыПодключения.стрПутьПодключения)
        //+";Uid="+СокрЛП(ПараметрыПодключения.ИмяПользователя)
        //+";Pwd="+СокрЛП(ПараметрыПодключения.Пароль)+";";
        //3.
        //ПараметрыПодключения.Connection.ConnectionString =
        //"Provider=MSDASQL.1; Data Source="+СокрЛП(ПараметрыПодключения.стрПутьПодключения)+"; UID="+СокрЛП(ПараметрыПодключения.ИмяПользователя)+"; Password="+СокрЛП(ПараметрыПодключения.Пароль)+"";
        //4.
        //ПараметрыПодключения.Connection.ConnectionString =
        //"Driver={Microsoft ODBC for Oracle};Server="+СокрЛП(ПараметрыПодключения.стрПутьПодключения)+";Uid="+СокрЛП(ПараметрыПодключения.ИмяПользователя)+";Pwd="+СокрЛП(ПараметрыПодключения.Пароль)+";";
        //5.
        //ПараметрыПодключения.Connection.ConnectionString =
        //"Driver = {Oracle in instantclient_11_2};DBQ=192.168.0.251;UID=wms;PWD=oracle;";
5 al_zzz
 
26.01.16
07:14
Думал, что через udl гарантировано должно работать. Нет?
6 sda553
 
26.01.16
07:22
tnsnames.ora покажи свой, ту часть где подключаемая база.
Из комендной строки sql worksheet подключение есть?
7 sda553
 
26.01.16
07:24
И раз у тебя odbc то дай еще настройку odbc коннекта. Можно из реестра скопировать
8 al_zzz
 
26.01.16
07:43
(6) WMSDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = WMSDB)
    )
  )

(7) [oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDASQL.1;Persist Security Info=False;User ID=wms;Data Source=Oracle_solvo
9 sda553
 
26.01.16
08:03
Попробуй сначала законнектиться в командной строке. И проще,  и понятную ошибку,  если что,  выдаст (ошибки вида ora-xxxx) *И data_source судя по всему должен быть wmsdb а не какой то oracle_solvo
10 al_zzz
 
26.01.16
08:24
Получилось совместно с админом.
11 sda553
 
26.01.16
10:14
(10) и какой оказаося солюшен?
12 znh
 
26.01.16
10:21
Функция глОткрытьБазуORA() Экспорт
    
    БылиОш = 0;
    
    фБазаЭЗ  = СокрЛП(Константа.B_Oracle);
    фСхемаЭЗ = "login";
    фПарольСхемыЭЗ = "passw";
    
    глmOraDatabase = "";
    мБазаOracleОткрыта=0;
    Если (мБазаOracleОткрыта=0) Тогда
        Попытка
            OraSession = СоздатьОбъект("OracleInProcServer.XOraSession");
            //OraSession = СоздатьОбъект("ADODB.CONNECTION");
            глmOraDatabase = OraSession.OpenDataBase(СокрЛП(фБазаЭЗ),СокрЛП(фСхемаЭЗ)+"/"+СокрЛП(фПарольСхемыЭЗ),0);
            
            мБазаOracleОткрыта=1;
            //Сообщить("База открыта");
        Исключение
            OraSession = "";
            OraDatabase ="";
            Сообщить("Ошибка подключения к базе ЭЗ !!! "+ ОписаниеОшибки());
            мБазаOracleОткрыта=0;
            БылиОш = 1;
        КонецПопытки;    
    КонецЕсли;
    
    Возврат глmOraDatabase;
    
КонецФункции