Имя: Пароль:
1C
1С v8
Подключение к Ораклу на стороне сервера.
,
0 uncknow
 
14.12.13
23:52
Собсно интересная ситуевина.
Код подключения к ораклу прописан в серверных процедурах.
Если база файловая, то все отлично работает. Интересное начинается, если базу запустить в серверном варианте - выдает ошибку что дрова не находит.

Версия 1С 8.2.18.96
Сервер 1С и Клиент запущены на одной машине.
Сервер 1С запускается под локальным админом.

Идеи?
1 Живой Ископаемый
 
15.12.13
00:01
сервер 64битный, а дрова 32-битные.
Но в принципе суть даже не в этом, все равно можно.
Можно начать с малого - установлен ли оркал-клиент на машине, где выполняется сервер. Зайти под юзером, под которым выполняется сервер 1с интерактивно, и попробовать просто ОДБС-подключиться к базе оркал.
2 uncknow
 
15.12.13
00:04
(1) Сервер 1С и Клиент 1С запускаются на одной машине, я это указал ;)
Думаешь у Админа могут быть проблемы с подключением?  хм...
3 Лефмихалыч
 
15.12.13
00:11
>Если база файловая, то все отлично работает. Интересное начинается, если базу запустить в серверном варианте - выдает ошибку что дрова не находит
>Сервер 1С и Клиент запущены на одной машине.

одна из черепашек *здит
4 Aleksey
 
15.12.13
00:13
(3) не факт. сервер запущен под пользователем у которого нет прав/дров
5 Лефмихалыч
 
15.12.13
00:16
(4) там еще одна черепашка утверждает, что дело под админом происходит
6 Torquader
 
15.12.13
01:20
Для запуска сервера указывается специальный пользователь, если, конечно, сервер не запустили из консоли.
Потом, насколько я помню, на "современных" системах учётка с правами админа и включённые права админа - это большая разница.
7 uncknow
 
15.12.13
09:32
(5) =) Где черепашек набрали? :)
8 uncknow
 
15.12.13
09:41
Интересно, а может как-то повлиять, что Сервер 1С 64 битный, а дрова 32 битные?
9 ДенисЧ
 
15.12.13
10:48
(8) Иссчо как может.
У оракля с клиентом огоромные проблемы, я с ним любился одно время...
Там очень много факторiв... Вплоть до расположения каталога клиента в строке path...

Поищи тут мои темы 3 годичной давности...
10 uncknow
 
15.12.13
10:54
(9) Тема есть, но в ней ответа нет. Бум дальше искать.
11 uncknow
 
15.12.13
10:56
Мне мозги сворачивает, то, что само подключение работает с файловой базы.
12 ДенисЧ
 
15.12.13
10:59
1. проверь пути.
2. проверь версию клиента.
13 ДенисЧ
 
15.12.13
11:00
3. ошибку покажи
4. ошибку погугли
14 uncknow
 
16.12.13
18:57
Нус товарищи, продолжим.

Ниже код подключения к серверу

    Попытка
        Oracle = Новый COMОбъект("ADODB.Connection");
        
        стрПодключения = "Driver={Microsoft ODBC for Oracle};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=" + СокрЛП(IP) + ")(PORT=" + СокрЛП(Port) + "))(CONNECT_DATA=(SID=" + СокрЛП(ServiceName) + ")));Uid=" + СокрЛП(UserID) + ";Pwd=" + СокрЛП(Password) + ";"; //charset=cp1251;

        Oracle.Open(стрПодключения);
        Command = Новый COMОбъект("ADODB.Command");
        Command.ActiveConnection = Oracle;
    Исключение
        Command = Неопределено;
        
        ТекстСообщения = ИнформацияОбОшибке().Причина.Описание;
        Сообщить(ТекстСообщения + "
        |    
        |Соединение с сервером базы данных не установлено!");
    КонецПопытки;
    
    //Возврат Не (Command = Неопределено);
    Возврат Command;


Процедура коннекта прописана в общем модуле.

Ошибка которую выдает:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
    
Соединение с сервером базы данных КИАС не установлено!
15 Живой Ископаемый
 
16.12.13
19:11
угу, и.. если тестировать ОДБС интерактивно - то все ок?
16 uncknow
 
16.12.13
19:17
(15) Да хз, разбираюсь сейчас. В ОДБС указан только драйвер SQL. В системном DSN пусто. Вот, копаю что и как должно быть.
17 Живой Ископаемый
 
16.12.13
20:05
создай файловый ДСН с использованием того же драйвера и попробуй
18 ДенисЧ
 
16.12.13
20:07
Driver={Microsoft ODBC for Oracle}

я бы это не использовал
19 uncknow
 
16.12.13
20:30
(17) Это как?
20 romansun
 
16.12.13
21:58
в двух словах

ставить надо Оракле, чтоб появился источник OraOLEDB.Oracle

- на файловую версию или на клиента, насколько я помню, достаточно клиента оракла. Коннекшн стринг начинается с "Provider..."

- под сервером х64 (регламентное задание) такая тема не взлетела!! Примерно с такой же ошибкой.
__если я не ошибаюсь__ на сервер надо ставить сервер Оракле и коннешн стринг будет начинаться с "Driver.."


насчет версий самого оракла - точнее не скажу, у нас целая папка дистрибов (а их, надо признать, много по ораклу) и мы перепробывали кучу, пока смогли законнектиться. Надо смотреть..

по поводу точных connection string - если получится, завтра посмотрю конфу на работе. И еще раз уточню у парней, кто конкретно это мутил
21 romansun
 
16.12.13
22:01
(20)
что забавно, при установке "правильного" оракла на сервер ConnectionString с "Provider..." просто тупо не заработал

при этом на клиенте и в файловой 1С - работаю оба варианта - и "провайдер" и "драйвер"


вот, воистину, 1С и Оракле - это постоянное веселье
22 Живой Ископаемый
 
16.12.13
22:05
(19) фу, пользовательский, не файловый
23 uncknow
 
16.12.13
22:14
(20) Сижу на сайте оракла, изучаю документацию. Там этих вариантов ConnectionString!..  Драйвер вроде поставил 64 битный, но в источниках данных тишина, ничего не появилось. Посмотрим, может что получится.
24 ДенисЧ
 
16.12.13
22:25
(23) 32 бит ставь.
25 МихаилМ
 
16.12.13
22:43
oledb драйвер может быть 32-битным для 64 бит клиента
те битность ole клиента и сервера может не совпадать
тк они могут исполняться в разных процессах (outproc srver)
odbc - драйвер исполняется в процессе клиента.
oledb клиент по-умолчанию пытается запуститься как inproc server. и только если в его свойствах указано что как инпрок
он запуститься не может, тогда запускается как outproc

соответственно можно попытаться сделать в реестре копию настроек сом для использования вразличных режимах.
26 uncknow
 
16.12.13
23:10
(25) А если подробнее, где можно покопаться?
27 BAPBAP
 
16.12.13
23:56
Забей болт на ODBC. Используй Oracle Objects for OLE. Работает шустрее и возможностей побольше.
http://infostart.ru/public/120965/
28 uncknow
 
17.12.13
11:14
(27) У меня и так все быстро с оракла качает. особо смысла нет. А функционала и так хватает
29 acsent
 
17.12.13
11:18
Зайди по пользователем сервера интерактивно и проверь
30 romansun
 
17.12.13
11:39
в обсчем, дополняю свой пост (20)

ставили на x64 сервер клиента Оракле (32 или 64 - это точно забыли, начни с 32)

строки подключения

файловая или клиент:
Provider=OraOLEDB.Oracle.1;Password=" + Pass + ";Persist Security Info=True;User ID=" + Login + ";
  |Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST="+IP+")(PORT=1521))(CONNECT_DATA=(SERVICE_NAME="+Base+")))

сервер:
Driver={Oracle in OraClient11g_home3};Dbq=base;Uid=uid;Pwd=pass;

строки "OraOLEDB.Oracle.1" и "Oracle in OraClient11g_home3", понятно, могут быть свои - надо смотреть источники
31 Аденэсниг
 
17.12.13
11:39
аа вы про СУБД....
32 uncknow
 
17.12.13
11:52
(30) Сейчас попробуем. Суть понял
33 uncknow
 
19.12.13
10:49
(30) УРА!  после того как поставили нормальный клиент, точнее саму БД на сервер 1С, а вместей с ней и клиент, настроили с него подключение к другому ОРАКЛУ и ВуаЛя!  Заработало! Всем спасибо! Получил еще один маленький EXPERIENCE.