Имя: Пароль:
1C
1С v8
И снова ADODB. Не подключается к MySQL из 2003 сервера
,
0 V_V_V
 
29.08.11
17:21
1С:Предприятие 8.2 (8.2.13.219)
На 2008 (x64) сервере, после установки драйвера mysql-connector-odbc-5.1 прекрасно работал нижеуказанный код (и работает сейчас на моей локальной семерке х32). После переноса баз на 2003 (х64) сервер начало выдавать ошибку: "Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Поставщик не указан, и не назначен поставщик по умолчанию." Куда копать?
Код (переменные заполняются выше, не суть важно):

СтрокаСоединения = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=" + СерверСМС + ";DataBase=" + БазаСМС + ";UID=" + ЛогинСМС + ";PWD=" + ПарольСМС;
   
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.Mode            = 3;
Соединение.CursorLocation    = 3;
Соединение.ConnectionTimeOut= 15;
Соединение.ConnectionString = СтрокаСоединения;
   
Соединение.Open();
1 V_V_V
 
29.08.11
17:24
Пробовал давать права админа для пользователя USR1CV82 - ничего не изменилось...
2 V_V_V
 
29.08.11
17:52
Брандмауэр на 2003 сервере отключен
3 Shurjk
 
29.08.11
17:59
А компонента нормально зарегилась в системе?
4 Shurjk
 
29.08.11
17:59
Попробуй UAC  отключить.
5 V_V_V
 
29.08.11
18:01
(3) Это драйвер. Встал без проблем, в реестре находится на нужных местах.
(4) UAC в 2003 нет, он в 2008. А проблема как раз в 2003-м сервере...
6 kokamoonga
 
29.08.11
18:37
(5) у меня в строке подключения указан еще порт PORT=3306 и OPTION=3
7 kokamoonga
 
29.08.11
18:39
(6)+ ну и соответственно все работает с тем же драйвером
8 kokamoonga
 
29.08.11
18:43
(6)(7) + посмотри еще в источниках данных ODBC на месте ли драйвер там
9 V_V_V
 
29.08.11
18:45
(6) Щас попробую...
(8) Посмотрел. На вкладке Драйверы. Имеется MySQL ODBC 5.1 Driver ver. 5.01.08.00
10 V_V_V
 
29.08.11
18:50
(6) Не помогло... Все та же "Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Поставщик не указан, и не назначен поставщик по умолчанию."
11 kokamoonga
 
29.08.11
18:50
(9) посмотрел кстати код свой. давно это было забыл все уже. так вот никаких дополнительных рюшечек нет все через строку подключения:


Подключение = Новый COMОбъект("ADODB.Connection");
Подключение.Open(СтрокаПодключения);
12 V_V_V
 
29.08.11
18:54
(11) С рюшечками работает. Это когда я из семерки проверяю (винды). С твоими PORT=3306 и OPTION=3 тоже работает. А вот из 2003 сервака - никак...
13 V_V_V
 
29.08.11
18:56
+(12) И в 2008 серваке тоже работало. Со всеми его UAC-ами и включенным брандмауэром...
14 kokamoonga
 
29.08.11
18:56
(12) у меня как раз это на 2003 все крутится
15 V_V_V
 
29.08.11
18:57
Грешу все-таки на кастрированные права юзера USR1CV82 в 2003-м.
16 V_V_V
 
29.08.11
18:59
(14) Я не спорю, что оно работает у тебя в 2003-м. Вопрос в том, почему оно у меня не хочет работать...  :))
17 kokamoonga
 
29.08.11
18:59
(16) надо подумать)
18 V_V_V
 
29.08.11
19:08
(11) От нечего делать убрал рюшечки. Осталось только 3 строки. По-прежнему в семерке работает, в 2003-м никак...
19 smaharbA
 
29.08.11
19:09
(15) да
20 V_V_V
 
29.08.11
19:10
(19) У меня тут грешная мысль проскочила запустить сервер 1С под правами доменного админа. Но это уже когда народ разбежится по домам...
21 V_V_V
 
29.08.11
19:19
(17) А под кем у тебя стартует служба 1С на 2003-м? Какие права у этого пользователя? Просто жуть как не хочется давать избыток прав 1С...
22 kokamoonga
 
29.08.11
19:31
(21) права на службу у меня стандартные. и пользователь стандартный. что-то мы упускаем в настройках ODBC мне кажется
23 kokamoonga
 
29.08.11
19:37
(21) а пользовательский DSN  в источниках ODBC настроен?
24 V_V_V
 
29.08.11
19:41
(23) Нет. Там вообще ничего нет. А что там должно быть?
25 kokamoonga
 
29.08.11
19:43
(24) ну попробуй добавить. хотя вроде это не обязательно. но у меня настроен. там просто при добавлении нужно драйвер выбрать из списка
26 V_V_V
 
29.08.11
19:48
(25) Добавил. Тест проходит на ура. А в обработке все та же ошибка.
27 V_V_V
 
29.08.11
19:49
Я так понимаю, это для того чтобы со сторонней формы по имени подключаться к этому источнику данных.
28 kokamoonga
 
29.08.11
19:51
у меня тут еще есть чарсет. это вообще не должно влиять на подключение но чем чорт не шутит)

STMT=SET CHARACTER SET cp1251
29 V_V_V
 
29.08.11
19:54
(28) Точно трогать не буду - я не совсем уверен в кодировке сторонней базы MySQL. Кажется UTF8. По крайней мере без этого параметра работало великолепно.
И кажется не в параметрах дело. 1С в упор не видит драйвер коннектора...
30 kokamoonga
 
29.08.11
19:58
(29) мистика какая-то)
31 V_V_V
 
29.08.11
20:01
(30) Согласен.
Буду все-таки пробовать через замену пользователя, под которым стартует сервер 1С...
32 kokamoonga
 
29.08.11
20:07
(31) да это вряд ли. попробуй посмотреть права на папку C:\Program Files\MySQL\Connector ODBC 5.1
33 V_V_V
 
29.08.11
20:07
(31) Херня. Перезапустил службу с новым пользователем - ничего не изменилось.
34 V_V_V
 
29.08.11
20:07
(32) Щас попробую
35 kokamoonga
 
29.08.11
20:08
(32) ну и на файл myodbc5.dll в частности
36 V_V_V
 
29.08.11
20:13
(35) Дал права USR1CV82 (вернул все назад) на файл myodbc5.dll на чтение и выполнение. Не помогло.
37 V_V_V
 
29.08.11
20:14
+ (36) И на папку тоже не помогло...
38 kokamoonga
 
29.08.11
20:18
(37) честно пытался. не представляю в чем может быть проблема...

версия 8.2, там же вроде появилась поддержка внешних источников данных, не?
39 V_V_V
 
29.08.11
20:21
(38) Это в последних. У меня предпоследняя.  :))
Спасибо за помощь! Самому надоело. Буду завтра бока выискивать...
40 kokamoonga
 
29.08.11
20:23
(39) драйвер давно ставил, не помню нужен ли там ребут. перезагружался после установки?
41 V_V_V
 
29.08.11
20:25
(40) Неоднократно. Второй день бьюсь. Вчера сервер переставил с 2008 на 2003. Если б не этот досадный глюк - был бы всем доволен...
42 kokamoonga
 
29.08.11
20:27
(41) в свое время ставил на три разных сервака. нигде не было проблем. странно... может просто драйвер встал криво... хотя дсн тест проходит
43 V_V_V
 
29.08.11
20:31
(42) Тест проходит  замечательно. Уже после ввода логина и пароля дает список баз на выбор на удаленном сервере. По-идее драйвер  встал корректно.
Я до этого ставил только на 2008 и 7-ку (винду). Везде работало на ура.
44 kokamoonga
 
29.08.11
20:31
(43) попробуй написать строку подключения с использованием DSN а не через прямой коннект. где-то тут на мисте вроде было
45 V_V_V
 
29.08.11
20:33
(44) Тоже вариант. Я так никогда не пробовал. Спасибо, поищу...
46 kokamoonga
 
29.08.11
20:41
(45) еще попробуй покупить вот это
http://support.microsoft.com/kb/971987/
47 kokamoonga
 
29.08.11
20:42
(46)+ покупить = покурить :)
48 V_V_V
 
29.08.11
20:56
(46) Интересно. Я так понимаю, что под Поставщик они имеют ввиду Provider. И в строке подключения должно присутствовать что-то типа Provider=SQLOLEDB.1? Только какое имя у провайдера MySQL осталось выяснить...  :))
49 kokamoonga
 
29.08.11
21:03
(48) драйвер-то у тебя 64-битный стоит?
50 V_V_V
 
29.08.11
21:06
(49) Да.
51 V_V_V
 
29.08.11
21:07
(49) Но он в пакете кажется ставит обе версии - и 32-х и 64-х.
52 kokamoonga
 
29.08.11
21:09
(51) вообще отдельно вроде идут http://www.mysql.com/downloads/connector/odbc/#downloads
53 V_V_V
 
29.08.11
21:12
(52) Отсюда и брал. Но при установке он что-то писал за обе версии.
54 kokamoonga
 
29.08.11
21:14
(53) а MSDASQL переустановил как там советуют?
55 V_V_V
 
29.08.11
21:17
(54) Нет. Ищу откуда грузить...
56 kokamoonga
 
29.08.11
21:18
57 V_V_V
 
29.08.11
21:20
(56) Спасибо!
58 V_V_V
 
29.08.11
21:29
(56) Та-а-а-к... Скачал, установил - ничего не изменилось, ругнулось как обычно на Поставщика. Потом в начале строки соединения добавил Provider=MSDASQL.1 - выдало какой-то вменяемый ответ, а не ошибку.
Буду пробовать дальше. Громадное спасибо kokamoonga !
59 V_V_V
 
29.08.11
21:29
(56) А раньше Provider=MSDASQL.1 ничего не меняло...
60 V_V_V
 
29.08.11
21:33
(58) Просто Provider=MSDASQL (без 1) тоже работает...
61 kokamoonga
 
29.08.11
21:38
(58) да не за что) самому интересно было. когда-то и мне придется поковыряться с 64-bit, вот теперь буду знать)
62 V_V_V
 
29.08.11
21:47
Все, проверил в боевых условиях - работает. После обновления MSDASQL из (56) достаточно в мою строку подключения из (0) в начало добавить Provider=MSDASQL.1; - и будет счастье... :))
Да-а, kokamoonga, без тебя бы я не осилил. Удачи тебе, и еще раз спасибо!
63 smaharbA
 
29.08.11
22:41
провайдер при указании дривера нафиг не нужен
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший