Имя: Пароль:
1C
1С v8
Проблема при связке с Oracle
0 Dude7
 
10.04.14
11:02
Выполняю подключение к базе Oracle.

Функция ВыполнитьПодключение()
    
    Попытка
        Cntr = New COMObject("ADODB.Connection");
    Исключение
        Возврат Ложь;
    КонецПопытки;
    
    Cntr.ConnectionTimeOut = 600;
    Cntr.CursorLocation = 3;
    Cntr.Errors.Clear();
    
    Попытка
        ConnectionString ="DRIVER={Microsoft ODBC for Oracle};SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myserver.ru)(PORT=1521))(CONNECT_DATA=(SID=PROD)));" +
            "Uid=user;Pwd=pass;";
        Cntr.Open(СокрЛП(ConnectionString));
    Исключение
        Cntr = Ложь;
    КонецПопытки;
    
    Возврат Cntr;  
    
КонецФункции

Не находит драйвера "Microsoft ODBC for Oracle". Есть ли он, для серверной операционки?
1 ДенисЧ
 
10.04.14
11:02
Используй InstantClient
2 Maxus43
 
10.04.14
11:03
господи, драйверов много, это мол - сам выбирай, а не тупо копипасти
3 Maxus43
 
10.04.14
11:04
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = "Provider=MSDAORA;Password="+pwd+";User ID="+uid+";Data Source="+database+";Persist Security Info=True;CharSet=AMERICAN_AMERICA.CL8MSWIN1251;";
4 _fvadim
 
10.04.14
11:06
без установленного ораклового клиента не взлетит
5 Dude7
 
10.04.14
11:09
(0) Это дело работает на компе где установлен драйвер "Microsoft ODBC for Oracle". Я как понимаю, для серверных операционок его нет и его вообще Microsoft не обновляет сейчас. Есть аналоги его?

(3) А какой драйвер указывать?

(4) Клиент стоит
6 Maxus43
 
10.04.14
11:10
(5) я ж написал, например Provider=MSDAORA
7 Базис
 
naïve
10.04.14
11:11
8 Dude7
 
10.04.14
11:13
+ Сейчас стоит дравер "Oracle in OraClient11g_Home1", можно ли его указать? Так 1С его не видит.
9 Maxus43
 
10.04.14
11:14
10 Dude7
 
10.04.14
11:14
(6) Пишет "Ошибка времени выполнения" при попытке установить соединение.
11 _fvadim
 
10.04.14
11:15
Создаёшь пустой текстовый файл, меняешь раcширение на udl, запускаешь его, смотришь какие есть драйвера в системе, да и собственно собираешь строку соединения, там же проверяешь.
Если будут сложности, список драйверов пиши сюда.
12 _fvadim
 
10.04.14
11:16
(8) проверь ещё куда прописан oracle home в окружении
13 Dude7
 
10.04.14
11:22
(11) Вот список драйверов http://savepic.org/5276566.jpg
14 Maxus43
 
10.04.14
11:23
(13) ну написано же какой есть, иль не видишь? иль не цепляет по нему?
15 Dude7
 
10.04.14
11:27
(14) В смысле указать DRIVER={Oracle provider for OLE DB};?
16 Maxus43
 
10.04.14
11:28
(15) попробуй есно. строку подключения там же можешь собрать и проверить
17 _fvadim
 
10.04.14
11:31
(15) это и есть msdaora
в файле udl у тебя будет готовая строка подключения
18 Jaap Vduul
 
10.04.14
11:33
19 anton_mgn
 
10.04.14
11:37
(0) У меня всегда срабатывает одно из двух:
Попытка
мDataBaseConnection.ConnectionString="Provider=msdaora;Data Source=...;User Id=...;Password=...;";
                мDataBaseConnection.ConnectionTimeOut=600;
                мDataBaseConnection.CursorLocation=3;
                мDataBaseConnection.Open();
Исключение
мDataBaseConnection.ConnectionString="Provider=OraOLEDB.Oracle;Password=...;Persist Security Info=True;User ID=...;Data Source=...";
                    мDataBaseConnection.Open();                КонецПопытки;
20 _fvadim
 
10.04.14
11:41
(19) код - загляденье просто
21 anton_mgn
 
10.04.14
11:41
(20) Главное - работает)
22 Maxus43
 
10.04.14
11:42
(19) Где Исключение исключения?))
23 anton_mgn
 
10.04.14
11:47
(22) Не вошло в листинг)
24 RomanFire
 
10.04.14
12:20
(3) !
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший