Войти
1c Установка подключения к MySQL через ODBC connector
Добавил статью 29.05.2019 пользователь kievol / Смотрели 600

Руководство, облегчающее жизнь при очередной настройке подключения MySQL к 1С через ODBC connector (driver). Оставлю это хотя бы для себя на память :)

Итак, для того, чтобы настроить связь между MySQL и 1С нужно:

1. Скачать дистрибутив установки ODBC connector.

Я обычно пользуюсь ODBC 5.3 Unicode driver, он еще называется 5.3.0 alpha, скачать можно здесь https://downloads.mysql.com/archives/c-odbc/).

Устанавливать нужно на сервер, на котором лежит база данных. То есть, если в пути к базе написано "10.80.11.30", то и устанавливаем на сервер 10.80.11.30, если в пути к базе написано "localhost", то и устанавливаем на этот же сервер "localhost", ну вы понимаете.

Если в процессе установки возникает ошибка "Error 1318:Error installing ODBC Driver ....... the specified module could not be found ... myodbc5s.d ...", значит на сервере не хватает пакета "Microsoft Visual C++ 2010 Redistributable Package", скачать можно здесь https://www.microsoft.com/en-us/download/confirmation.aspx?id=14632 (x64) и здесь https://www.microsoft.com/en-us/download/confirmation.aspx?id=5555 (x86). Если вы взяли версию драйвера отличную от моей любимой ODBC 5.3 Unicode driver, то пакет, необходимый для установки ODBC может быть и другой, ориентируйтесь на название недостающего компонента в описании ошибки, и вы обязательно найдете какого именно пакета Microsoft Visual C++ вам не хватает. Пакет Microsoft Visual C++ нужно тоже установить и для 32-х разрядной системы, и для 64-х разрядной.

2. Настроить ODBC connector.

Для работы с базами данных часто используют псевдонимы (alias). Псевдоним БД - это имя некоторой базы данных, которое прописывается в настойках таким образом, что для обращения к таблицам данной базы достаточно указать alias. Это удобство позволяет легко менять тип БД, не меняя текста программ. Рассмотрим принцип определения псевдонима БД Microsoft Access, хранящейся в файле db.mdb на сервере. Предположим, мы хотим, чтобы псевдоним db соответствовал данной БД. Для этого необходимо запустить Администратор источников данных ODBC (Пуск \ Настройка \ Панель управления \ Администрирование \ Источники данных (ODBC)):

Далее, в разделе "Системный DSN" следует добавить новый псевдоним, выбрав соответствующий драйвер:

После нажатия на кнопку "Готово" остается указать имя источника "db" и путь к файлу:

Нажатием кнопки "Ок" в системе появится псевдоним "db" к базе данных, который можно будет использовать при обращении к файлу db.mdb . Следует заметить, что аналогичным образом можно указать псевдоним и к другим СУБД, при этом принцип реализации веб-интерфейса к БД не изменится.

Заметим, что для работы с файлами *.mdb можно работать и без псевдонима, т.е. вместо подключения
   DSN = "db"
можно использовать одно из следующих подключений:
   DSN = "Driver={Microsoft Access Driver (*.mdb)}; PWD=; DBQ=c:\Inetpub\wwwroot\dhtml\db.mdb"
   DSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Inetpub\wwwroot\dhtml\db.mdb"

Здесь видно, что при подключении используется полный путь к файлу, что менее практично.

3. Если соединение не устанавливается, проверяем, что в MySQL не наложены ограничения на IP, с которых осуществляется подключение. Если это не помогло, можно установить MySQL Workbench (https://www.mysql.com/products/workbench/), добавить туда базу данных MySQL и протестировать подключение - у Workbench более информативные сообщения об ошибке, зачастую с первого раза понятно куда копать.

4. После всех манипуляций можно выпить бокальчик вина и создать обработку работы с базой MySQL. Это очень просто:   

АДОСоединение = Новый COMОбъект("ADODB.Connection"); Если АДОСоединение.State = 0 // 0 - adStateClosed Тогда SRV = "..."; //адрес сервера MySQL DB = "..";//имя базы MySQL UID = "..";//имя пользователя MySQL PWD = "...";//пароль пользователя MySQL PORT = "";//порт сервера MySQL, например 3306 cstr = "DRIVER={MySQL ODBC 5.3 Unicode Driver}; |SERVER=" + SRV + ";UID=" + UID + "; |PASSWORD=" + PWD + ";DATABASE=" + DB + ";PORT=" + PORT + ";"; Попытка АДОСоединение.Open (cstr); Исключение АДОСоединение = Неопределено; Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; //выполняем запрос к MySQL: ТекстЗапроса = "SELECT ITEMS.ID FROM ITEMS"; Table = АДОСоединение.Execute(ТекстЗапроса); Пока Table.EOF() = 0 Цикл Сообщить(Table.Fields("ID").Value); Table.MoveNext(); КонецЦикла; Table.Close();




Комментарии

Имя:
52 + 16 =

Новости