Имя: Пароль:
1C
1С v8
Подключение к SQL в регламентном задании
0 Budy
 
27.02.13
15:07
Не воткнусь, где затык. поможите кто может.
Есть DSN: проверка SQL сервер.
В 1С интерактивно запускаю, все пучком. Из регзадания - не хочет подключаться.
DSN нужен еще и в других прогах, потому через него все.

// *************************************************
СоединениеСКЛ = Новый COMObject("ADODB.Connection");
ConnectionString = "Data Source='ппц';Persist Security Info=True;User ID=ппц;Password=ппц";
СоединениеСКЛ.ConnectionTimeOut = 30;
СоединениеСКЛ.CommandTimeout   = 120;

СоединениеСКЛ.CursorLocation = 3;
   
Попытка    
   СоединениеСКЛ.Open(ConnectionString);
   прервать;
           
Исключение
   #Если Клиент Тогда
   Сообщить("Невозможно установить соединение с SQL-сервером");
   #КонецЕсли
       
   возврат("Невозможно установить соединение с SQL-сервером");
КонецПопытки;
1 Serginio1
 
27.02.13
15:09
Сервер поди 64 разрядный, а драйвера адо 32?
2 Budy
 
27.02.13
15:10
Да сервер 64
Дрова те что админы установили, хз
3 Serginio1
 
27.02.13
15:11
v8: Не работает подключение к Excel на сервере (ADO)
(2) Ну раз интерактивно подключаешься значит 32
4 Balonbl4
 
27.02.13
15:32
Напиши в исключении
#Если Клиент Тогда
                          Сообщить(ОписаниеОшибки()+ Эформы.Имя);
                         #Иначе
                         ЗаписьЖурналаРегистрации("Вызвано исключение",,,,ОписаниеОшибки(),);
                         #КонецЕсли

Хоть текст ошибки увидишь
5 Budy
 
27.02.13
15:39
(3) Глянул в источники ODBC на имя файла одно и нашел файлы и в папке system32, и syswow64. Какой же он берет. Уже понял, что 32 битный. Сижу в раздумьях, какой показывается в Источниках ODBC и почему только один. Вроде есть прога смотреть установленные дрова, не подскажешь какая, не помню.

(4) Это не принципиально, он возвращает строку, а там что-то делается. Ошибку я знаю уже, как побороть не знаю пока.
6 Serginio1
 
27.02.13
15:45
Для SQL должно быть нормально. То что я написал имеет отношение к офису. А какую ошибку пишет?
7 Serginio1
 
27.02.13
15:47
Ты к MS SQL подключаешься?
8 Budy
 
27.02.13
15:54
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
9 Budy
 
27.02.13
15:56
(7) К Express 10.0
10 Serginio1
 
27.02.13
16:20
http://support.microsoft.com/kb/971987
Чтобы устранить эту проблему, необходимо установить 64-разрядный поставщик MSDASQL и явно назначить его в вашем ADODB.connection. 1.Загрузите и установите 64-разрядного поставщика OLE DB для ODBC (MSDASQL).
2.Укажите подключение ODBC при подключении ADO следующим образом:

«Поставщик = MSDASQL; DSN = MyDSN "
11 Budy
 
27.02.13
18:05
Всем спасибо. победил вот по этой ссылке.
http://support.microsoft.com/kb/942976

(10) было в точности наоборот: 64 был установлен, а 32 битный нет. Надо было запустить сие % windir%\SysWOW64\odbcad32.exe и установить 32 битный.

не очень силен, вернее совсем не силен, но сервер 1С стоит 32 разрядный, регзадание из-под него запускается, видимо ему и нужен 32 битный драйвер.
12 Serginio1
 
27.02.13
18:11
(11) Тогда какие драйвер брался при интерактивном подключении? Там однозначно 32 разрядное.
13 Serginio1
 
27.02.13
18:14
(11) А в строке подключения не пробовал баловаться с Provider=MSDASQL;
14 Budy
 
27.02.13
18:19
(12) 64 битный судя по всему. Запуская SysWOW64\odbcad32 видны все дрова 32 битные.
15 beholder
 
27.02.13
18:35
Мы так кстати трахались с оракловыми дровами. То работало то не работало.

Потом оказалось что у нас кластер из 3-х серверов и одмины установили дрова на один из трех серверов.  =)
И по рнд выдавало то сервер с дровами то без. =)
16 Serginio1
 
27.02.13
19:05
(14) 1С к сожалению только 32 разрядная. Может быть провайдер различный по умолчанию при подключении из приложения и из под сервисов.
Ошибка? Это не ошибка, это системная функция.