|
1С + mySQL | ☑ | ||
---|---|---|---|---|
0
gvsgvs
29.09.15
✎
10:54
|
Добрый день.
При подключении к базе ругается Connection.open(ConnectString); по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию драйвер стоит ODBC, пользователя DSN прописал, подскажите пожалуйста, что еще нужно сделать чтобы заработало |
|||
1
jurassic
29.09.15
✎
10:55
|
присвоить в ConnectString ну хоть что-нибудь
|
|||
2
gvsgvs
29.09.15
✎
10:57
|
выглядит она вот так ConnectString:Driver={MySQL ODBC 5.3 Driver};Server=00.00.00.00;PORT=3306;Database=000000;User=0000;Password=00000000
|
|||
3
gvsgvs
29.09.15
✎
10:59
|
причем при прописывании пользователя DSN есть кнопка тест при ее нажатии говорит что все ОК, а из 1Ске не могу подключиться
|
|||
4
Живой Ископаемый
29.09.15
✎
11:00
|
потому что сервер 64-битный, и драйвера нужно было поставить 64-битные. Ну или наоборот
|
|||
5
gvsgvs
29.09.15
✎
11:03
|
64 битный драйвер ставить даже если у меня винды 32 двух битные?
|
|||
6
Живой Ископаемый
29.09.15
✎
11:04
|
Сервер 1С у тебя какой?
|
|||
7
gvsgvs
29.09.15
✎
11:05
|
задал это вопрос админу пока нет ответа, но думаю 64 битный по крайне это логично
|
|||
8
Живой Ископаемый
29.09.15
✎
11:07
|
тогда драйвера, 64-битные же нужно установить на ту же винду, где крутится твой 64-битный сервер 1С.
И тестировать ODBC источник данных нужно с него же. |
|||
9
shuhard_серый
29.09.15
✎
11:07
|
(7) проверь на файловой 1С, он всегда 32 разрядная в винде
|
|||
10
Живой Ископаемый
29.09.15
✎
11:08
|
но даже если и не 64-битный, а окажется что 32-битный сервер - все равно драйвера ставить нужно на ту, серверную винду
|
|||
11
gvsgvs
29.09.15
✎
11:09
|
правильно я понял, предлагаешь начало оттестировать когда MySQL и 1С стоят на одном компе, а затем уже разносить их в сети?
|
|||
12
gvsgvs
29.09.15
✎
11:10
|
я на файловой базе и пробую это сделать, а сервер от меня далеко стоит, в смысле мы с ним не в одной локальной сети
|
|||
13
gvsgvs
29.09.15
✎
11:11
|
то есть драйвер нужно ставить не на комп с которого я запускаю 1С а на сервер?
|
|||
14
ДенисЧ
29.09.15
✎
11:11
|
(13) У тебя код серверный? Значит, на сервер нужно ставить.
|
|||
15
Живой Ископаемый
29.09.15
✎
11:13
|
driver={MySQL ODBC 5.3 Unicode Driver}; server=SERVER; uid=USER; pwd=PWD; database=DATABASE; STMT=SET CHARACTER SET utf8
==== ну если у тебя будет клиент-серверная база, и например обработка будет выполняться или в тонкой форме или в регламентном задании, то обязательно на сервер. Если в толстой форме, то на твой клиентский комп |
|||
16
shuhard_серый
29.09.15
✎
11:13
|
(12)[я на файловой базе и пробую это сделать,]
тогда версия о 64Х отпадает и нужен весь код, а не этот огрызок |
|||
17
Живой Ископаемый
29.09.15
✎
11:14
|
короче, где будет выполняться твой код, там и нужен драфвер
|
|||
18
gvsgvs
29.09.15
✎
11:15
|
исполнятся будет на сервере конечно, база 1С файловая
сейчас попытался себе на локальный комп поставить драйвер 64 битый как и ожидалась ругается и ставить не хочет |
|||
19
gvsgvs
29.09.15
✎
11:16
|
код вот, где с инета слизал
Процедура КнопкаВыполнитьНажатие(Кнопка) ВыполнитьSQL(текстSQL); КонецПроцедуры // Возвращает строку соединения с базой MySql Функция ПолучитьConnectStringDB(); user="000"; password="0000"; //CHARSET=utf8 Порт="3306"; database="00000"; server="000000000"; ConnectString="Driver={MySQL ODBC 5.3 Driver};" + "Server=" + server + ";PORT=" +Порт + ";Database=" + database + ";User=" + user + ";Password=" + password; //+ ";Option=3;"; сообщить("ConnectString:" + ConnectString); Возврат ConnectString; КонецФункции Функция ВыполнитьSQL(текстSQL); ConnectString=ПолучитьConnectStringDB(); Connection = Новый COMОбъект("ADODB.Connection"); Connection.open(ConnectString); Попытка adCmdText_1 = 1; ss=Connection.Execute(текстSQL,,adCmdText_1); Connection.Close(); сообщить("Execute-[OK!]"); Исключение Для каждого ADOErr из Connection.Errors Цикл сообщить("ERROR:" + Символы.ВК + текстSQL + "Ошибка: " + ADOErr.Number + " : " + ADOErr.Description + Символы.ВК + " : " + ADOErr.Source + Символы.ВК + " : " + ADOErr.SQLState + Символы.ВК + " : " + ADOErr.NativeError + Символы.ВК ); КонецЦикла; Connection.Close(); КонецПопытки; Возврат Неопределено; КонецФункции |
|||
20
shuhard_серый
29.09.15
✎
11:16
|
(18)[исполнятся будет на сервере конечно, база 1С файловая ]
ты про файловый сервер или про rphost ? |
|||
21
Живой Ископаемый
29.09.15
✎
11:18
|
ну дык есть на сервере 000000000 база 00000?
Если поставить на комп dbForge к примеру, он к ней приконнектится? |
|||
22
shuhard_серый
29.09.15
✎
11:21
|
(21) +1
хватит и udl файлика |
|||
23
gvsgvs
29.09.15
✎
11:21
|
нашел ошибку свою конектор не тот указал сейчас ругается по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса |
|||
24
gvsgvs
29.09.15
✎
11:22
|
цель из файловой базе обратиться к MySQL и получить содержание таблицы
|
|||
25
gvsgvs
29.09.15
✎
11:23
|
вот это правильный коннектор Connection = Новый COMОбъект("ODBC.Connection");?
или правильный вот этот Connection = Новый COMОбъект("ADODB.Connection"); |
|||
26
shuhard_серый
29.09.15
✎
11:24
|
(25) ясен пень
Новый COMОбъект("ADODB.Connection"); |
|||
27
Живой Ископаемый
29.09.15
✎
11:30
|
чувак, у тебя (19) написато
Connection = Новый COMОбъект("ADODB.Connection"); И оно правильно.. |
|||
28
gvsgvs
29.09.15
✎
11:32
|
я думал что вот так прокатит Новый COMОбъект("ODBC.Connection"); не прокатило
|
|||
29
Живой Ископаемый
29.09.15
✎
11:34
|
а почему? Напиши там еще "ЭкспектоПатронум.Connection" вдруг прокатит
|
|||
30
gvsgvs
29.09.15
✎
11:36
|
когда сидишь с проблемой несколько часов хватаешься за любую идею так как разумные идеи уже кончились
|
|||
31
Живой Ископаемый
29.09.15
✎
11:37
|
так а что не получалось с ADODB, что тебя заставило ухватиться за ЭкспектоПатронум?
|
|||
32
shuhard_серый
29.09.15
✎
11:38
|
(30) душещипательная история
на мисте туча готового кода и ни каких проблем с MySQL нет включая внешние источники данных |
|||
33
gvsgvs
29.09.15
✎
11:38
|
При подключении к базе ругается Connection.open(ConnectString);
по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию |
|||
34
gvsgvs
29.09.15
✎
11:44
|
(32) если бы у меня работал этот код то и вопросов бы небыло
|
|||
35
Живой Ископаемый
29.09.15
✎
11:44
|
так что - по-прежнему не подключается?
|
|||
36
gvsgvs
29.09.15
✎
11:45
|
нет, не подключается
|
|||
37
Живой Ископаемый
29.09.15
✎
11:46
|
поставь dbFoge и подключись им к этой же базе на этом же сервере
Локализуй проблему - исключи из уравнения 1С, но тем не менее оставь 32-битное приложение. Подключится оно или нет И еще - что за винда? |
|||
38
gvsgvs
29.09.15
✎
11:50
|
проблема на сколько я понимаю в 1С так как с моего локального компа через настройки драйвера к базе он подключается без проблем https://cloud.mail.ru/public/G8RG/x38JX9Bk5 виндна семерка 32 битная
|
|||
39
фобка
29.09.15
✎
11:51
|
||||
40
Живой Ископаемый
29.09.15
✎
11:52
|
убедись в этом при помощи другого 32-битного виндового приложения. Если у dbForge не будет проблем а 1С - тогда дело в 1С, да. А если будет и у dbForge, тогда дело например в правах.
|
|||
41
Живой Ископаемый
29.09.15
✎
11:53
|
Запусти саму 1С с правами администратора, раз Винда - 7ка
|
|||
42
Живой Ископаемый
29.09.15
✎
11:54
|
Правая кнопка мыши "Запуск с правами администратора"
|
|||
43
gvsgvs
29.09.15
✎
11:58
|
под администратором запустил 1С, ошибка таже
|
|||
44
Живой Ископаемый
29.09.15
✎
12:01
|
я все жду когда ты скажешь "А dbForge я ставить не буду потому что считаю твой совет дебильным, хотя ты его и повторил уже 5 раз"
|
|||
45
gvsgvs
29.09.15
✎
12:06
|
как раз его сейчас скачал и ставлю
|
|||
46
gvsgvs
29.09.15
✎
12:08
|
через dbForge соединение установлено и показал таблицы базы
|
|||
47
Живой Ископаемый
29.09.15
✎
12:10
|
круто... странно...
А можешь в 1С добавить ВнешнийИсточникДанных и указать ту же базу MySQL |
|||
48
gvsgvs
29.09.15
✎
12:13
|
да с самого начало через него и прбывал та же ошибка
|
|||
49
gvsgvs
29.09.15
✎
12:14
|
сейчас переделал из обычных форм на управляемые результат тот же
|
|||
50
Живой Ископаемый
29.09.15
✎
12:15
|
Можешь поставить такую строку подключения, только со своей базой/сервером/юзером/паролем:
driver={MySQL ODBC 5.3 Unicode Driver}; server=SERVER; uid=USER; pwd=PWD; database=DATABASE; STMT=SET CHARACTER SET utf8 ? |
|||
51
gvsgvs
29.09.15
✎
12:31
|
да сейчас сделаю
|
|||
52
gvsgvs
29.09.15
✎
12:40
|
спасибо большое, твоя строка заработала, и через внешние источники тоже
|
|||
53
Живой Ископаемый
29.09.15
✎
12:44
|
И можно было указать еще {MySQL ODBC 5.3 ANSI Driver}
и подозреваю, что если ты посмотришь в ODBC-источниках, то у тебя именно такие два.. А просто {MySQL ODBC 5.3 Driver} - нету |
|||
54
gvsgvs
29.09.15
✎
12:52
|
да ты прав , спасибо тебе за помощь а то с 8 утра бился над проблемой
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |