То, что подключение jdbc от Data-Studio работает, не означает, что ваш pyodbc будет подключаться к Db2. pyodbc не использует jdbc, вместо этого он будет использовать интерфейс CLI/ODBC для Db2, который реализуется подходящим драйвером.
Чтобы использовать Db2 из pyodbc в Windows, сначала убедитесь, что в Windows установлен либо клиент Db2, либо или установленный в Windows сервер Db2.
Существует множество виды клиентов Db2. Многое зависит от операционной системы, на которой работает ваш сервер Db2 (Z/OS, i-Series, Linux, Unix, Windows), и от того, какие действия вы хотите выполнять на клиенте (разработка, администрирование/мониторинг, запросы, или все три).
Для некоторых целевых платформ есть драйверы не от IBM, но я не буду их обсуждать.
В python вы можете подключиться к базе данных либо с DSN (имя источника данных) (обычно это включает более короткую строку подключения), либо без DSN (более длинная строка подключения, содержащая все детали).
При обучении может быть проще заставить Microsoft Windows выполнять большую часть первоначальной работы с odbcad32. Это проще всего сделать, если клиент Db2 уже сконфигурирован для доступа к одной или нескольким базам данных Db2. Предпосылкой является поддержка драйвером CLI/ODBC.
Чтобы определить DSN (системный DSN или пользовательский DSN), используйте инструмент Microsoft odbcad32, чтобы указать на базу данных Db2 и проверить подключение.
Если сервер Db2 работает на Z/OS или i-Series, могут применяться особые требования к лицензированию в зависимости от того, подключаетесь ли вы напрямую к целевому серверу Db2 или используете шлюз Db2-connect.
Запишите точную строку DRIVER внутри odbcad32 для базы данных Db2, включая регистр и пробелы, потому что они понадобятся вам в вашем коде Python.
Например, имя этого драйвера может выглядеть как 'IBM DB2ODBC DRIVER - DB2COPY1', если в Windows установлен локальный сервер Db2 (например, бесплатный Db2-Express-C).
Убедитесь, что соединение с базой данных Db2 внутри odbcad32 установлено успешно. Это очень важно.
Когда odbcad32 удается подключиться, обычно успешно подключается и pyodbc.
В вашем коде Python ваша строка подключения может либо использовать DSN, либо явно указывать ДРАЙВЕР/СЕРВЕР/ПОРТ/БАЗА ДАННЫХ/UID/PWD вместе с любыми другими необходимыми настройками в строке подключения.
Помните также, что вам не обязательно использовать pyodbc. Существуют и другие варианты взаимодействия python с серверами Db2. Сделайте осознанный выбор и проведите исследование.
Вы также можете использовать поставляемый IBM модуль "ibm_db" или модуль интерфейса DBI "ibm_db_api", или, если вы используете объектно-реляционный преобразователь, вы можете использовать адаптер SQLAlchemy (ibm_db_sa) или вы можете использовать фреймворк django.
Прочитайте все об этом в документации по Db2 здесь. https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.swg.im.dbclient.python.doc/doc/c0054366.html
person
mao
schedule
08.06.2018
pyodbc
, а не библиотеку, рекомендованную в документе IBM? - person Bill Bell   schedule 07.06.2018