Краткая инструкция по работе с внешними источниками данных — подключение 1C к IBM DB2 с помощью внешнего источника данных через ODBC драйвер.
Инструкция подключения 1С к IBM DB2 через ODBC драйвер
- Установить драйвер IBM DB2 на ПК который будет подключаться к серверу
- Создаем новый источник данных ODBC. Для этого необходимо зайти в Панель управления –Администрирование – Источники ODBC
- Создаем Пользовательский DSN (можно Системный, тогда подключение будет доступно для всех пользователей).
- Выбираем ранее установленный драйвер IBM DB2
- Прописываем настройки подключения к серверу СУБД
- Нажимаем на кнопку «Соединиться». Проверяем соединение. Если соединение успешно установлено, тогда выйдет сообщение. Если нет, тогда будет ошибка с описанием проблемы.
- После успешного соединения:
- Создаем новый источник данных в 1С
- Прописать строку подключения в 1С, для внешнего источника. Строку приходится прописывать вручную. На момент написания инструкции «конструктор внешних источников 1С» не корректно работает с IBM DB2
(DRIVER={IBM DB2 ODBC DRIVER};DSN=baza;HOSTNAME=localhost;DATABASE=BAZA)
!!!! Обязательно указать в строке HOSTNAME=localhost или другой хостнэйм т.к. конструктором не сформируется, но как оказалось это обязательный параметр.
ВАЖНО: Для того чтобы начали проходить запросы к СУБД нужно выполнить принудительное подключение к источнику, для этого выполнить следующий код:
// Установим соединение с Базой (настройки пользователь вводит сам)
Сервер = СокрЛП(Константы.БиллингНазваниеСервера.Получить());
База = СокрЛП(Константы.БиллингНазваниеБазы.Получить());
Пользователь = СокрЛП(Константы.БиллингПользователь.Получить());
Пароль = СокрЛП(Константы.БиллингПароль.Получить());
пСоед = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
пСоед.СтрокаСоединения = "DRIVER={IBM DB2 ODBC DRIVER};SERVER="+Сервер+";UID="+Пользователь+";PWD="+Пароль+"; HOSTNAME=localhost; DATABASE="+База;
Попытка
ВнешниеИсточникиДанных.EPS.УстановитьОбщиеПараметрыСоединения(пСоед);
ВнешниеИсточникиДанных.EPS.УстановитьСоединение();
УстановленноСоединение = Истина;
Сообщить("+ Установленно соедиение с сервером -"+Сервер+", база -"+База+".", СтатусСообщения.Информация);
Исключение
Сообщить("- Соединение не установленно. "+ ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;
А зачем создавать пользовательский/системный DSN?
(1) это нужно для того чтобы определить имя базы данных которое используется ODBC, чтобы обращаться к информации, необходимой для доступа к данным.
(2) RomaLut, Круто. Я всю жизнь считал, что он нужен, для того, что бы один раз настроить подключение и использовать во всех приложениях, но… 😉 Видимо он еще хороший пример того, как увеличить статью используя красивые картинки. Прости, если обидел. Но смысловая нагрузка в статье начинается со слов:
Может я что-то недопонимаю, но мне для подключение к базам через драйвер ODBC (например, Firebird или MSSQL) никаких пользовательских DSN не нужно было. Достаточно правильно сформировать строку подключения и вуаля — соединение установлено. ЧЯДНТ?