pyodbc.Error 'IM002' при подключении к DB2 - PullRequest
1 голос
/ 15 декабря 2010

Я скачал Python 2.7 ( python-2.7.1.amd64.msi ) и pyodbc, модуль расширения python для подключения к базе данных DB2 (т. Е. pyodbc-2.1.8.win-amd64 -py2.7.exe ).

Я написал пример сценария, как показано ниже.

import csv 
import pyodbc 
conn = pyodbc.connectpyodbc.connect('DRIVER={DB2};SERVER=localhost;DATABASE=DBT1;UID=scott;PWD=tiger;')  
curs = conn.cursor() 
curs.execute('select count(edokimp_id) from edokimp') 
print curs.fetchall() 

Скрипт выдает следующую ошибку

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')

Будучи новичком в Python, я понял из ошибки, что мне нужно загрузить драйвер IBM DB2 для pyodbc, и, следовательно, проводил тщательный поиск в Google, но не смог его найти.

Я был бы очень признателен, если бы вы указали мне сайт, на котором я мог бы загрузить драйвер, а затем объяснили мне, как настроить / загрузить драйвер.

В случае Java

  • драйвер будет отправлен в виде ojdbc.jar , который будет скопирован в каталог lib , который будет находиться в classpath
  • внести изменения в файл конфигурации
  • ссылка на источник данных из класса Java

Я новичок в Python, поэтому я был бы очень признателен, если бы вы сообщили мне соответствующие шаги с примером на Python.

Ответы [ 3 ]

1 голос
/ 15 декабря 2010

Вы можете получить драйвер PyDB2 на домашней странице проекта.

Если вы столкнулись с проблемами компиляции с официальным Python, ActivePython - это хороший альтернативный дистрибутив Python для Windows.

Редактировать: Если вас спрашивают о заголовках DB2, вам нужно получить Клиент IBM Data Server для ODBC и CLI .

0 голосов
/ 01 октября 2015

Эта строка подключения для pyodbc, у меня работает:

conexion_str = 'SYSTEM=%s;db2:DSN=%s;UID=%s;PWD=%s;DRIVER=%s;' % (self._SYSTEM, self._DSN, self._UID, self._PWD, self._DRIVER)
self._cnn = pyodbc.connect(conexion_str)
0 голосов
/ 22 февраля 2012

Работает с использованием pyodbc .Я думаю, что у вас неправильная строка подключения .После некоторых исследований и тестов я решил этот код:

con = pyodbc.connect('DRIVER=iSeries Access ODBC Driver;SYSTEM=10.0.0.1;UID=bubi;PWD=xyz;DBQ=DEFAULTSCHEMA;EXTCOLINFO=1')
cur = con.cursor()
cur.execute('select * from MYTABLE')
row = cur.fetchone()
if row:
    field1 = row[0] 
    field2 = row[1]
# etc...

Как вы видите, не требуется DSN для настройки в вашей системе.

...