То, что работает соединение jdbc от Data-Studio, не означает, что ваш pyodbc подключится к Db2.pyodbc не использует jdbc, вместо этого он будет использовать интерфейс CLI / ODBC для Db2, который реализуется подходящим драйвером.
Чтобы использовать Db2 из pyodbc в Windows, сначала убедитесь, что у вас установлен Db2-клиент в Windows, или установлен Db2-сервер в Windows.
ТамЕсть много видов 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 или явно указывать DRIVER / SERVER/ PORT / DATABASE / UID / PWD, а также любые другие необходимые параметры в строке подключения.
Помните также, что вам не нужно использовать pyodbc.Есть и другие варианты взаимодействия Python с Db2-серверами.Сделайте осознанный выбор и сделайте свое исследование.
Вы также можете использовать предоставленный IBM модуль "ibm_db" или модуль интерфейса DBI "ibm_db_api", или, если вы используете объектно-реляционный картограф, вы можете использовать адаптер SQLAlchemy.(ibm_db_sa), или вы можете использовать django framework.
Прочитайте все об этом в документации по Db2 здесь.https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.5.0/com.ibm.swg.im.dbclient.python.doc/doc/c0054366.html