2010-12-15 3 views
1

Python 2.7 (python-2.7.1.amd64.msi) 및 DB2 데이터베이스에 연결하기위한 python 확장 모듈 pyodbc (예 : pyodbc-2.1.8)를 다운로드했습니다. win-amd64-py2.7.exe).pyodbc.Error 'IM002'DB2에 연결

아래와 같이 샘플 스크립트를 작성했습니다. 내가 파이썬 안돼서으로

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)') 

다음 던졌습니다, 나는 pyodbc에 대한 IBM DB2 드라이버를 다운로드해야하고 따라서 구글에 광범위하게 검색하지만 오류를 실현 아무것도 찾을 수 없습니다.

드라이버를 다운로드하고 나중에 드라이버를 구성 /로드하는 방법을 설명하는 사이트로 연결하면 크게 감사하겠습니다. 자바

  • 드라이버가
  • 구성을 변경하는 클래스 경로에있을 것입니다 LIB 디렉토리에 복사됩니다 ojdbc.jar 의 형태로 배송됩니다의 경우

내가 PYT에 안돼서 자바 클래스에서

  • 참조를 데이터 소스 파일 당신이 파이썬에서 예를 들어 답하는 단계를 알려 주시면 감사하겠습니다.

  • +0

    나는 그것이 당신의 진짜 비밀이 아니다 희망 ... – katrielalex

    +0

    확실히 표준 데이터베이스 사용자 이름/암호 즉 스캇/호랑이 : – bansi

    답변

    1

    프로젝트 홈페이지에서 PyDB2 driver을 얻을 수 있습니다.

    공식 파이썬으로 컴파일 문제가 발생하면 ActivePython은 Windows에서 Python을 대체 배포하는 좋은 방법입니다.

    편집 : DB2 헤더를 묻는 메시지가 표시되면 IBM Data Server Client for ODBC and CLI을 가져와야합니다.

    +0

    감사 Leons. 내가 뭔가를 놓치지 않는 한 왜 "pyodbc"를 사용하여 실행시킬 수 없는지 궁금합니다. 나는 PyDB2 드라이버를 살펴 봤지만 파이썬에 익숙하지 않은 나는 드라이버를 구성 /로드하는 방법을 모른다. Java에서와 같이 구성 파일을 변경하고 Python 스크립트에서 DataSource를 호출해야합니까? 좋은 예가 될 것입니다. – bansi

    +0

    PyODBC가 작동해야하지만 데이터 소스를 정의해야한다고 생각합니다.Windows XP에서는 제어판> 관리 도구> 데이터 소스 (ODBC)> 시스템 DSN에서이 작업을 수행 할 수 있습니다. – Leons

    0

    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 필요하지 않습니다시피. 나를 위해 pyodbc에 대한

    0

    이 연결 문자열, 일 :

    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) 
    
    관련 문제